Mercurial > projects > ldc
changeset 1288:e109e4031e8a
Fix build when USE_METADATA is off.
author | Matti Niemenmaa <matti.niemenmaa+hg@iki.fi> |
---|---|
date | Sat, 02 May 2009 19:03:33 +0300 |
parents | 6c8af78364f5 |
children | 4a5eea0334e5 |
files | gen/optimizer.cpp gen/passes/Passes.h |
diffstat | 2 files changed, 18 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/gen/optimizer.cpp Sat May 02 12:19:43 2009 +0200 +++ b/gen/optimizer.cpp Sat May 02 19:03:33 2009 +0300 @@ -45,6 +45,7 @@ cl::desc("Disable simplification of runtime calls in -O<N>"), cl::ZeroOrMore); +#ifdef USE_METADATA static cl::opt<bool> disableGCToStack("disable-gc2stack", cl::desc("Disable promotion of GC allocations to stack memory in -O<N>"), @@ -55,6 +56,7 @@ disableStripMetaData("disable-strip-metadata", cl::desc("Disable default metadata stripping (not recommended)"), cl::ZeroOrMore); +#endif static cl::opt<opts::BoolOrDefaultAdapter, false, opts::FlagParser> enableInlining("inlining", @@ -104,44 +106,55 @@ pm.add(createInstructionCombiningPass()); pm.add(createCFGSimplificationPass()); pm.add(createPruneEHPass()); + +#ifdef USE_METADATA if (!disableLangSpecificPasses && !disableGCToStack) pm.add(createGarbageCollect2Stack()); +#endif } // -inline if (doInline()) { pm.add(createFunctionInliningPass()); - + if (optimizeLevel >= 2) { // Run some optimizations to clean up after inlining. pm.add(createScalarReplAggregatesPass()); pm.add(createInstructionCombiningPass()); + +#ifdef USE_METADATA if (!disableLangSpecificPasses && !disableGCToStack) pm.add(createGarbageCollect2Stack()); - +#endif + // Inline again, to catch things like foreach delegates // passed to inlined opApply's where the function wasn't // known during the first inliner pass. pm.add(createFunctionInliningPass()); - + // Run clean-up again. pm.add(createScalarReplAggregatesPass()); pm.add(createInstructionCombiningPass()); + +#ifdef USE_METADATA if (!disableLangSpecificPasses && !disableGCToStack) pm.add(createGarbageCollect2Stack()); +#endif } } if (optimizeLevel >= 2 && !disableLangSpecificPasses) { if (!disableSimplifyRuntimeCalls) pm.add(createSimplifyDRuntimeCalls()); - + +#ifdef USE_METADATA if (!disableGCToStack) { // Run some clean-up after the last GC to stack promotion pass. pm.add(createScalarReplAggregatesPass()); pm.add(createInstructionCombiningPass()); pm.add(createCFGSimplificationPass()); } +#endif } #ifdef USE_METADATA if (!disableStripMetaData) {
--- a/gen/passes/Passes.h Sat May 02 12:19:43 2009 +0200 +++ b/gen/passes/Passes.h Sat May 02 19:03:33 2009 +0300 @@ -9,9 +9,9 @@ // Performs simplifications on runtime calls. llvm::FunctionPass* createSimplifyDRuntimeCalls(); -llvm::FunctionPass* createGarbageCollect2Stack(); #ifdef USE_METADATA +llvm::FunctionPass* createGarbageCollect2Stack(); llvm::ModulePass *createStripMetaData(); #endif