diff --git a/CMakeLists.txt b/CMakeLists.txt index 79e5a5a2..46f13575 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -43,11 +43,7 @@ set(CONF_INST_DIR ${SYSCONF_INSTALL_DIR} CACHE PATH "Directory ldc.conf is insta option(USE_BOEHM_GC "use the Boehm garbage collector internally") option(GENERATE_OFFTI "generate complete ClassInfo.offTi arrays") -# Enabled by default now, will be removed entirely soon if no problems pop up -# with the added functionality. -option(USE_METADATA "use metadata and related custom optimization passes" ON) - -mark_as_advanced(USE_BOEHM_GC GENERATE_OFFTI USE_METADATA) +mark_as_advanced(USE_BOEHM_GC GENERATE_OFFTI) if(D_VERSION EQUAL 1) message(FATAL_ERROR "D version 1 is no longer supported. @@ -281,10 +277,6 @@ if(GENERATE_OFFTI) add_definitions(-DGENERATE_OFFTI) endif() -if(USE_METADATA) - add_definitions(-DUSE_METADATA) -endif() - if(MSVC) set(EXTRA_CXXFLAGS "/W0 /wd4996 /GF /GR- /RTC1") else() diff --git a/gen/metadata.h b/gen/metadata.h index 13b59750..5cfe988c 100644 --- a/gen/metadata.h +++ b/gen/metadata.h @@ -11,8 +11,6 @@ // //===----------------------------------------------------------------------===// -#if USE_METADATA - #ifndef LDC_GEN_METADATA_H #define LDC_GEN_METADATA_H @@ -56,5 +54,3 @@ enum ClassDataFields { }; #endif - -#endif // USE_METADATA diff --git a/gen/optimizer.cpp b/gen/optimizer.cpp index 86c6c5a5..76b53569 100644 --- a/gen/optimizer.cpp +++ b/gen/optimizer.cpp @@ -147,12 +147,10 @@ static void addSimplifyDRuntimeCallsPass(const PassManagerBuilder &builder, Pass addPass(pm, createSimplifyDRuntimeCalls()); } -#if USE_METADATA static void addGarbageCollect2StackPass(const PassManagerBuilder &builder, PassManagerBase &pm) { if (builder.OptLevel >= 2 && builder.SizeLevel == 0) addPass(pm, createGarbageCollect2Stack()); } -#endif /** * Adds a set of optimization passes to the given module/function pass @@ -190,10 +188,8 @@ static void addOptimizationPasses(PassManagerBase &mpm, FunctionPassManager &fpm if (!disableSimplifyDruntimeCalls) builder.addExtension(PassManagerBuilder::EP_LoopOptimizerEnd, addSimplifyDRuntimeCallsPass); -#if USE_METADATA if (!disableGCToStack) builder.addExtension(PassManagerBuilder::EP_LoopOptimizerEnd, addGarbageCollect2StackPass); -#endif // USE_METADATA } // EP_OptimizerLast does not exist in LLVM 3.0, add it manually below. diff --git a/gen/passes/GarbageCollect2Stack.cpp b/gen/passes/GarbageCollect2Stack.cpp index 237f442c..7b70d678 100644 --- a/gen/passes/GarbageCollect2Stack.cpp +++ b/gen/passes/GarbageCollect2Stack.cpp @@ -1,5 +1,3 @@ -#if USE_METADATA - //===-- GarbageCollect2Stack.cpp - Promote or remove GC allocations -------===// // // LDC – the LLVM D compiler @@ -801,5 +799,3 @@ bool isSafeToStackAllocate(Instruction* Alloc, Value* V, DominatorTree& DT, // All uses examined - not captured or live across original allocation. return true; } - -#endif // USE_METADATA diff --git a/gen/passes/Passes.h b/gen/passes/Passes.h index 16368762..4a113a59 100644 --- a/gen/passes/Passes.h +++ b/gen/passes/Passes.h @@ -23,9 +23,7 @@ namespace llvm { // Performs simplifications on runtime calls. llvm::FunctionPass* createSimplifyDRuntimeCalls(); -#if USE_METADATA llvm::FunctionPass* createGarbageCollect2Stack(); -#endif // USE_METADATA llvm::ModulePass* createStripExternalsPass(); diff --git a/gen/typinf.cpp b/gen/typinf.cpp index 793ea288..d4ef714f 100644 --- a/gen/typinf.cpp +++ b/gen/typinf.cpp @@ -317,7 +317,6 @@ void DtoResolveTypeInfo(TypeInfoDeclaration* tid) tid->ir.irGlobal = irg; -#if USE_METADATA // don't do this for void or llvm will crash if (tid->tinfo->ty != Tvoid) { // Add some metadata for use by optimization passes. @@ -337,7 +336,6 @@ void DtoResolveTypeInfo(TypeInfoDeclaration* tid) llvm::makeArrayRef(mdVals, TD_NumFields))); } } -#endif // USE_METADATA DtoDeclareTypeInfo(tid); } diff --git a/ir/irclass.cpp b/ir/irclass.cpp index 21c4b057..b5e43b02 100644 --- a/ir/irclass.cpp +++ b/ir/irclass.cpp @@ -88,7 +88,6 @@ LLGlobalVariable * IrStruct::getClassInfoSymbol() classInfo = new llvm::GlobalVariable( *gIR->module, tc->getMemoryLLType(), false, _linkage, NULL, initname); -#if USE_METADATA // Generate some metadata on this ClassInfo if it's for a class. ClassDeclaration* classdecl = aggrdecl->isClassDeclaration(); if (classdecl && !aggrdecl->isInterfaceDeclaration()) { @@ -109,7 +108,6 @@ LLGlobalVariable * IrStruct::getClassInfoSymbol() node->addOperand(llvm::MDNode::get(gIR->context(), llvm::makeArrayRef(mdVals, CD_NumFields))); } -#endif // USE_METADATA return classInfo; }