[all-commits] [llvm/llvm-project] 66e270: [mlir:Linalg] Populate LinalgOp patterns on Linalg...

River Riddle via All-commits all-commits at lists.llvm.org
Mon Jun 14 11:21:07 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 66e27082054bf8f106ce63d5cb7d6c67e628feff
      https://github.com/llvm/llvm-project/commit/66e27082054bf8f106ce63d5cb7d6c67e628feff
  Author: River Riddle <riddleriver at gmail.com>
  Date:   2021-06-14 (Mon, 14 Jun 2021)

  Changed paths:
    M mlir/include/mlir/Dialect/Linalg/IR/LinalgBase.td
    M mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td
    M mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
    M mlir/lib/Dialect/Linalg/Transforms/FusionOnTensors.cpp
    M mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp
    M mlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-gen.cpp
    M mlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-yaml-gen.cpp

  Log Message:
  -----------
  [mlir:Linalg] Populate LinalgOp patterns on LinalgDialect as opposed to each op

Interface patterns are unique in that they get added to every operation that also implements that interface, given that they aren't tied to individual operations. When the same interface pattern gets added to multiple operations (such as the current behavior with Linalg), an reference to each of these patterns is added to every op (meaning that an operation will now have N references to effectively the same pattern). This revision fixes this problematic behavior in Linalg, and can bring upwards of a 25% reduction in compile time in Linalg based workloads.

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




More information about the All-commits mailing list