[llvm-dev] LLVMTargetMachine with optimization level passed from clang.

Mehdi Amini via llvm-dev llvm-dev at lists.llvm.org
Wed Jan 4 16:10:13 PST 2017

> On Jan 4, 2017, at 4:03 PM, Sumanth Gundapaneni via llvm-dev <llvm-dev at lists.llvm.org> wrote:
> I see the BackendUtil.cpp of Clang creates the TargetMachine with the optimization level based on below mentioned logic
>   CodeGenOpt::Level OptLevel = CodeGenOpt::Default;
>   switch (CodeGenOpts.OptimizationLevel) {
>   default: break;
>   case 0: OptLevel = CodeGenOpt::None; break;
>   case 3: OptLevel = CodeGenOpt::Aggressive; break;
>   }
> As per my understanding, the correspondence between optimization level and CodeGenOpt is as below
> O0  -  none
> O1  -  less
> O2 -   default
> O3  -  aggressive
> My goal is to turn on a target dependent codegen optimization at –O1(less).

Apparently “less” is not used by clang, do you want your optimization to be turned on for O1 *and above* or just for O1 specifically?

Also what kind of optimization is this? A SelectionDAG combine or a specific pass? If it is a pass, is it IR or MIR?

> The TargetMachine is constructed with “CodeGenOpt::Default”. Is there a way I could do this in LLVM ? What is the standard way of doing this ? Also, the code in BackendUtil.cpp seem somewhat offbeat to me.
> --Sumanth G
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev <http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170104/7aa9485f/attachment.html>

More information about the llvm-dev mailing list