diff options
Diffstat (limited to 'llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp')
-rw-r--r-- | llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp b/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp index 93db983..eb2f6cd 100644 --- a/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp +++ b/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp @@ -2289,7 +2289,10 @@ bool ARMPreAllocLoadStoreOpt::CanFormLdStDWord( return false; Align Alignment = (*Op0->memoperands_begin())->getAlign(); - Align ReqAlign = STI->getDualLoadStoreAlignment(); + const Function &Func = MF->getFunction(); + Align ReqAlign = + STI->hasV6Ops() ? TD->getABITypeAlign(Type::getInt64Ty(Func.getContext())) + : Align(8); // Pre-v6 need 8-byte align if (Alignment < ReqAlign) return false; |