mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-04-17 15:10:07 +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. llvm-svn: 105758
This commit is contained in:
parent
0e4d704f16
commit
a239e93a5c
@ -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