summaryrefslogtreecommitdiffstats
path: root/clang/tools
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2009-04-29 23:53:23 +0000
committerBill Wendling <isanbard@gmail.com>2009-04-29 23:53:23 +0000
commit29405d836b29e040740bdaf80c9c7615796a22b1 (patch)
tree78785458960476675fc55271a7d8dd71fc4c866b /clang/tools
parentdad991900bf507d573fb0a305be66d1ceec72c46 (diff)
downloadbcm5719-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
Diffstat (limited to 'clang/tools')
-rw-r--r--clang/tools/clang-cc/Backend.cpp17
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;
}
OpenPOWER on IntegriCloud