1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 20:12:56 +02:00

fix a logic bug where we wouldn't promote single store allocas if the

stored value was a non-instruction value.  Doh.

This increase the # single store allocas from 8982 to 9026, and
speeds up mem2reg on the testcase in PR1432 from 2.17 to 2.13s.

llvm-svn: 40813
This commit is contained in:
Chris Lattner 2007-08-04 02:45:02 +00:00
parent 3f971fdbd5
commit 9748fa5c6f

View File

@ -557,7 +557,7 @@ void PromoteMem2Reg::RewriteSingleStoreAlloca(AllocaInst *AI,
// do so now. We can't handle the case where the store doesn't dominate a
// block because there may be a path between the store and the use, but we
// may need to insert phi nodes to handle dominance properly.
if (StoringGlobalVal || !dominates(OnlyStore->getParent(), UseBlock))
if (!StoringGlobalVal && !dominates(OnlyStore->getParent(), UseBlock))
continue;
// If the use and store are in the same block, do a quick scan to
@ -569,7 +569,7 @@ void PromoteMem2Reg::RewriteSingleStoreAlloca(AllocaInst *AI,
break;
}
if (&*I != OnlyStore)
break; // Do not handle this alloca.
continue; // Do not promote the uses of this in this block.
}
// Otherwise, if this is a different block or if all uses happen