[LLVMdev] statically link pass to clang

NAKAMURA Takumi geek4civic at gmail.com
Mon Sep 26 16:26:05 PDT 2011


2011/9/27 Zeng Bin <ezengbin at gmail.com>:
>
>
> On Sun, Sep 25, 2011 at 8:45 PM, NAKAMURA Takumi <geek4civic at gmail.com>
> wrote:
>>
>> 2011/9/24 Zeng Bin <ezengbin at gmail.com>:
>> > A question about statically linking a pass to clang instead of
>> > dynamically
>> > loading it at runtime. I am stumped on this bug for a while. I inserted
>> > a
>> > pass under lib/Transforms/mypass directory, registered it with
>> > INITIALIZE_PASS and defined createMyPass in the pass. Also I added file
>> > mypass.h in include/llvm/Transforms/ to expose the accessor functions
>> > that
>> > expose my passes. Entries are added in include/llvm/LinkAllPasses.h to
>> > force
>> > pass linking. The archive files of my passes are added to
>> > LINK_COMPONENTS in
>> > the Makefiles for opt and clang. However, the passes are still not
>> > statically linked. Is there a way to statically link a pass into clang?
>> > If
>> > possible, how do turn on and off my passes with command line options?
>>
>> I don't think include/llvm/LinkAllPasses.h would affect clang.
>> Did you see lib/Transforms/IPO/PassManagerBuilder.cpp ?
>>
>> ...Takumi
>
> Hi Takumi,
>
> Thank you very much for the reply. There is no  file called
> PassManagerBuilder.cpp in lib/Transforms/IPO/. I am using LLVM 2.8.

Then, seek StandardPasses.h in include/llvm.
IMO, you should take top of trunk if you would play with clang. 2.8 is too old.
3.0 branch will come soon.

...Takumi




More information about the llvm-dev mailing list