aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
diff options
context:
space:
mode:
authorDavid Spickett <david.spickett@linaro.org>2023-07-03 13:50:35 +0000
committerDavid Spickett <david.spickett@linaro.org>2023-07-03 14:05:49 +0000
commitab3bb86d4487fa904a18b6350901b3a4e9470196 (patch)
tree2bc60f0108de0adac72cfd686d4158471f1cfa7d /llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
parent29f4c398717184a019791ed52d1d0d69ed5dabb6 (diff)
downloadllvm-ab3bb86d4487fa904a18b6350901b3a4e9470196.zip
llvm-ab3bb86d4487fa904a18b6350901b3a4e9470196.tar.gz
llvm-ab3bb86d4487fa904a18b6350901b3a4e9470196.tar.bz2
Revert "[ARM] Adjust strd/ldrd codegen alignment requirements"
This reverts commit 92a9c30c61da7f973d55cd84fade424159b9cac9. This has caused a test failure in the 2nd stage of Linaro's Arm 32 bit buildbots. LLVM::simplified-template-names.s 7: error: Simplified template DW_AT_name could not be reconstituted: check:10'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 8: original: f3<unsigned char, (unsigned char)'\x00'> check:10'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 9: reconstituted: f3<unsigned char, (unsigned char)'\x7f'> check:10'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ I suspect a load/store is slightly off.
Diffstat (limited to 'llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp')
-rw-r--r--llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp5
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;