mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-10 02:36:06 +00:00
Actually, this code doesn't have to be quite so conservative in
the no-TLI case. But it should still default to declining the transformation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96152 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
1d826a76f5
commit
590bfe8641
@ -1503,11 +1503,7 @@ LSRInstance::OptimizeLoopTermCond() {
|
||||
|
||||
// Conservatively avoid trying to use the post-inc value in non-latch
|
||||
// exits if there may be pre-inc users in intervening blocks.
|
||||
if (LatchBlock != ExitingBlock) {
|
||||
// Without target lowering, we won't be able to query about valid reuse.
|
||||
if (!TLI)
|
||||
continue;
|
||||
|
||||
if (LatchBlock != ExitingBlock)
|
||||
for (IVUsers::const_iterator UI = IU.begin(), E = IU.end(); UI != E; ++UI)
|
||||
// Test if the use is reachable from the exiting block. This dominator
|
||||
// query is a conservative approximation of reachability.
|
||||
@ -1535,6 +1531,10 @@ LSRInstance::OptimizeLoopTermCond() {
|
||||
if (D->getValue()->getValue().getMinSignedBits() >= 64 ||
|
||||
D->getValue()->getValue().isMinSignedValue())
|
||||
goto decline_post_inc;
|
||||
// Without TLI, assume that any stride might be valid, and so any
|
||||
// use might be shared.
|
||||
if (!TLI)
|
||||
goto decline_post_inc;
|
||||
// Check for possible scaled-address reuse.
|
||||
const Type *AccessTy = getAccessType(UI->getUser());
|
||||
TargetLowering::AddrMode AM;
|
||||
@ -1546,7 +1546,6 @@ LSRInstance::OptimizeLoopTermCond() {
|
||||
goto decline_post_inc;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
DEBUG(dbgs() << " Change loop exiting icmp to use postinc iv: "
|
||||
<< *Cond << '\n');
|
||||
|
Loading…
x
Reference in New Issue
Block a user