mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-22 07:32:48 +00:00
9379557478
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). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187723 91177308-0d34-0410-b5e6-96231b3b80d8 |
||
---|---|---|
.. | ||
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 |