summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
diff options
context:
space:
mode:
authorChad Rosier <mcrosier@codeaurora.org>2016-01-28 15:38:24 +0000
committerChad Rosier <mcrosier@codeaurora.org>2016-01-28 15:38:24 +0000
commit3ada75f7e89beae88f0a893093c150048b322a57 (patch)
tree6094d202da9cc9cfc5ec2ac488d0189d0f2c436f /llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
parentde16172d9d7cdc5dccf66e8a55aef43bc2381526 (diff)
downloadbcm5719-llvm-3ada75f7e89beae88f0a893093c150048b322a57.tar.gz
bcm5719-llvm-3ada75f7e89beae88f0a893093c150048b322a57.zip
[AArch64] Set MMOs on pre- and post-index instructions.
Without the MMOs the MI scheduler is unable to reason about the dependencies of these instructions. llvm-svn: 259052
Diffstat (limited to 'llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp')
-rw-r--r--llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp b/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
index 48d49d8a73a..120cba45abf 100644
--- a/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
+++ b/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
@@ -1264,7 +1264,8 @@ AArch64LoadStoreOpt::mergeUpdateInsn(MachineBasicBlock::iterator I,
.addOperand(getLdStRegOp(Update))
.addOperand(getLdStRegOp(I))
.addOperand(getLdStBaseOp(I))
- .addImm(Value);
+ .addImm(Value)
+ .setMemRefs(I->memoperands_begin(), I->memoperands_end());
} else {
// Paired instruction.
int Scale = getMemScale(I);
@@ -1273,7 +1274,8 @@ AArch64LoadStoreOpt::mergeUpdateInsn(MachineBasicBlock::iterator I,
.addOperand(getLdStRegOp(I, 0))
.addOperand(getLdStRegOp(I, 1))
.addOperand(getLdStBaseOp(I))
- .addImm(Value / Scale);
+ .addImm(Value / Scale)
+ .setMemRefs(I->memoperands_begin(), I->memoperands_end());
}
(void)MIB;
OpenPOWER on IntegriCloud