[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