[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