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

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


I want the optimization to be turned on at -O1 and above.
In my case, it is a target independent back-end pass. (Eg: 
MachinePipeliner)


On 2017-01-04 18:10, Mehdi Amini wrote:
>> 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?
>> Mehdi
> 
>> 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


More information about the llvm-dev mailing list