[LLVMdev] Running an IR pass after all IR passes
John Criswell
criswell at illinois.edu
Sun Mar 30 08:07:39 PDT 2014
Dear Rahman,
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.
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.
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).
Regards,
John Criswell
On 3/29/14, 12:47 AM, Rahman Lavaee wrote:
> Hi,
> I am finding it difficult to see how I can run an IR instrumentation
> pass after "all" IR passes.
> I previously used opt to run my pass after linking all the llvm
> bitcode files and then ran llc.
> I found out that llc runs some other Function passes which depend on
> the target.
> For example, tail calls are only supported in x86 under some
> circumstances.
>
> Then I tried lto and link time optimization. But I found it difficult
> to specify a flag option for my instrumentation pass.
>
> Is there any way in llvm to run an IR pass after all IR passes?
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140330/60868bd4/attachment.html>
More information about the llvm-dev
mailing list