[LLVMdev] How to write a custom LTO pass?

Stephen Thomas stephen.warner.thomas at gmail.com
Mon May 18 12:58:57 PDT 2015


On Mon, May 18, 2015 at 3:34 PM, John Criswell <jtcriswel at gmail.com> wrote:

>  On 5/18/15 2:16 PM, Stephen Thomas wrote:
>
> I'd like to write an inter-modular analysis pass. My understanding is that
> this should take the form of an LTO pass. However, I have been unable to
> find any resources on the mechanics of writing and running a custom LTO
> pass. Does anyone have any pointers?
>
>
> All you need to do is to write a ModulePass and modify the libLTO plugin
> to run it.  Writing a ModulePass is described in the "How to Write an LLVM
> Pass" document in the LLVM documentation.
>

Great, that makes sense.


> To modify libLTO, you'll need to read the documents on how to install it,
> and you'll need to modify the plugin (in llvm/tools/LTO, I think).
>
Alternatively, you can modify the LLVM library that defines which passes
> get run when you use -O2 and -flto optimization, but the result is the
> same: you'll need to install a new libLTO plugin.
>

Just to check my understanding: I will have to change LLVM source code
(probably to some .cpp file in llvm/tools/LTO or in llvm/lib/LTO) and
recompile in order to run my custom LTO pass? I'm double checking because
for custom intra-modular analysis passes, it is not a requirement to change
LLVM source code. Instead, one just adds the name of the .so to the opt
invocation. (
http://llvm.org/docs/WritingAnLLVMPass.html#running-a-pass-with-opt).

Thanks,
Steve


>
> Regards,
>
> John Criswell
>
>
>  Thanks,
> Steve
>
>
> _______________________________________________
> LLVM Developers mailing listLLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.eduhttp://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
>
> --
> John Criswell
> Assistant Professor
> Department of Computer Science, University of Rochesterhttp://www.cs.rochester.edu/u/criswell
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150518/17590e77/attachment.html>


More information about the llvm-dev mailing list