comparison gen/toobj.cpp @ 1532:c88b16d4a13c

Remove all of the now unecessary #if LLVM_REV
author Benjamin Kramer <benny.kra@gmail.com>
date Sat, 11 Jul 2009 14:09:33 +0200
parents ad7f2f1862d6
children 8ca25bd765a3
comparison
equal deleted inserted replaced
1531:7120a74e9ae2 1532:c88b16d4a13c
12 12
13 #include "gen/llvm.h" 13 #include "gen/llvm.h"
14 #include "gen/llvm-version.h" 14 #include "gen/llvm-version.h"
15 #include "llvm/Analysis/Verifier.h" 15 #include "llvm/Analysis/Verifier.h"
16 #include "llvm/Bitcode/ReaderWriter.h" 16 #include "llvm/Bitcode/ReaderWriter.h"
17 #if LLVM_REV >= 74640
18 #include "llvm/LLVMContext.h" 17 #include "llvm/LLVMContext.h"
19 #endif
20 #include "llvm/Module.h" 18 #include "llvm/Module.h"
21 #include "llvm/ModuleProvider.h" 19 #include "llvm/ModuleProvider.h"
22 #include "llvm/PassManager.h" 20 #include "llvm/PassManager.h"
23 #include "llvm/LinkAllPasses.h" 21 #include "llvm/LinkAllPasses.h"
24 #include "llvm/System/Program.h" 22 #include "llvm/System/Program.h"
95 if (md != 0) 93 if (md != 0)
96 mname = md->toChars(); 94 mname = md->toChars();
97 95
98 // create a new ir state 96 // create a new ir state
99 // TODO look at making the instance static and moving most functionality into IrModule where it belongs 97 // TODO look at making the instance static and moving most functionality into IrModule where it belongs
100 #if LLVM_REV >= 74640
101 IRState ir(new llvm::Module(mname, llvm::getGlobalContext())); 98 IRState ir(new llvm::Module(mname, llvm::getGlobalContext()));
102 #else
103 IRState ir(new llvm::Module(mname));
104 #endif
105 gIR = &ir; 99 gIR = &ir;
106 ir.dmodule = this; 100 ir.dmodule = this;
107 101
108 // reset all IR data stored in Dsymbols 102 // reset all IR data stored in Dsymbols
109 IrDsymbol::resetAll(); 103 IrDsymbol::resetAll();
305 Passes.add(new TargetData(*Target.getTargetData())); 299 Passes.add(new TargetData(*Target.getTargetData()));
306 300
307 // Ask the target to add backend passes as necessary. 301 // Ask the target to add backend passes as necessary.
308 MachineCodeEmitter *MCE = 0; 302 MachineCodeEmitter *MCE = 0;
309 303
310 #if LLVM_REV < 70343
311 // Last argument is bool Fast
312 // debug info doesn't work properly without fast!
313 bool LastArg = !optimize() || global.params.symdebug;
314 #elif LLVM_REV < 70459
315 // Last argument is unsigned OptLevel
316 // debug info doesn't work properly with OptLevel > 0!
317 unsigned LastArg = global.params.symdebug ? 0 : optLevel();
318 #else
319 // Last argument is enum CodeGenOpt::Level OptLevel 304 // Last argument is enum CodeGenOpt::Level OptLevel
320 // debug info doesn't work properly with OptLevel != None! 305 // debug info doesn't work properly with OptLevel != None!
321 CodeGenOpt::Level LastArg = CodeGenOpt::Default; 306 CodeGenOpt::Level LastArg = CodeGenOpt::Default;
322 if (global.params.symdebug || !optimize()) 307 if (global.params.symdebug || !optimize())
323 LastArg = CodeGenOpt::None; 308 LastArg = CodeGenOpt::None;
324 else if (optLevel() >= 3) 309 else if (optLevel() >= 3)
325 LastArg = CodeGenOpt::Aggressive; 310 LastArg = CodeGenOpt::Aggressive;
326 #endif 311
327 FileModel::Model mod = Target.addPassesToEmitFile(Passes, out, TargetMachine::AssemblyFile, LastArg); 312 FileModel::Model mod = Target.addPassesToEmitFile(Passes, out, TargetMachine::AssemblyFile, LastArg);
328 assert(mod == FileModel::AsmFile); 313 assert(mod == FileModel::AsmFile);
329 314
330 bool err = Target.addPassesToEmitFileFinish(Passes, MCE, LastArg); 315 bool err = Target.addPassesToEmitFileFinish(Passes, MCE, LastArg);
331 assert(!err); 316 assert(!err);