When no memoperands are present, assume unaligned, volatile.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107114 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Jakob Stoklund Olesen 2010-06-29 01:13:07 +00:00
parent 0a1bd2abf6
commit 628a79771b

View File

@ -788,7 +788,11 @@ bool ARMLoadStoreOpt::MergeBaseUpdateLoadStore(MachineBasicBlock &MBB,
/// isMemoryOp - Returns true if instruction is a memory operations (that this
/// pass is capable of operating on).
static bool isMemoryOp(const MachineInstr *MI) {
if (MI->hasOneMemOperand()) {
// When no memory operands are present, conservatively assume unaligned,
// volatile, unfoldable.
if (!MI->hasOneMemOperand())
return false;
const MachineMemOperand *MMO = *MI->memoperands_begin();
// Don't touch volatile memory accesses - we may be changing their order.
@ -799,7 +803,6 @@ static bool isMemoryOp(const MachineInstr *MI) {
// not.
if (MMO->getAlignment() < 4)
return false;
}
// str <undef> could probably be eliminated entirely, but for now we just want
// to avoid making a mess of it.