[llvm-dev] Integrating llvm pass with pass manager

陳韋任 via llvm-dev llvm-dev at lists.llvm.org
Fri Jan 12 19:40:27 PST 2018

Look back to the SO link [1] you posted, I assume you register your pass by
writing something like below already,



    ModulePass *llvm::createYourPass() { return new YourPass(); }

The only suggestion I can give is looking at other existing pass to see
what you might miss. For example, take a look on X86OptimizeLEAs.cpp. It
works like the following ways.

    $ clang -mllvm -disable-x86-lea-opt test.c
    $ opt -disable-x86-lea-opt test.ll

On the other hand, Mem2Reg.cpp fail to be used on clang.

    $ clang -mllvm -mem2reg test.c
    $ clang (LLVM option parsing): Unknown command line argument
'-mem2reg'.  Try: 'clang (LLVM option parsing) -help'

I guess you need to implement the code below for your pass just like
X86OptimizeLEAS.cpp does.

    static cl::opt<bool>
        DisableX86LEAOpt("disable-x86-lea-opt", cl::Hidden,
                         cl::desc("X86: Disable LEA optimizations."),

​[1] https://stackoverflow.com/questions/29910051/integrating-llvm-passes/


Wei-Ren Chen (陳韋任)
Homepage: https://people.cs.nctu.edu.tw/~chenwj
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180113/2db0047e/attachment.html>

More information about the llvm-dev mailing list