From: Mehdi Amini Date: Fri, 6 Jan 2017 20:52:30 +0000 (+0000) Subject: Use CodegenOpts::less when creating a TargetMachine for clang `-O1` X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d362589cd8fd6f05349502c2c310063f5adc935d;p=clang 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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@291276 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/BackendUtil.cpp b/lib/CodeGen/BackendUtil.cpp index ed09f3a455..8dd1623ee2 100644 --- a/lib/CodeGen/BackendUtil.cpp +++ b/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;