[PATCH] D88774: Add disassembly counter after disasembly line

Jiao Lu via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 2 21:10:39 PDT 2020


jiaolu created this revision.
Herald added subscribers: llvm-commits, kerbowa, hiraditya, tpr, nhaehnle, jvesely, arsenm.
Herald added a project: LLVM.
jiaolu requested review of this revision.

This would make it easier for the AMDGPU shader debugging or
shader replacement at particular position.

Disassembly line would look like:

Before:

  v_add_nc_u32_e32 v0, 0xd10, v4    ; 4A0008FF 00000D10

After:

  v_add_nc_u32_e32 v0, 0xd10, v4    ; 00000004: 4A0008FF 00000D10


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D88774

Files:
  llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
  llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.h
  llvm/lib/Target/AMDGPU/AMDGPUMCInstLower.cpp


Index: llvm/lib/Target/AMDGPU/AMDGPUMCInstLower.cpp
===================================================================
--- llvm/lib/Target/AMDGPU/AMDGPUMCInstLower.cpp
+++ llvm/lib/Target/AMDGPU/AMDGPUMCInstLower.cpp
@@ -356,12 +356,14 @@
       HexLines.resize(HexLines.size() + 1);
       std::string &HexLine = HexLines.back();
       raw_string_ostream HexStream(HexLine);
+      HexStream << format("%08X: ", DisasmCounter);
 
       for (size_t i = 0; i < CodeBytes.size(); i += 4) {
         unsigned int CodeDWord = *(unsigned int *)&CodeBytes[i];
         HexStream << format("%s%08X", (i > 0 ? " " : ""), CodeDWord);
       }
 
+      DisasmCounter += CodeBytes.size();
       DisasmStream.flush();
       DisasmLineMaxLen = std::max(DisasmLineMaxLen, DisasmLine.size());
     }
Index: llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.h
===================================================================
--- llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.h
+++ llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.h
@@ -146,6 +146,7 @@
 protected:
   std::vector<std::string> DisasmLines, HexLines;
   size_t DisasmLineMaxLen;
+  size_t DisasmCounter;
 };
 
 } // end namespace llvm
Index: llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
===================================================================
--- llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
+++ llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
@@ -473,6 +473,7 @@
   DisasmLines.clear();
   HexLines.clear();
   DisasmLineMaxLen = 0;
+  DisasmCounter = 0;
 
   emitFunctionBody();
 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D88774.295958.patch
Type: text/x-patch
Size: 1520 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20201003/57ba474c/attachment.bin>


More information about the llvm-commits mailing list