diff options
author | Mehdi Amini <mehdi.amini@apple.com> | 2017-01-06 20:52:30 +0000 |
---|---|---|
committer | Mehdi Amini <mehdi.amini@apple.com> | 2017-01-06 20:52:30 +0000 |
commit | a7276feed7eed43d39d4444cecd809a6297cb3e6 (patch) | |
tree | 12add5973992908000094210b524365dbbcbbf26 | |
parent | 00f6beaed46e86463fb88319845947c45e1dfac3 (diff) | |
download | bcm5719-llvm-a7276feed7eed43d39d4444cecd809a6297cb3e6.tar.gz bcm5719-llvm-a7276feed7eed43d39d4444cecd809a6297cb3e6.zip |
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
-rw-r--r-- | clang/lib/CodeGen/BackendUtil.cpp | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/clang/lib/CodeGen/BackendUtil.cpp b/clang/lib/CodeGen/BackendUtil.cpp index ed09f3a4556..8dd1623ee2c 100644 --- a/clang/lib/CodeGen/BackendUtil.cpp +++ b/clang/lib/CodeGen/BackendUtil.cpp @@ -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; |