[llvm-dev] Find instruction's offset

fami Hoseini via llvm-dev llvm-dev at lists.llvm.org
Sun Jan 29 20:24:57 PST 2017


Bruce,
Objdump was exactly what I needed!
Thanks everyone. Sorry If I my question was not clear enough.

On Tue, Jan 24, 2017 at 7:03 AM, Bruce Hoult <bruce at hoult.org> wrote:

> LLVM creates something like assembly language (or even real assembly
> language) and doesn't know the exact offset of an instruction within the
> function (or section).
>
> The assembler might create different sized instructions -- or even
> multiple instructions -- from something that LLVM just thinks of as "an
> instruction". For example because of different instruction encodings or
> even instruction sequences being needed because of the size of immediate
> values or branch offsets (often not even known until link time). Even
> things such as whether or not a REX prefix is needed on AMD64 depends on
> whether some register mentioned in the instruction is in the high 8
> registers -- LLVM *could* pay attention to that, but I'd suspect it doesn't.
>
> On some platforms, instructions within a function can even be added or
> deleted by the *linker*.
>
> Your best best may be to take the final linked program and run objdump on
> it.
>
>
> On Mon, Jan 23, 2017 at 8:29 PM, fami Hoseini via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
>> I don't know if my question was super easy or maybe it is not clear. I'm
>> still in need of the answer and appreciate any help.When LLVM creates
>> assembly code it should somehow create instructions' program counter
>> (offset) right? how to get this information?
>>
>> Thank you,
>> Fateme
>>
>>
>> On Mon, Jan 9, 2017 at 5:07 PM, fami Hoseini <hoseini.f at gmail.com> wrote:
>>
>>> Hi,
>>> Is there a way to get instruction's offset at compile time with llvm for
>>> ARM?
>>> I am trying to create a map between instructions at compile time and
>>> this run-time info. Since PC is a relative value, I am trying to use the
>>> instruction's offset as a constant property of instruction to create this
>>> map. I think offset information should be available to create the
>>> executable, if so where to find it?
>>> Thank you for your help,
>>> Fami
>>>
>>
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170129/4098e079/attachment.html>


More information about the llvm-dev mailing list