<div dir="ltr"><div>Thank you very much John.<br></div><div>With an environment variable I need to take some special care, but it looks like the only way to go.<br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Sun, Mar 30, 2014 at 11:07 AM, John Criswell <span dir="ltr"><<a href="mailto:criswell@illinois.edu" target="_blank">criswell@illinois.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>Dear Rahman,<br>
<br>
I think your best option is to modify the code in libLTO so that
it runs your pass when you want it to run. I believe the file you
want to modify is LTOCodeGenerator.cpp.<br>
<br>
This does mean that passing options to your pass will be difficult
or impossible. However, you can either hard-code the options you
need or read them from an environment variable if there is no easy
way to pass options to the libLTO.<br>
<br>
If you want to go the llc route, then you'll need to modify the
llc code so that it runs your pass instead of opt; sadly, I don't
know off-hand where the code is that you would need to modify (it
is either in llc or in some LLVM library somewhere). The only
reason I discourage the llc route is because it is difficult to
get whole-program bitcode files for large programs (e.g., Apache).<br>
<br>
Regards,<br>
<br>
John Criswell<div><div class="h5"><br>
<br>
On 3/29/14, 12:47 AM, Rahman Lavaee wrote:<br>
</div></div></div>
<blockquote type="cite"><div><div class="h5">
<div dir="ltr">
<div>
<div>
<div>
<div>Hi,<br>
</div>
I am finding it difficult to see how I can run an IR
instrumentation pass after "all" IR passes.<br>
</div>
I previously used opt to run my pass after linking all the
llvm bitcode files and then ran llc. <br>
I found out that llc runs some other Function passes which
depend on the target.<br>
</div>
For example, tail calls are only supported in x86 under some
circumstances.<br>
<br>
</div>
<div>Then I tried lto and link time optimization. But I found it
difficult to specify a flag option for my instrumentation
pass.<br>
<br>
</div>
<div>Is there any way in llvm to run an IR pass after all IR
passes?<br>
</div>
</div>
<br>
<fieldset></fieldset>
<br>
</div></div><pre>_______________________________________________
LLVM Developers mailing list
<a href="mailto:LLVMdev@cs.uiuc.edu" target="_blank">LLVMdev@cs.uiuc.edu</a> <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a>
</pre>
</blockquote>
<br>
</div>
</blockquote></div><br></div>