[all-commits] [llvm/llvm-project] c79ffb: Generalize affine fusion to work at all depths and...

Uday Bondhugula via All-commits all-commits at lists.llvm.org
Wed Nov 15 19:22:26 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: c79ffb02bbd79c9abe0add4a5bcef375af0a9755
      https://github.com/llvm/llvm-project/commit/c79ffb02bbd79c9abe0add4a5bcef375af0a9755
  Author: Uday Bondhugula <uday at polymagelabs.com>
  Date:   2023-11-16 (Thu, 16 Nov 2023)

  Changed paths:
    M mlir/include/mlir/Analysis/FlatLinearValueConstraints.h
    M mlir/include/mlir/Dialect/Affine/Analysis/Utils.h
    M mlir/include/mlir/Dialect/Affine/LoopFusionUtils.h
    M mlir/lib/Analysis/FlatLinearValueConstraints.cpp
    M mlir/lib/Dialect/Affine/Analysis/Utils.cpp
    M mlir/lib/Dialect/Affine/Transforms/LoopFusion.cpp
    M mlir/lib/Dialect/Affine/Utils/LoopFusionUtils.cpp
    A mlir/test/Dialect/Affine/loop-fusion-inner.mlir

  Log Message:
  -----------
  Generalize affine fusion to work at all depths and inside other region-holding ops (#72288)

Generalize affine fusion to work at any inner depth; fusing loops inside
other
affine.for or even inside scf.for or scf.while nests. Apply in post
order on
all affine nests on the pass' top-level operation.

Fix MDG init for blocks inside other affine nests.

Relax unnecessary requirement for unique vars during merge and align of
FlatLinearValueConstraints. There are several cases where
FlatLinearValueConstraints need to have duplicate Values for the
dimensions:
for eg. in dependence relation systems with source and destination
accesses
could have common loop IVs. `mergeAndAlign` can be done even in the
presence
of Values reappearing by simply aligning from left to right in that
order.

While at this, drop outdated comments; improve some debug messages.




More information about the All-commits mailing list