Mercurial > projects > ldc
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); |