diff options
author | Chad Rosier <mcrosier@codeaurora.org> | 2016-01-28 15:38:24 +0000 |
---|---|---|
committer | Chad Rosier <mcrosier@codeaurora.org> | 2016-01-28 15:38:24 +0000 |
commit | 3ada75f7e89beae88f0a893093c150048b322a57 (patch) | |
tree | 6094d202da9cc9cfc5ec2ac488d0189d0f2c436f /llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp | |
parent | de16172d9d7cdc5dccf66e8a55aef43bc2381526 (diff) | |
download | bcm5719-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.cpp | 6 |
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; |