[all-commits] [llvm/llvm-project] adc93e: [mlir][SCF] Loop lb/ub are symbols during Affine M...

Matthias Springer via All-commits all-commits at lists.llvm.org
Thu Aug 18 02:51:20 PDT 2022

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: adc93e0d38b39b04c91bf7cb60275ea7708cf452
  Author: Matthias Springer <springerm at google.com>
  Date:   2022-08-18 (Thu, 18 Aug 2022)

  Changed paths:
    M mlir/include/mlir/Analysis/Presburger/IntegerRelation.h
    M mlir/include/mlir/Dialect/Affine/Analysis/AffineStructures.h
    M mlir/lib/Dialect/Affine/Analysis/AffineStructures.cpp
    M mlir/lib/Dialect/SCF/Utils/AffineCanonicalizationUtils.cpp
    M mlir/test/Dialect/SCF/for-loop-canonicalization.mlir

  Log Message:
  [mlir][SCF] Loop lb/ub are symbols during Affine Min/Max canonicalization

This fixes a bug in SCF/AffineCanonicalizationUtils.cpp. Loop lb/ub were previously considered dimensions, which caused a crash when a (non-optimizable) affine.min / affine.max expression was processed (due to multiplication of two dims). Lb/ub are now considered symbols and symbols may be multiplied. (The scope of the analysis is "within the loop body", at which point lb/ub are constants.)

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

More information about the All-commits mailing list