Hi LLVM devs,
In my experimental backend, I’d like to symbolize the disassembled ELF and object files generated by the backend, so that labels/function names are printed instead of just memory addresses. When using objdump. The simplest implementation I’ve found is the AMDGPU symbolizer in the Disassembler, which I mimicked. This works fine only in very specific cases, where the address in the operand exists in the section’s symbol table. However, if the symbol to reference is in another section, or if the operand value is just 0 with a fix-up/relocation, it obviously doesn’t give correct results.
So the question: is there a more robust way to get access to all the symbols and relocation data in the target Disassembler? I haven’t fully dug through how x86 does it but it seems really complicated, and my much simpler backend probably doesn’t need that level of complexity.