[all-commits] [llvm/llvm-project] f98025: [mlir][Vector] Generalize and improve folding of E...

Nicolas Vasilache via All-commits all-commits at lists.llvm.org
Mon Jan 17 08:05:35 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: f98025d867e336ebc3c9cba7e66b6ad6261d0b38
      https://github.com/llvm/llvm-project/commit/f98025d867e336ebc3c9cba7e66b6ad6261d0b38
  Author: Nicolas Vasilache <nicolas.vasilache at gmail.com>
  Date:   2022-01-17 (Mon, 17 Jan 2022)

  Changed paths:
    M mlir/lib/Dialect/Vector/VectorOps.cpp
    M mlir/test/Dialect/Vector/canonicalize.mlir

  Log Message:
  -----------
  [mlir][Vector] Generalize and improve folding of ExtractOp from Insert/Transpose chain.

This revision fixes a bug where the iterative algorithm would walk back def-use chains to an incorrect operand.
This exposed opportunities for a larger refactoring and behavior improvement.
The new algorithm has improved folding behavior and proceeds by tracking both the
permutation of the extraction position and the internal vector permutation.
Multiple partial intersection cases with a candidate insertOp are supported.

The refactoring of the implementation should also help it generalize to strided insert/extract op.

This also subsumes the previous `foldExtractOpFromTranspose` which is now a simple special case and can be deleted.

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




More information about the All-commits mailing list