<div dir="ltr"><div>Bruce,</div><div>Objdump was exactly what I needed!</div><div>Thanks everyone. Sorry If I my question was not clear enough. <br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jan 24, 2017 at 7:03 AM, Bruce Hoult <span dir="ltr"><<a href="mailto:bruce@hoult.org" target="_blank">bruce@hoult.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">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).<div><br></div><div>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.</div><div><br></div><div>On some platforms, instructions within a function can even be added or deleted by the *linker*.</div><div><br></div><div>Your best best may be to take the final linked program and run objdump on it.</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="h5">On Mon, Jan 23, 2017 at 8:29 PM, fami Hoseini via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div dir="ltr">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?<div><br></div><div>Thank you,</div><div>Fateme<br><div><br></div></div></div><div class="m_7014683674712472816HOEnZb"><div class="m_7014683674712472816h5"><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jan 9, 2017 at 5:07 PM, fami Hoseini <span dir="ltr"><<a href="mailto:hoseini.f@gmail.com" target="_blank">hoseini.f@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi,<div>Is there a way to get instruction's offset at compile time with llvm for ARM?</div><div>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?</div><div>Thank you for your help,</div><div>Fami</div></div>
</blockquote></div><br></div>
</div></div><br></div></div><span class="">______________________________<wbr>_________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><br>
<br></span></blockquote></div><br></div>
</blockquote></div><br></div>