[all-commits] [llvm/llvm-project] 67bf9a: [SVEV] Recognise hardware-loop intrinsic loop.decr...
sjoerdmeijer via All-commits
all-commits at lists.llvm.org
Fri Jan 10 01:36:06 PST 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 67bf9a6154d4b82c6c01aad01141bf08c1bbd0f6
https://github.com/llvm/llvm-project/commit/67bf9a6154d4b82c6c01aad01141bf08c1bbd0f6
Author: Sjoerd Meijer <sjoerd.meijer at arm.com>
Date: 2020-01-10 (Fri, 10 Jan 2020)
Changed paths:
M llvm/lib/Analysis/ScalarEvolution.cpp
M llvm/test/Transforms/IndVarSimplify/lftr.ll
A llvm/test/Transforms/LoopUnroll/ARM/dont-unroll-loopdec.ll
M llvm/unittests/Analysis/ScalarEvolutionTest.cpp
Log Message:
-----------
[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 hardwareloops.
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: https://reviews.llvm.org/D71563
More information about the All-commits
mailing list