Implement Transforms/TailCallElim/return-undef.ll, a trivial case
authorChris Lattner <sabre@nondot.org>
Sat, 5 Nov 2005 08:21:11 +0000 (08:21 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 5 Nov 2005 08:21:11 +0000 (08:21 +0000)
that has been sitting in my inbox since May 18. :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24194 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Scalar/TailRecursionElimination.cpp

index a8c2a3a8b770bbbebd1b25a38b27cd94ecb932f6..99c1f10865b0cf876a4cfb2d23df6186843b2c9b 100644 (file)
@@ -342,6 +342,7 @@ bool TailCallElim::ProcessReturningBlock(ReturnInst *Ret, BasicBlock *&OldEntry,
   // constant, return the value returned by the tail call, or that are being
   // accumulator recursion variable eliminated.
   if (Ret->getNumOperands() != 0 && Ret->getReturnValue() != CI &&
+      !isa<UndefValue>(Ret->getReturnValue()) &&
       AccumulatorRecursionEliminationInitVal == 0 &&
       !getCommonReturnValue(Ret, CI))
     return false;