Changes in directory llvm/lib/Transforms/Utils:
InlineFunction.cpp updated: 1.46 -> 1.47 --- Log message: Implement the first half of Transforms/Inline/inline_cleanup.ll --- Diffs of the changes: (+9 -1) InlineFunction.cpp | 10 +++++++++- 1 files changed, 9 insertions(+), 1 deletion(-) Index: llvm/lib/Transforms/Utils/InlineFunction.cpp diff -u llvm/lib/Transforms/Utils/InlineFunction.cpp:1.46 llvm/lib/Transforms/Utils/InlineFunction.cpp:1.47 --- llvm/lib/Transforms/Utils/InlineFunction.cpp:1.46 Tue Jul 18 16:48:57 2006 +++ llvm/lib/Transforms/Utils/InlineFunction.cpp Wed Sep 13 14:23:57 2006 @@ -245,7 +245,14 @@ BasicBlock::iterator InsertPoint = Caller->begin()->begin(); for (BasicBlock::iterator I = FirstNewBlock->begin(), E = FirstNewBlock->end(); I != E; ) - if (AllocaInst *AI = dyn_cast<AllocaInst>(I++)) + if (AllocaInst *AI = dyn_cast<AllocaInst>(I++)) { + // If the alloca is now dead, remove it. This often occurs due to code + // specialization. + if (AI->use_empty()) { + AI->eraseFromParent(); + continue; + } + if (isa<Constant>(AI->getArraySize())) { // Scan for the block of allocas that we can move over, and move them // all at once. @@ -260,6 +267,7 @@ FirstNewBlock->getInstList(), AI, I); } + } } // If the inlined code contained dynamic alloca instructions, wrap the inlined _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits