[all-commits] [llvm/llvm-project] 98aa69: [mlir][scf] Add general affine.min canonicalizatio...

Matthias Springer via All-commits all-commits at lists.llvm.org
Tue Aug 24 15:39:27 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 98aa694d0d731307bf83d289803f57886d2d3aaa
      https://github.com/llvm/llvm-project/commit/98aa694d0d731307bf83d289803f57886d2d3aaa
  Author: Matthias Springer <springerm at google.com>
  Date:   2021-08-25 (Wed, 25 Aug 2021)

  Changed paths:
    M mlir/include/mlir/Dialect/SCF/Passes.h
    M mlir/include/mlir/Dialect/SCF/Passes.td
    M mlir/include/mlir/Dialect/SCF/Transforms.h
    M mlir/lib/Dialect/SCF/Transforms/LoopSpecialization.cpp
    A mlir/test/Dialect/SCF/canonicalize-scf-affine-min.mlir
    M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel

  Log Message:
  -----------
  [mlir][scf] Add general affine.min canonicalization pattern

This canonicalization simplifies affine.min operations inside "for loop"-like operations (e.g., scf.for and scf.parallel) based on two invariants:
* iv >= lb
* iv < lb + step * ((ub - lb - 1) floorDiv step) + 1

This commit adds a new pass `canonicalize-scf-affine-min` (instead of being a canonicalization pattern) to avoid dependencies between the Affine dialect and the SCF dialect.

Differential Revision: https://reviews.llvm.org/D107731




More information about the All-commits mailing list