From b7c5b910682bb1bcaedaa66bcd1c033737175e2e Mon Sep 17 00:00:00 2001 From: Chad Rosier Date: Thu, 1 Oct 2015 13:43:05 +0000 Subject: [AArch64] Hoist commonly failing check. NFC. llvm-svn: 249011 --- llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'llvm/lib') diff --git a/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp b/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp index e0eb6ad1bc8..178dd248840 100644 --- a/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp +++ b/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp @@ -904,6 +904,12 @@ MachineBasicBlock::iterator AArch64LoadStoreOpt::findMatchingUpdateInsnForward( unsigned BaseReg = getLdStBaseOp(MemMI).getReg(); int MIUnscaledOffset = getLdStOffsetOp(MemMI).getImm() * getMemScale(MemMI); + // Scan forward looking for post-index opportunities. Updating instructions + // can't be formed if the memory instruction doesn't have the offset we're + // looking for. + if (MIUnscaledOffset != UnscaledOffset) + return E; + // If the base register overlaps a destination register, we can't // merge the update. bool IsPairedInsn = isPairedLdSt(MemMI); @@ -913,12 +919,6 @@ MachineBasicBlock::iterator AArch64LoadStoreOpt::findMatchingUpdateInsnForward( return E; } - // Scan forward looking for post-index opportunities. Updating instructions - // can't be formed if the memory instruction doesn't have the offset we're - // looking for. - if (MIUnscaledOffset != UnscaledOffset) - return E; - // Track which registers have been modified and used between the first insn // (inclusive) and the second insn. BitVector ModifiedRegs, UsedRegs; -- cgit v1.2.3