[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