diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2012-03-27 17:33:52 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2012-03-27 17:33:52 +0000 |
commit | 805543068eb7407d718b0359f54b342d7094d0ea (patch) | |
tree | 70e84f088d9791b6b7f57cbef5b1d4b200acd961 /lib/Target/ARM/ARMLoadStoreOptimizer.cpp | |
parent | 1f141684cfe382b47db55b6ef1fb4fd62886b3c6 (diff) | |
download | llvm-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.cpp | 4 |
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; } |