From 34d595de268224b241fa11ecda1c7b0fe31ac74d Mon Sep 17 00:00:00 2001 From: kai Date: Sat, 11 Aug 2012 19:17:18 +0200 Subject: [PATCH] Enable FunctionAttrsPass again. This pass requires an alias analysis, which is also added. --- gen/optimizer.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gen/optimizer.cpp b/gen/optimizer.cpp index 996ad525..43015d02 100644 --- a/gen/optimizer.cpp +++ b/gen/optimizer.cpp @@ -107,6 +107,10 @@ static void addPassesForOptLevel(PassManager& pm) { // -O1 if (optimizeLevel >= 1) { + // Add alias analysis passes. + // This is at least required for FunctionAttrs pass. + addPass(pm, createTypeBasedAliasAnalysisPass()); + addPass(pm, createBasicAliasAnalysisPass()); //addPass(pm, createStripDeadPrototypesPass()); addPass(pm, createGlobalDCEPass()); addPass(pm, createPromoteMemoryToRegisterPass()); @@ -127,9 +131,7 @@ static void addPassesForOptLevel(PassManager& pm) { addPass(pm, createCFGSimplificationPass()); addPass(pm, createPruneEHPass()); - // FIXME: Adding this pass crashes LLVM 2.9 in - // PMTopLevelManager::schedulePass(), commented out for a quick fix. - // addPass(pm, createFunctionAttrsPass()); + addPass(pm, createFunctionAttrsPass()); addPass(pm, createTailCallEliminationPass()); addPass(pm, createCFGSimplificationPass());