[llvm-commits] [llvm] r61124 - /llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp

Chris Lattner sabre at nondot.org
Tue Dec 16 21:42:09 PST 2008


Author: lattner
Date: Tue Dec 16 23:42:08 2008
New Revision: 61124

URL: http://llvm.org/viewvc/llvm-project?rev=61124&view=rev
Log:
insert some sequence points and preincrement an iterator to avoid
iterator invalidation problems.

Modified:
    llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp

Modified: llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp?rev=61124&r1=61123&r2=61124&view=diff

==============================================================================
--- llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp (original)
+++ llvm/trunk/lib/Transforms/IPO/GlobalOpt.cpp Tue Dec 16 23:42:08 2008
@@ -1205,10 +1205,10 @@
   
   // If this is the first time we've seen this PHI, recursively process all
   // users.
-  for (Value::use_iterator UI = PN->use_begin(), E = PN->use_end(); UI != E;
-       ++UI)
-    RewriteHeapSROALoadUser(cast<Instruction>(*UI), InsertedScalarizedValues,
-                            PHIsToRewrite);
+  for (Value::use_iterator UI = PN->use_begin(), E = PN->use_end(); UI != E; ) {
+    Instruction *User = cast<Instruction>(*UI++);
+    RewriteHeapSROALoadUser(User, InsertedScalarizedValues, PHIsToRewrite);
+  }
 }
 
 /// RewriteUsesOfLoadForHeapSRoA - We are performing Heap SRoA on a global.  Ptr
@@ -1219,9 +1219,10 @@
                DenseMap<Value*, std::vector<Value*> > &InsertedScalarizedValues,
                    std::vector<std::pair<PHINode*, unsigned> > &PHIsToRewrite) {
   for (Value::use_iterator UI = Load->use_begin(), E = Load->use_end();
-       UI != E; )
-    RewriteHeapSROALoadUser(cast<Instruction>(*UI++), InsertedScalarizedValues,
-                            PHIsToRewrite);
+       UI != E; ) {
+    Instruction *User = cast<Instruction>(*UI++);
+    RewriteHeapSROALoadUser(User, InsertedScalarizedValues, PHIsToRewrite);
+  }
   
   if (Load->use_empty()) {
     Load->eraseFromParent();





More information about the llvm-commits mailing list