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

via llvm-dev llvm-dev at lists.llvm.org
Thu Jan 5 08:08:08 PST 2017


Yes, it is a target independent back-end pass.

On 2017-01-04 18:12, Ryan Taylor wrote:
> My mistake, u want a code gen opt, not IR, so a backend pass?
> 
> On Jan 4, 2017 7:05 PM, "Ryan Taylor" <ryta1203 at gmail.com> wrote:
> 
>> If I understand you correctly, you should look at putting your pass
>> in the pass manager at the opt level u want.
>> 
>> Ryan
>> 
>> On Jan 4, 2017 7: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). 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
>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev [1]
> 
> 
> Links:
> ------
> [1] http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev


More information about the llvm-dev mailing list