[all-commits] [llvm/llvm-project] 32d119: [LV] Use SCEV for subtraction of src/sink for diff...

Florian Hahn via All-commits all-commits at lists.llvm.org
Wed Nov 22 04:48:33 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 32d1197a8faf4c04df5fcd6c0588aa288bc42e35
      https://github.com/llvm/llvm-project/commit/32d1197a8faf4c04df5fcd6c0588aa288bc42e35
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2023-11-22 (Wed, 22 Nov 2023)

  Changed paths:
    M llvm/lib/Transforms/Utils/LoopUtils.cpp
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-vector-reverse.ll
    M llvm/test/Transforms/LoopVectorize/runtime-check-small-clamped-bounds.ll
    M llvm/test/Transforms/LoopVectorize/runtime-checks-difference-simplifications.ll
    M llvm/test/Transforms/LoopVectorize/runtime-checks-difference.ll
    M llvm/test/Transforms/LoopVectorize/runtime-checks-hoist.ll

  Log Message:
  -----------
  [LV] Use SCEV for subtraction of src/sink for diff runtime checks.

Instead of expanding the src/sink SCEV expressions and emitting an IR
sub to compute the difference, the subtraction can be directly be
performed by ScalarEvolution. This allows the subtraction to be
simplified by SCEV, which in turn can reduced the number of redundant
runtime check instructions generated.

It also allows to generate checks that are invariant w.r.t. an outer
loop, if he inner loop AddRecs have the same outer loop AddRec as start.




More information about the All-commits mailing list