[LLVMdev] link time optimization pass

John Criswell jtcriswel at gmail.com
Sun May 31 07:16:17 PDT 2015


On 5/31/15 12:27 AM, Haopeng Liu wrote:
> Hi All,
>
> How to write a link time optimization pass in llvm with LTO?

LTO passes are just like any other LLVM pass.  The only difference is 
that they are run by the link time optimizer plugin for the Gold linker.

>
> Is there a document, just like 
> http://llvm.org/docs/WritingAnLLVMPass.html tells us how to write a 
> llvm pass?

You should read up on the LTO documentation at 
http://llvm.org/docs/LinkTimeOptimization.html and 
http://llvm.org/docs/GoldPlugin.html.  You should then find the source 
code for the LLVM Gold plugin and modify it to run your pass.  In 
essence, you'll build your own plugin for the Gold linker that runs your 
pass in addition to all of the other LLVM passes.

You can see an example of this in the SAFECode source code repository 
(http://llvm.org/viewvc/llvm-project/safecode/branches/release_32/tools/LTO/). 
Just be forewarned that the LTO code in LLVM trunk has moved around a 
bit, so what you need to modify and where it is located has changed 
since LLVM 3.2.

If you could let me know what you modify to get it to work, please let 
me know.  A student of mine is needing the same information for LLVM 
trunk.  :)

Regards,

John Criswell

>
> Thanks,
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev


-- 
John Criswell
Assistant Professor
Department of Computer Science, University of Rochester
http://www.cs.rochester.edu/u/criswell




More information about the llvm-dev mailing list