forked from OSchip/llvm-project
Use CodegenOpts::less when creating a TargetMachine for clang `-O1`
Summary: Clang was initializing the TargetMachine with CodeGenOpt::Default for O1. This change is aligning it on llc: -O0: OptLevel = CodeGenOpt::None -O1: OptLevel = CodeGenOpt::Less -O2 -Os -Oz: OptLevel = CodeGenOpt::Default -O3: OptLevel = CodeGenOpt::Aggressive Reviewers: echristo, chandlerc Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D28409 llvm-svn: 291276
This commit is contained in:
parent
00f6beaed4
commit
a7276feed7
|
@ -519,11 +519,22 @@ void EmitAssemblyHelper::CreateTargetMachine(bool MustCreateTM) {
|
|||
.Case("dynamic-no-pic", llvm::Reloc::DynamicNoPIC);
|
||||
assert(RM.hasValue() && "invalid PIC model!");
|
||||
|
||||
CodeGenOpt::Level OptLevel = CodeGenOpt::Default;
|
||||
CodeGenOpt::Level OptLevel;
|
||||
switch (CodeGenOpts.OptimizationLevel) {
|
||||
default: break;
|
||||
case 0: OptLevel = CodeGenOpt::None; break;
|
||||
case 3: OptLevel = CodeGenOpt::Aggressive; break;
|
||||
default:
|
||||
llvm_unreachable("Invalid optimization level!");
|
||||
case 0:
|
||||
OptLevel = CodeGenOpt::None;
|
||||
break;
|
||||
case 1:
|
||||
OptLevel = CodeGenOpt::Less;
|
||||
break;
|
||||
case 2:
|
||||
OptLevel = CodeGenOpt::Default;
|
||||
break; // O2/Os/Oz
|
||||
case 3:
|
||||
OptLevel = CodeGenOpt::Aggressive;
|
||||
break;
|
||||
}
|
||||
|
||||
llvm::TargetOptions Options;
|
||||
|
|
Loading…
Reference in New Issue