[llvm-commits] [llvm] r72372 - /llvm/trunk/lib/Transforms/Scalar/IndVarSimplify.cpp
Torok Edwin
edwintorok at gmail.com
Sun May 24 13:08:28 PDT 2009
Author: edwin
Date: Sun May 24 15:08:21 2009
New Revision: 72372
URL: http://llvm.org/viewvc/llvm-project?rev=72372&view=rev
Log:
Move Rewriter.clear() earlier, to avoid triggerring the AssertingVH by
one of the RecursivelyDeleteTriviallyDeadInstructions.
Add a comment explaining why the cache needs to be cleared.
Modified:
llvm/trunk/lib/Transforms/Scalar/IndVarSimplify.cpp
Modified: llvm/trunk/lib/Transforms/Scalar/IndVarSimplify.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/IndVarSimplify.cpp?rev=72372&r1=72371&r2=72372&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Scalar/IndVarSimplify.cpp (original)
+++ llvm/trunk/lib/Transforms/Scalar/IndVarSimplify.cpp Sun May 24 15:08:21 2009
@@ -414,9 +414,12 @@
Rewriter.setInsertionPoint(Header->getFirstNonPHI());
- // Rewrite IV-derived expressions.
+ // Rewrite IV-derived expressions. Clears the rewriter cache.
RewriteIVExpressions(L, LargestType, Rewriter);
+ // The Rewriter may only be used for isInsertedInstruction queries from this
+ // point on.
+
// Loop-invariant instructions in the preheader that aren't used in the
// loop may be sunk below the loop to reduce register pressure.
SinkUnusedInvariants(L, Rewriter);
@@ -424,7 +427,6 @@
// Reorder instructions to avoid use-before-def conditions.
FixUsesBeforeDefs(L, Rewriter);
- Rewriter.clear();
// For completeness, inform IVUsers of the IV use in the newly-created
// loop exit test instruction.
if (NewICmp)
@@ -574,6 +576,10 @@
}
}
+ // Clear the rewriter cache, because values that are in the rewriter's cache
+ // can be deleted in the loop below, causing the AssertingVH in the cache to
+ // trigger.
+ Rewriter.clear();
// Now that we're done iterating through lists, clean up any instructions
// which are now dead.
while (!DeadInsts.empty()) {
More information about the llvm-commits
mailing list