mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-19 06:31:18 +00:00
break edges more intelligently
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31257 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
27e1f90d85
commit
0997fadc37
@ -378,7 +378,8 @@ static bool IVUseShouldUsePostIncValue(Instruction *User, Instruction *IV,
|
|||||||
// post-incremented value.
|
// post-incremented value.
|
||||||
for (unsigned i = 0, e = PN->getNumIncomingValues(); i != e; ++i)
|
for (unsigned i = 0, e = PN->getNumIncomingValues(); i != e; ++i)
|
||||||
if (PN->getIncomingValue(i) == IV) {
|
if (PN->getIncomingValue(i) == IV) {
|
||||||
SplitCriticalEdge(PN->getIncomingBlock(i), PN->getParent(), P);
|
SplitCriticalEdge(PN->getIncomingBlock(i), PN->getParent(), P,
|
||||||
|
true);
|
||||||
// Splitting the critical edge can reduce the number of entries in this
|
// Splitting the critical edge can reduce the number of entries in this
|
||||||
// PHI.
|
// PHI.
|
||||||
e = PN->getNumIncomingValues();
|
e = PN->getNumIncomingValues();
|
||||||
@ -582,7 +583,7 @@ void BasedUser::RewriteInstructionToUseNewBase(const SCEVHandle &NewBase,
|
|||||||
(PN->getParent() != L->getHeader() || !L->contains(PHIPred))) {
|
(PN->getParent() != L->getHeader() || !L->contains(PHIPred))) {
|
||||||
|
|
||||||
// First step, split the critical edge.
|
// First step, split the critical edge.
|
||||||
SplitCriticalEdge(PHIPred, PN->getParent(), P);
|
SplitCriticalEdge(PHIPred, PN->getParent(), P, true);
|
||||||
|
|
||||||
// Next step: move the basic block. In particular, if the PHI node
|
// Next step: move the basic block. In particular, if the PHI node
|
||||||
// is outside of the loop, and PredTI is in the loop, we want to
|
// is outside of the loop, and PredTI is in the loop, we want to
|
||||||
|
Loading…
x
Reference in New Issue
Block a user