From 96108f8e7c76f655b51ae6262d367971a5a33d44 Mon Sep 17 00:00:00 2001 From: Frits van Bommel Date: Thu, 30 Apr 2009 11:56:03 +0200 Subject: [PATCH] Now the backend wants an enum value as optimization level. Hopefully this'll be the last change to that code... --- gen/toobj.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gen/toobj.cpp b/gen/toobj.cpp index 91b54a95..461b998d 100644 --- a/gen/toobj.cpp +++ b/gen/toobj.cpp @@ -268,10 +268,18 @@ void write_asm_to_file(llvm::TargetMachine &Target, llvm::Module& m, llvm::raw_f // Last argument is bool Fast // debug info doesn't work properly without fast! bool LastArg = !optimize() || global.params.symdebug; -#else +#elif LLVM_REV < 70459 // Last argument is unsigned OptLevel // debug info doesn't work properly with OptLevel > 0! unsigned LastArg = global.params.symdebug ? 0 : optLevel(); +#else + // Last argument is enum CodeGenOpt::Level OptLevel + // debug info doesn't work properly with OptLevel != None! + CodeGenOpt::Level LastArg = CodeGenOpt::Default; + if (global.params.symdebug) + LastArg = CodeGenOpt::None; + else if (optLevel() >= 3) + LastArg = CodeGenOpt::Aggressive; #endif FileModel::Model mod = Target.addPassesToEmitFile(Passes, out, TargetMachine::AssemblyFile, LastArg); assert(mod == FileModel::AsmFile);