diff --git a/gen/main.cpp b/gen/main.cpp index 2f1ecf2b..23802795 100644 --- a/gen/main.cpp +++ b/gen/main.cpp @@ -7,17 +7,13 @@ #include "gen/llvm-version.h" #include "llvm/LinkAllVMCore.h" #include "llvm/Linker.h" -#if LLVM_REV >= 74640 #include "llvm/LLVMContext.h" -#endif #include "llvm/System/Signals.h" #include "llvm/Target/SubtargetFeature.h" #include "llvm/Target/TargetMachine.h" #include "llvm/Target/TargetOptions.h" #include "llvm/Target/TargetMachineRegistry.h" -#if LLVM_REV >= 73610 #include "llvm/Target/TargetSelect.h" -#endif #include #include @@ -406,11 +402,7 @@ int main(int argc, char** argv) if (global.errors) fatal(); -#if LLVM_REV >= 74640 llvm::Module mod("dummy", llvm::getGlobalContext()); -#else - llvm::Module mod("dummy"); -#endif // override triple if needed const char* defaultTriple = DEFAULT_TARGET_TRIPLE; @@ -439,12 +431,10 @@ int main(int argc, char** argv) // Allocate target machine. // first initialize llvm -#if LLVM_REV >= 73610 #define LLVM_TARGET(A) LLVMInitialize##A##Target(); LLVMInitialize##A##AsmPrinter(); // this is defined to be LLVM_TARGET(target name 1) LLVM_TARGET(target name 2) ... LDC_TARGETS #undef LLVM_TARGET -#endif // Check whether the user has explicitly specified an architecture to compile for. if (mArch == 0) @@ -843,16 +833,12 @@ LDC_TARGETS * not be found at link time. */ if (!global.params.useArrayBounds && !global.params.useAssert) -#elif LLVM_REV >= 68940 +#else // This doesn't play nice with debug info at the moment if (!global.params.symdebug && willInline()) { global.params.useAvailableExternally = true; Logger::println("Running some extra semantic3's for inlining purposes"); -#else - // IN_LLVM, but available_externally not available yet. - if (false) - { #endif { // Do pass 3 semantic analysis on all imported modules, @@ -930,11 +916,8 @@ LDC_TARGETS char* name = m->toChars(); char* filename = m->objfile->name->str; -#if LLVM_REV >= 74640 llvm::Linker linker(name, name, llvm::getGlobalContext()); -#else - llvm::Linker linker(name, name); -#endif + std::string errormsg; for (int i = 0; i < llvmModules.size(); i++) { diff --git a/gen/metadata.h b/gen/metadata.h index 949f8a7d..035d16ee 100644 --- a/gen/metadata.h +++ b/gen/metadata.h @@ -3,11 +3,6 @@ #include "gen/llvm-version.h" -#if LLVM_REV >= 68420 -// Yay, we have metadata! - -// The metadata interface is still in flux... -#if LLVM_REV >= 71407 // MDNode was moved into its own header, and contains Value*s #include "llvm/MDNode.h" typedef llvm::Value MDNodeField; @@ -19,19 +14,6 @@ inline MDNodeField* MD_GetElement(llvm::MDNode* N, unsigned i) { return N->getElement(i); } -#else - // MDNode is in Constants.h, and contains Constant*s - #include "llvm/Constants.h" - typedef llvm::Constant MDNodeField; - - // Use getNumOperands() and getOperand() to access elements. - inline unsigned MD_GetNumElements(llvm::MDNode* N) { - return N->getNumOperands(); - } - inline MDNodeField* MD_GetElement(llvm::MDNode* N, unsigned i) { - return N->getOperand(i); - } -#endif #define USE_METADATA #define METADATA_LINKAGE_TYPE llvm::GlobalValue::WeakODRLinkage @@ -42,14 +24,7 @@ /// The fields in the metadata node for a TypeInfo instance. /// (Its name will be TD_PREFIX ~ ) enum TypeDataFields { -#if LLVM_REV < 71407 - // TD_Confirm is disabled for older revisions due to an LLVM bug when - // MDNodes contain globals - // (see http://llvm.org/PR4180 / http://llvm.org/PR4046 ) - TD_Confirm = -1,/// The TypeInfo this node is for. -#else TD_Confirm, /// The TypeInfo this node is for. -#endif TD_Type, /// A value of the LLVM type corresponding to this D type @@ -73,5 +48,3 @@ enum ClassDataFields { }; #endif - -#endif diff --git a/gen/optimizer.cpp b/gen/optimizer.cpp index a4368f7b..5e1e8624 100644 --- a/gen/optimizer.cpp +++ b/gen/optimizer.cpp @@ -212,9 +212,7 @@ static void addPassesForOptLevel(PassManager& pm) { } if (optimizeLevel >= 1) { -#if LLVM_REV >= 68940 addPass(pm, createStripExternalsPass()); -#endif addPass(pm, createGlobalDCEPass()); } diff --git a/gen/passes/Passes.h b/gen/passes/Passes.h index 118ca759..5b2758cb 100644 --- a/gen/passes/Passes.h +++ b/gen/passes/Passes.h @@ -15,8 +15,6 @@ llvm::FunctionPass* createGarbageCollect2Stack(); llvm::ModulePass* createStripMetaData(); #endif -#if LLVM_REV >= 68940 llvm::ModulePass* createStripExternalsPass(); -#endif #endif diff --git a/gen/passes/StripExternals.cpp b/gen/passes/StripExternals.cpp index 19303881..b62c7df6 100644 --- a/gen/passes/StripExternals.cpp +++ b/gen/passes/StripExternals.cpp @@ -17,9 +17,6 @@ #include "gen/llvm-version.h" -#if LLVM_REV >= 68940 - - #define DEBUG_TYPE "strip-externals" #include "Passes.h" @@ -96,5 +93,3 @@ bool StripExternals::runOnModule(Module &M) { return Changed; } - -#endif //LLVM_REV >= 68940 diff --git a/gen/runtime.cpp b/gen/runtime.cpp index 6dd8994d..a18b8890 100644 --- a/gen/runtime.cpp +++ b/gen/runtime.cpp @@ -1,8 +1,6 @@ #include "gen/llvm.h" #include "gen/llvm-version.h" -#if LLVM_REV >= 74640 #include "llvm/LLVMContext.h" -#endif #include "llvm/Module.h" #include "llvm/Attributes.h" #include "llvm/Bitcode/ReaderWriter.h" @@ -153,11 +151,7 @@ static const LLType* rt_dg2() static void LLVM_D_BuildRuntimeModule() { Logger::println("building module"); -#if LLVM_REV >= 74640 M = new llvm::Module("ldc internal runtime", llvm::getGlobalContext()); -#else - M = new llvm::Module("ldc internal runtime"); -#endif Logger::println("building basic types"); const LLType* voidTy = LLType::VoidTy; diff --git a/gen/tollvm.cpp b/gen/tollvm.cpp index 7c155477..6024c2b0 100644 --- a/gen/tollvm.cpp +++ b/gen/tollvm.cpp @@ -241,11 +241,9 @@ LLGlobalValue::LinkageTypes DtoLinkage(Dsymbol* sym) { if (mustDefineSymbol(vd)) Logger::println("Variable %savailable externally: %s", (vd->availableExternally ? "" : "not "), vd->toChars()); -#if LLVM_REV >= 68940 // generated by inlining semantics run if (vd->availableExternally && mustDefineSymbol(sym)) return llvm::GlobalValue::AvailableExternallyLinkage; -#endif // template if (needsTemplateLinkage(sym)) return TEMPLATE_LINKAGE_TYPE; @@ -261,11 +259,9 @@ LLGlobalValue::LinkageTypes DtoLinkage(Dsymbol* sym) // intrinsics are always external if (fdecl->llvmInternal == LLVMintrinsic) return llvm::GlobalValue::ExternalLinkage; -#if LLVM_REV >= 68940 // generated by inlining semantics run if (fdecl->availableExternally && mustDefineSymbol(sym)) return llvm::GlobalValue::AvailableExternallyLinkage; -#endif // array operations are always template linkage if (fdecl->isArrayOp) return TEMPLATE_LINKAGE_TYPE; @@ -283,11 +279,9 @@ LLGlobalValue::LinkageTypes DtoLinkage(Dsymbol* sym) { if (mustDefineSymbol(cd)) Logger::println("Class %savailable externally: %s", (cd->availableExternally ? "" : "not "), vd->toChars()); -#if LLVM_REV >= 68940 // generated by inlining semantics run if (cd->availableExternally && mustDefineSymbol(sym)) return llvm::GlobalValue::AvailableExternallyLinkage; -#endif // template if (needsTemplateLinkage(cd)) return TEMPLATE_LINKAGE_TYPE; @@ -339,10 +333,8 @@ static bool isAvailableExternally(Dsymbol* sym) llvm::GlobalValue::LinkageTypes DtoInternalLinkage(Dsymbol* sym) { if (needsTemplateLinkage(sym)) { -#if LLVM_REV >= 68940 if (isAvailableExternally(sym) && mustDefineSymbol(sym)) return llvm::GlobalValue::AvailableExternallyLinkage; -#endif return TEMPLATE_LINKAGE_TYPE; } else @@ -351,10 +343,8 @@ llvm::GlobalValue::LinkageTypes DtoInternalLinkage(Dsymbol* sym) llvm::GlobalValue::LinkageTypes DtoExternalLinkage(Dsymbol* sym) { -#if LLVM_REV >= 68940 if (isAvailableExternally(sym) && mustDefineSymbol(sym)) return llvm::GlobalValue::AvailableExternallyLinkage; -#endif if (needsTemplateLinkage(sym)) return TEMPLATE_LINKAGE_TYPE; else @@ -768,11 +758,7 @@ size_t getTypeStoreSize(const LLType* t) size_t getTypePaddedSize(const LLType* t) { -#if LLVM_REV > 71348 size_t sz = gTargetData->getTypeAllocSize(t); -#else - size_t sz = gTargetData->getTypePaddedSize(t); -#endif //Logger::cout() << "abi type size of: " << *t << " == " << sz << '\n'; return sz; } diff --git a/gen/toobj.cpp b/gen/toobj.cpp index 1e7b12fd..8d4ee5d6 100644 --- a/gen/toobj.cpp +++ b/gen/toobj.cpp @@ -14,9 +14,7 @@ #include "gen/llvm-version.h" #include "llvm/Analysis/Verifier.h" #include "llvm/Bitcode/ReaderWriter.h" -#if LLVM_REV >= 74640 #include "llvm/LLVMContext.h" -#endif #include "llvm/Module.h" #include "llvm/ModuleProvider.h" #include "llvm/PassManager.h" @@ -97,11 +95,7 @@ llvm::Module* Module::genLLVMModule(Ir* sir) // create a new ir state // TODO look at making the instance static and moving most functionality into IrModule where it belongs -#if LLVM_REV >= 74640 IRState ir(new llvm::Module(mname, llvm::getGlobalContext())); -#else - IRState ir(new llvm::Module(mname)); -#endif gIR = &ir; ir.dmodule = this; @@ -307,15 +301,6 @@ void write_asm_to_file(llvm::TargetMachine &Target, llvm::Module& m, llvm::raw_f // Ask the target to add backend passes as necessary. MachineCodeEmitter *MCE = 0; -#if LLVM_REV < 70343 - // Last argument is bool Fast - // debug info doesn't work properly without fast! - bool LastArg = !optimize() || global.params.symdebug; -#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; @@ -323,7 +308,7 @@ void write_asm_to_file(llvm::TargetMachine &Target, llvm::Module& m, llvm::raw_f 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);