aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorTim Northover <tnorthover@apple.com>2016-02-17 21:16:53 +0000
committerTim Northover <tnorthover@apple.com>2016-02-17 21:16:53 +0000
commit3f2285615a687cfa55fa3f9480295ab60b5a2e41 (patch)
treeb174fb62289a445ac40b6c293fd925bfbf9f5711 /clang/lib/Frontend/CompilerInvocation.cpp
parent0cdb055f2329c49b3a114deeef6891e0afa8b21b (diff)
downloadllvm-3f2285615a687cfa55fa3f9480295ab60b5a2e41.zip
llvm-3f2285615a687cfa55fa3f9480295ab60b5a2e41.tar.gz
llvm-3f2285615a687cfa55fa3f9480295ab60b5a2e41.tar.bz2
AArch64: improve redundant copy elimination.
Mostly, this fixes the bug that if the CBZ guaranteed Xn but Wn was used, we didn't sort out the use-def chain properly. I've also made it check more than just the last instruction for a compatible CBZ (so it can cope without fallthroughs). I'd have liked to do that separately, but it's helps writing the test. Finally, I removed some custom loops in favour of MachineInstr helpers and refactored the control flow to flatten it and avoid possibly quadratic iterations in blocks with many copies. NFC for these, just a general tidy-up. llvm-svn: 261154
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions