summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Target/AArch64/AArch64TargetMachine.cpp')
-rw-r--r--llvm/lib/Target/AArch64/AArch64TargetMachine.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp b/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
index 29995903d11..eb78c8c0452 100644
--- a/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
+++ b/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
@@ -67,6 +67,11 @@ EnableAtomicTidy("aarch64-atomic-cfg-tidy", cl::Hidden,
" to make use of cmpxchg flow-based information"),
cl::init(true));
+static cl::opt<bool> AArch64InterleavedAccessOpt(
+ "aarch64-interleaved-access-opt",
+ cl::desc("Optimize interleaved memory accesses in the AArch64 backend"),
+ cl::init(false), cl::Hidden);
+
static cl::opt<bool>
EnableEarlyIfConversion("aarch64-enable-early-ifcvt", cl::Hidden,
cl::desc("Run early if-conversion"),
@@ -223,6 +228,9 @@ void AArch64PassConfig::addIRPasses() {
if (TM->getOptLevel() != CodeGenOpt::None && EnableAtomicTidy)
addPass(createCFGSimplificationPass());
+ if (TM->getOptLevel() != CodeGenOpt::None && AArch64InterleavedAccessOpt)
+ addPass(createAArch64InterleavedAccessPass());
+
TargetPassConfig::addIRPasses();
if (TM->getOptLevel() == CodeGenOpt::Aggressive && EnableGEPOpt) {
OpenPOWER on IntegriCloud