mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-11 11:34:02 +00:00
be slightly more subtle about skipping dbg_value instructions; otherwise, if a
dbg_value immediately follows a sequence of ldr/str instructions that should be combined into an ldm/stm and is the last instruction in the block, then combine may end up being skipped. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105758 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
fe633f0ed6
commit
db03adb346
@ -1024,10 +1024,6 @@ bool ARMLoadStoreOpt::LoadStoreMultipleOpti(MachineBasicBlock &MBB) {
|
||||
RS->enterBasicBlock(&MBB);
|
||||
MachineBasicBlock::iterator MBBI = MBB.begin(), E = MBB.end();
|
||||
while (MBBI != E) {
|
||||
if (MBBI->isDebugValue()) {
|
||||
++MBBI;
|
||||
continue;
|
||||
}
|
||||
if (FixInvalidRegPairOp(MBB, MBBI))
|
||||
continue;
|
||||
|
||||
@ -1094,7 +1090,12 @@ bool ARMLoadStoreOpt::LoadStoreMultipleOpti(MachineBasicBlock &MBB) {
|
||||
}
|
||||
}
|
||||
|
||||
if (Advance) {
|
||||
if (MBBI->isDebugValue()) {
|
||||
++MBBI;
|
||||
if (MBBI == E)
|
||||
// Reach the end of the block, try merging the memory instructions.
|
||||
TryMerge = true;
|
||||
} else if (Advance) {
|
||||
++Position;
|
||||
++MBBI;
|
||||
if (MBBI == E)
|
||||
|
Loading…
x
Reference in New Issue
Block a user