[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