Changes from Git (git http://labmaster3.local/git/llvm-project.git)


  1. [SVEV] Recognise hardware-loop intrinsic loop.decrement.reg (details)
Commit 67bf9a6154d4b82c6c01aad01141bf08c1bbd0f6 by sjoerd.meijer
[SVEV] Recognise hardware-loop intrinsic loop.decrement.reg
Teach SCEV about the @loop.decrement.reg intrinsic, which has exactly
the same semantics as a sub expression. This allows us to query
hardware-loops, which contain this @loop.decrement.reg intrinsic, so
that we can calculate iteration counts, exit values, etc. of
This "int_loop_decrement_reg" intrinsic is defined as "IntrNoDuplicate".
Thus, while hardware-loops and tripcounts now become analysable by SCEV,
this prevents the usual loop transformations from applying
transformations on hardware-loops, which is what we want at this point,
for which I have added test cases for loopunrolling and IndVarSimplify
and LFTR.
Differential Revision:
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
The file was modifiedllvm/unittests/Analysis/ScalarEvolutionTest.cpp
The file was addedllvm/test/Transforms/LoopUnroll/ARM/dont-unroll-loopdec.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/lftr.ll