[all-commits] [llvm/llvm-project] 93a873: [mlir][Affine] Revisit and simplify composeAffineM...

Nicolas Vasilache via All-commits all-commits at lists.llvm.org
Tue Jan 19 06:10:43 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 93a873dfc9ee7e8b4386dea87e43c5f238eeef06
      https://github.com/llvm/llvm-project/commit/93a873dfc9ee7e8b4386dea87e43c5f238eeef06
  Author: Nicolas Vasilache <nicolas.vasilache at gmail.com>
  Date:   2021-01-19 (Tue, 19 Jan 2021)

  Changed paths:
    M mlir/include/mlir/Dialect/Affine/IR/AffineOps.h
    M mlir/include/mlir/IR/AffineExpr.h
    M mlir/include/mlir/IR/AffineMap.h
    M mlir/lib/Dialect/Affine/IR/AffineOps.cpp
    M mlir/lib/Dialect/Affine/IR/AffineValueMap.cpp
    M mlir/lib/IR/AffineExpr.cpp
    M mlir/lib/IR/AffineMap.cpp
    R mlir/test/Dialect/Affine/SuperVectorize/normalize_maps.mlir
    M mlir/test/Dialect/Affine/affine-data-copy.mlir
    M mlir/test/Dialect/Affine/canonicalize.mlir
    M mlir/test/Dialect/Linalg/reshape_fusion.mlir
    M mlir/test/EDSC/builder-api-test.cpp
    M mlir/test/lib/Dialect/Affine/TestVectorizationUtils.cpp

  Log Message:
  -----------
  [mlir][Affine] Revisit and simplify composeAffineMapAndOperands.

In prehistorical times, AffineApplyOp was allowed to produce multiple values.
This allowed the creation of intricate SSA use-def chains.
AffineApplyNormalizer was originally introduced as a means of reusing the AffineMap::compose method to write SSA use-def chains.
Unfortunately, symbols that were produced by an AffineApplyOp needed to be promoted to dims and reordered for the mathematical composition to be valid.

Since then, single result AffineApplyOp became the law of the land but the original assumptions were not revisited.

This revision revisits these assumptions and retires AffineApplyNormalizer.

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




More information about the All-commits mailing list