From 3e28eecfea377ea5127ae4c44958630ea34ae9ec Mon Sep 17 00:00:00 2001 From: David Nadlinger Date: Wed, 20 Apr 2011 20:44:49 +0200 Subject: [PATCH] Quick workaround for a LLVM 2.9 crash with higher optimization levels. createFunctionAttrsPass() is a LLVM pass and the crash is deep in LLVM code, maybe something is wrong with the pass manager state. --- gen/optimizer.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gen/optimizer.cpp b/gen/optimizer.cpp index 280b9541..2c4fd738 100644 --- a/gen/optimizer.cpp +++ b/gen/optimizer.cpp @@ -124,7 +124,11 @@ static void addPassesForOptLevel(PassManager& pm) { addPass(pm, createInstructionCombiningPass()); addPass(pm, createCFGSimplificationPass()); addPass(pm, createPruneEHPass()); - addPass(pm, createFunctionAttrsPass()); + + // FIXME: Adding this pass crashes LLVM 2.9 in + // PMTopLevelManager::schedulePass(), commented out for a quick fix. + // addPass(pm, createFunctionAttrsPass()); + addPass(pm, createTailCallEliminationPass()); addPass(pm, createCFGSimplificationPass()); addPass(pm, createGVNPass());