summaryrefslogtreecommitdiff
path: root/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2012-03-27 17:33:52 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2012-03-27 17:33:52 +0000
commit805543068eb7407d718b0359f54b342d7094d0ea (patch)
tree70e84f088d9791b6b7f57cbef5b1d4b200acd961 /lib/Target/ARM/ARMLoadStoreOptimizer.cpp
parent1f141684cfe382b47db55b6ef1fb4fd62886b3c6 (diff)
downloadllvm-805543068eb7407d718b0359f54b342d7094d0ea.tar.gz
llvm-805543068eb7407d718b0359f54b342d7094d0ea.tar.bz2
llvm-805543068eb7407d718b0359f54b342d7094d0ea.tar.xz
ARMLoadStoreOptimizer invalidates register liveness.
This pass tries to update kill flags, but there are still many bugs. Passes after the load/store optimizer don't need accurate liveness, so don't even try. <rdar://problem/11101911> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153519 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMLoadStoreOptimizer.cpp')
-rw-r--r--lib/Target/ARM/ARMLoadStoreOptimizer.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/Target/ARM/ARMLoadStoreOptimizer.cpp b/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
index 51dfa65da6..5b729a642b 100644
--- a/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
+++ b/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
@@ -1411,6 +1411,10 @@ bool ARMLoadStoreOpt::runOnMachineFunction(MachineFunction &Fn) {
}
delete RS;
+
+ // Kill flags aren't updated accurately by this pass.
+ Fn.getRegInfo().invalidateLiveness();
+
return Modified;
}