forked from OSchip/llvm-project
[arm load/store optimizer] When trying to merge a base update load/store, make
sure the base register and would-be writeback register don't conflict for stores. This was already being done for loads. Unfortunately, it is rather difficult to create a test case for this issue. It was exposed in 450.soplex at LTO and requires unlucky register allocation. <rdar://13394908> llvm-svn: 177874
This commit is contained in:
parent
82050340c6
commit
ace9c5dfaf
|
@ -865,7 +865,7 @@ bool ARMLoadStoreOpt::MergeBaseUpdateLoadStore(MachineBasicBlock &MBB,
|
|||
bool isLd = isi32Load(Opcode) || Opcode == ARM::VLDRS || Opcode == ARM::VLDRD;
|
||||
// Can't do the merge if the destination register is the same as the would-be
|
||||
// writeback register.
|
||||
if (isLd && MI->getOperand(0).getReg() == Base)
|
||||
if (MI->getOperand(0).getReg() == Base)
|
||||
return false;
|
||||
|
||||
unsigned PredReg = 0;
|
||||
|
|
Loading…
Reference in New Issue