1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-30 23:42:52 +01:00
llvm-mirror/test/CodeGen/SystemZ/Large
Richard Sandiford 39f379d037 [SystemZ] Use BRCT and BRCTG to eliminate add-&-compare sequences
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
2013-08-05 11:23:46 +00:00
..
branch-range-01.py
branch-range-02.py
branch-range-03.py
branch-range-04.py
branch-range-05.py [SystemZ] Two tests missing from previous commit 2013-05-29 11:59:26 +00:00
branch-range-06.py [SystemZ] Two tests missing from previous commit 2013-05-29 11:59:26 +00:00
branch-range-07.py [SystemZ] Use BRCT and BRCTG to eliminate add-&-compare sequences 2013-08-05 11:23:46 +00:00
branch-range-08.py [SystemZ] Use BRCT and BRCTG to eliminate add-&-compare sequences 2013-08-05 11:23:46 +00:00
lit.local.cfg
spill-01.py [SystemZ] Use MVC to spill loads and stores 2013-07-02 15:28:56 +00:00
spill-02.py [SystemZ] Enable the use of MVC for frame-to-frame spills 2013-07-05 14:02:01 +00:00