[llvm-dev] IR to binary address mapping
llvm-dev at lists.llvm.org
Wed Jun 13 08:05:01 PDT 2018
We preserve the source line/column for two reasons. First, so that any compiler diagnostic messages can point to a source location that caused the diagnostic; second, because debugging information in the final binary wants to be able to map machine instruction addresses back to source locations. There is never any need for the end-user to map machine instruction addresses back to IR instructions, so we don't maintain any information that could produce such a mapping.
From: llvm-dev [mailto:llvm-dev-bounces at lists.llvm.org] On Behalf Of Muhui Jiang via llvm-dev
Sent: Wednesday, June 13, 2018 3:09 AM
Subject: Re: [llvm-dev] IR to binary address mapping
However, frontend may also do various operations on the source code and one line number and column number could map to more than one binary address. Why LLVM IR cannot?
2018-06-12 23:18 GMT+08:00 mayuyu.io<http://mayuyu.io> <admin at mayuyu.io<mailto:admin at mayuyu.io>>:
In theory that’s not exactly possible/accurate. Due to various operations in the Backend like Instruction Legalization, one IR instruction might got emitted into multiple assembly instruction, for example
> 在 2018年6月12日，22:30，Muhui Jiang via llvm-dev <llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>> 写道：
> I know that LLVM provide some debug API for us to know the source code information. For example, every IR instruction's source line number and column number.
> However, are there any method to get a mapping from IR instruction to binary address directly. I don't want to use dwarf line mapping table as a bridge. I think the binary is generated by clang and llvm. I think there definitely is some information about the mapping relationship between LLVM IR and the target binary address. Do anyone has suggestions? Many Thanks
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev