diff options
author | Bill Wendling <isanbard@gmail.com> | 2009-04-29 23:53:23 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2009-04-29 23:53:23 +0000 |
commit | 29405d836b29e040740bdaf80c9c7615796a22b1 (patch) | |
tree | 78785458960476675fc55271a7d8dd71fc4c866b | |
parent | dad991900bf507d573fb0a305be66d1ceec72c46 (diff) | |
download | bcm5719-llvm-29405d836b29e040740bdaf80c9c7615796a22b1.tar.gz bcm5719-llvm-29405d836b29e040740bdaf80c9c7615796a22b1.zip |
Use the new code gen optimization enum instead of passing in the optimization
level. This is more expressive.
llvm-svn: 70451
-rw-r--r-- | clang/tools/clang-cc/Backend.cpp | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/clang/tools/clang-cc/Backend.cpp b/clang/tools/clang-cc/Backend.cpp index 078c7a1fb9e..3fcf84cb7ab 100644 --- a/clang/tools/clang-cc/Backend.cpp +++ b/clang/tools/clang-cc/Backend.cpp @@ -256,12 +256,20 @@ bool BackendConsumer::AddEmitPasses(std::string &Error) { // FIXME: This is disabled right now until bugs can be worked out. Reenable // this for fast -O0 compiles! FunctionPassManager *PM = getCodeGenPasses(); - + CodeGenOpt::Level OptLevel = CodeGenOpt::Default; + + switch (CompileOpts.OptimizationLevel) { + default: break; + case 0: OptLevel = CodeGenOpt::None; break; + case 1: OptLevel = CodeGenOpt::One; break; + case 2: OptLevel = CodeGenOpt::Two; break; + case 3: OptLevel = CodeGenOpt::Aggressive; break; + } + // Normal mode, emit a .s file by running the code generator. // Note, this also adds codegenerator level optimization passes. switch (TM->addPassesToEmitFile(*PM, *AsmOutStream, - TargetMachine::AssemblyFile, - CompileOpts.OptimizationLevel)) { + TargetMachine::AssemblyFile, OptLevel)) { default: case FileModel::Error: Error = "Unable to interface with target machine!\n"; @@ -270,8 +278,7 @@ bool BackendConsumer::AddEmitPasses(std::string &Error) { break; } - if (TM->addPassesToEmitFileFinish(*CodeGenPasses, 0, - CompileOpts.OptimizationLevel)) { + if (TM->addPassesToEmitFileFinish(*CodeGenPasses, 0, OptLevel)) { Error = "Unable to interface with target machine!\n"; return false; } |