[all-commits] [llvm/llvm-project] f81225: [ConstraintElim] Use SCEV to check for multiples (...

Nikita Popov via All-commits all-commits at lists.llvm.org
Thu Jan 4 05:04:29 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: f8122518750e3563a79df22d72c26c3c922f63f2
      https://github.com/llvm/llvm-project/commit/f8122518750e3563a79df22d72c26c3c922f63f2
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-01-04 (Thu, 04 Jan 2024)

  Changed paths:
    M llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
    M llvm/test/Transforms/ConstraintElimination/monotonic-int-phis-multiples.ll

  Log Message:
  -----------
  [ConstraintElim] Use SCEV to check for multiples (#76925)

When adding constraints for induction variables, if the step is not one,
we need to make sure that (end-start) is a multiple of step, otherwise
we might step over the end value.

Currently this only supports one specific pattern for pointers, where
the end is a gep of the start with an appropriate offset.

Generalize this by using SCEV to check for multiples, which also makes
this work for integer IVs.




More information about the All-commits mailing list