mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-22 03:58:16 +00: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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40813 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
4f63e76cda
commit
c69e491575
@ -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
|
// 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
|
// 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.
|
// may need to insert phi nodes to handle dominance properly.
|
||||||
if (StoringGlobalVal || !dominates(OnlyStore->getParent(), UseBlock))
|
if (!StoringGlobalVal && !dominates(OnlyStore->getParent(), UseBlock))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// If the use and store are in the same block, do a quick scan to
|
// 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;
|
break;
|
||||||
}
|
}
|
||||||
if (&*I != OnlyStore)
|
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
|
// Otherwise, if this is a different block or if all uses happen
|
||||||
|
Loading…
Reference in New Issue
Block a user