pr6480: Don't try producing ld/st-multiple instructions when the address is

an undef value.  This is only going to come up for bugpoint-reduced tests --
correct programs will not access memory at undefined addresses -- so it's not
worth the effort of doing anything more aggressive.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97745 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Bob Wilson
2010-03-04 21:04:38 +00:00
parent d4076cfc83
commit bbf39b0fd9
2 changed files with 59 additions and 0 deletions

View File

@ -761,6 +761,11 @@ static bool isMemoryOp(const MachineInstr *MI) {
MI->getOperand(0).isUndef())
return false;
// Likewise don't mess with references to undefined addresses.
if (MI->getNumOperands() > 1 && MI->getOperand(1).isReg() &&
MI->getOperand(1).isUndef())
return false;
int Opcode = MI->getOpcode();
switch (Opcode) {
default: break;