mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-30 23:42:52 +01:00
39f379d037
This patch just uses a peephole test for "add; compare; branch" sequences within a single block. The IR optimizers already convert loops to decrement-and-branch-on-nonzero form in some cases, so even this simplistic test triggers many times during a clang bootstrap and projects/test-suite run. It looks like there are still cases where we need to more strongly prefer branches on nonzero though. E.g. I saw a case where a loop that started out with a check for 0 ended up with a check for -1. I'll try to look at that sometime. I ended up adding the Reference class because MachineInstr::readsRegister() doesn't check for subregisters (by design, as far as I could tell). llvm-svn: 187723 |
||
---|---|---|
.. | ||
branch-range-01.py | ||
branch-range-02.py | ||
branch-range-03.py | ||
branch-range-04.py | ||
branch-range-05.py | ||
branch-range-06.py | ||
branch-range-07.py | ||
branch-range-08.py | ||
lit.local.cfg | ||
spill-01.py | ||
spill-02.py |