about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorRafael Ávila de Espíndola <respindola@mozilla.com>2011-06-22 16:47:13 -0400
committerRafael Ávila de Espíndola <respindola@mozilla.com>2011-06-22 16:50:30 -0400
commit64513808cadb809e324084687d94aa763b36c925 (patch)
treef0aeeae7e78902f2b58964cc1fed5968cb202a0f /src/rustllvm/RustWrapper.cpp
parenta6e188f8bf300f591e0b9de914bb655f171e9d66 (diff)
downloadrust-64513808cadb809e324084687d94aa763b36c925.tar.gz
rust-64513808cadb809e324084687d94aa763b36c925.zip
Use fast regalloc and codegen at OptLevel=0.
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
-rw-r--r--src/rustllvm/RustWrapper.cpp14
1 files changed, 4 insertions, 10 deletions
diff --git a/src/rustllvm/RustWrapper.cpp b/src/rustllvm/RustWrapper.cpp
index eb06398c48e..110eb9a3bff 100644
--- a/src/rustllvm/RustWrapper.cpp
+++ b/src/rustllvm/RustWrapper.cpp
@@ -53,11 +53,6 @@ extern "C" void LLVMAddStandardModulePasses(LLVMPassManagerRef PM,
 int *RustHackToFetchPassesO = (int*)LLVMAddBasicAliasAnalysisPass;
 int *RustHackToFetchPasses2O = (int*)LLVMAddStandardModulePasses;
 
-enum LLVMCodeGenFileType {
-  LLVMAssemblyFile,
-  LLVMObjectFile,
-  LLVMNullFile         // Do not emit any output.
-};
 
 extern "C" bool LLVMLinkModules(LLVMModuleRef Dest, LLVMModuleRef Src) {
   static std::string err;
@@ -77,7 +72,8 @@ extern "C" void LLVMRustWriteOutputFile(LLVMPassManagerRef PMR,
                                         LLVMModuleRef M,
                                         const char *triple,
                                         const char *path,
-                                        LLVMCodeGenFileType FileType) {
+                                        TargetMachine::CodeGenFileType FileType,
+                                        CodeGenOpt::Level OptLevel) {
 
   // Set compilation options.
   llvm::NoFramePointerElim = true;
@@ -91,16 +87,14 @@ extern "C" void LLVMRustWriteOutputFile(LLVMPassManagerRef PMR,
   std::string FeaturesStr;
   TargetMachine *Target = TheTarget->createTargetMachine(triple, FeaturesStr);
   bool NoVerify = false;
-  CodeGenOpt::Level OLvl = CodeGenOpt::Default;
   PassManager *PM = unwrap<PassManager>(PMR);
   std::string ErrorInfo;
   raw_fd_ostream OS(path, ErrorInfo,
                     raw_fd_ostream::F_Binary);
   formatted_raw_ostream FOS(OS);
-  TargetMachine::CodeGenFileType FileType2 =
-    static_cast<TargetMachine::CodeGenFileType>(FileType);
 
-  bool foo = Target->addPassesToEmitFile(*PM, FOS, FileType2, OLvl, NoVerify);
+  bool foo = Target->addPassesToEmitFile(*PM, FOS, FileType, OptLevel,
+                                         NoVerify);
   assert(!foo);
   (void)foo;
   PM->run(*unwrap(M));