summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChad Rosier <mcrosier@codeaurora.org>2016-02-09 19:42:19 +0000
committerChad Rosier <mcrosier@codeaurora.org>2016-02-09 19:42:19 +0000
commit3f8b09da3fb9a3b78d7813b4adc2ac5916c6f25b (patch)
tree9c7ea1c06606f9244b7c38bb4e36ac3403b8e6c9
parent155ca8f2519252b798c732389e2690d462b46e51 (diff)
downloadllvm-3f8b09da3fb9a3b78d7813b4adc2ac5916c6f25b.tar.gz
[AArch64] Add a FIXME about invalid KILL markers after the ld/st opt pass.
llvm-svn: 260264
-rw-r--r--llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp b/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
index 9f454b2b5c56..f85d6a8f2dc9 100644
--- a/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
+++ b/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp
@@ -1911,6 +1911,11 @@ bool AArch64LoadStoreOpt::runOnMachineFunction(MachineFunction &Fn) {
// FIXME: Do we need/want a pre-alloc pass like ARM has to try to keep
// loads and stores near one another?
+// FIXME: When pairing store instructions it's very possible for this pass to
+// hoist a store with a KILL marker above another use (without a KILL marker).
+// The resulting IR is invalid, but nothing uses the KILL markers after this
+// pass, so it's never caused a problem in practice.
+
/// createAArch64LoadStoreOptimizationPass - returns an instance of the
/// load / store optimization pass.
FunctionPass *llvm::createAArch64LoadStoreOptimizationPass() {