[all-commits] [llvm/llvm-project] 7583c4: [SCEV] Use power of two facts involving vscale whe...

Philip Reames via All-commits all-commits at lists.llvm.org
Wed Jul 31 14:18:43 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 7583c484c81218ab4c8c2fba2774cb518d8bbd43
      https://github.com/llvm/llvm-project/commit/7583c484c81218ab4c8c2fba2774cb518d8bbd43
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-07-31 (Wed, 31 Jul 2024)

  Changed paths:
    M llvm/include/llvm/Analysis/ScalarEvolution.h
    M llvm/lib/Analysis/ScalarEvolution.cpp
    M llvm/test/Analysis/ScalarEvolution/trip-count-scalable-stride.ll

  Log Message:
  -----------
  [SCEV] Use power of two facts involving vscale when inferring wrap flags (#101380)

SCEV has logic for inferring wrap flags on AddRecs which are known to
control an exit based on whether the step is a power of two. This logic
only considered constants, and thus did not trigger for steps such as (4
x vscale) which are common in scalably vectorized loops.

The net effect is that we were very sensative to the preservation of
nsw/nuw flags on such IVs, and could not infer trip counts if they got
lost for any reason.

---------

Co-authored-by: Nikita Popov <github at npopov.com>



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list