[LLVMdev] General strategy to optimize LLVM IR

David Blaikie dblaikie at gmail.com
Tue Jul 16 11:07:30 PDT 2013

On Tue, Jul 16, 2013 at 8:16 AM, St├ęphane Letz <letz at grame.fr> wrote:
> Hi,
> Our DSL emit sub-optimal LLVM IR that we optimize later on (LLVM IR ==> LLVM IR) before dynamically compiling it with the JIT. We would like to simply follow what clang/clang++ does when compiling with -O1/-O2/-O3 options. Our strategy up to now what to look at the opt.cpp code and take part of it in order to implement our optimization code.
> It appears to be rather difficult to follow evolution of the LLVM IR optimization strategies. With LLVM 3.3 our optimization code does not produce code as fast as the one produced with clang -03 anymore. Moreover the new vectorizations passes are still not working.
> It there a recommended way to add -O1/-O2/-O3 kind of optimizations on LLVM IR code? Any code to look at beside the opt.cpp tool?

I'm not /entirely/ sure what you're asking. It sounds like you're
asking "what passes should my compiler's -O1/2/3 flag's correspond to"
 and one answer to that is to look at Clang (I think Clang's is
different from opt/llc's, maybe).

> Thanks.
> St├ęphane Letz
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

More information about the llvm-dev mailing list