[llvm] r305637 - [TRE] Add assertion for folding trivial return block

Xin Tong via llvm-commits llvm-commits at lists.llvm.org
Sat Jun 17 09:55:13 PDT 2017


Author: trentxintong
Date: Sat Jun 17 11:55:12 2017
New Revision: 305637

URL: http://llvm.org/viewvc/llvm-project?rev=305637&view=rev
Log:
[TRE] Add assertion for folding trivial return block

Modified:
    llvm/trunk/lib/Transforms/Scalar/TailRecursionElimination.cpp

Modified: llvm/trunk/lib/Transforms/Scalar/TailRecursionElimination.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/TailRecursionElimination.cpp?rev=305637&r1=305636&r2=305637&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Scalar/TailRecursionElimination.cpp (original)
+++ llvm/trunk/lib/Transforms/Scalar/TailRecursionElimination.cpp Sat Jun 17 11:55:12 2017
@@ -677,6 +677,10 @@ static bool foldReturnAndProcessPred(Bas
                                      const TargetTransformInfo *TTI) {
   bool Change = false;
 
+  // Make sure this block is a trivial return block.
+  assert(BB->getFirstNonPHIOrDbg() == Ret &&
+         "Trying to fold non-trivial return block");
+
   // If the return block contains nothing but the return and PHI's,
   // there might be an opportunity to duplicate the return in its
   // predecessors and perform TRE there. Look for predecessors that end




More information about the llvm-commits mailing list