[all-commits] [llvm/llvm-project] 6edef1: [mlir:PassOption] Rework ListOption parsing and ad...

River Riddle via All-commits all-commits at lists.llvm.org
Sat Apr 2 01:07:54 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 6edef1356921d9cad1a8cd6169207450741536a6
      https://github.com/llvm/llvm-project/commit/6edef1356921d9cad1a8cd6169207450741536a6
  Author: River Riddle <riddleriver at gmail.com>
  Date:   2022-04-02 (Sat, 02 Apr 2022)

  Changed paths:
    M mlir/docs/PassManagement.md
    M mlir/docs/PatternRewriter.md
    M mlir/include/mlir/Dialect/Affine/Passes.td
    M mlir/include/mlir/Dialect/Bufferization/Transforms/Passes.td
    M mlir/include/mlir/Dialect/Linalg/Passes.td
    M mlir/include/mlir/Dialect/SCF/Passes.td
    M mlir/include/mlir/Pass/PassOptions.h
    M mlir/include/mlir/Reducer/Passes.td
    M mlir/include/mlir/Rewrite/PassUtil.td
    M mlir/include/mlir/Transforms/Passes.td
    M mlir/lib/Pass/PassRegistry.cpp
    M mlir/test/Dialect/Linalg/hoist-padding.mlir
    M mlir/test/lib/Dialect/Affine/TestLoopPermutation.cpp
    M mlir/test/lib/Dialect/Linalg/TestLinalgCodegenStrategy.cpp
    M mlir/test/lib/Dialect/Linalg/TestLinalgFusionTransforms.cpp
    M mlir/test/lib/Dialect/Linalg/TestLinalgTransforms.cpp
    M mlir/test/lib/Dialect/SCF/TestLoopParametricTiling.cpp
    M mlir/test/lib/Dialect/SPIRV/TestEntryPointAbi.cpp
    M mlir/test/lib/Dialect/Vector/TestVectorTransforms.cpp
    M mlir/test/lib/IR/TestDiagnostics.cpp
    M mlir/test/lib/Pass/TestDynamicPipeline.cpp
    M mlir/test/lib/Pass/TestPassManager.cpp

  Log Message:
  -----------
  [mlir:PassOption] Rework ListOption parsing and add support for std::vector/SmallVector options

ListOption currently uses llvm::cl::list under the hood, but the usages
of ListOption are generally a tad different from llvm::cl::list. This
commit codifies this by making ListOption implicitly comma separated,
and removes the explicit flag set for all of the current list options.
The new parsing for comma separation of ListOption also adds in support
for skipping over delimited sub-ranges (i.e. {}, [], (), "", ''). This
more easily supports nested options that use those as part of the
format, and this constraint (balanced delimiters) is already codified
in the syntax of pass pipelines.

See https://discourse.llvm.org/t/list-of-lists-pass-option/5950 for
related discussion

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


  Commit: 0d8df98035c8b35c5241e15eb8c4f42e6a008fa2
      https://github.com/llvm/llvm-project/commit/0d8df98035c8b35c5241e15eb8c4f42e6a008fa2
  Author: River Riddle <riddleriver at gmail.com>
  Date:   2022-04-02 (Sat, 02 Apr 2022)

  Changed paths:
    M mlir/include/mlir/Pass/PassManager.h
    M mlir/include/mlir/Pass/PassOptions.h
    M mlir/include/mlir/Transforms/Passes.td
    M mlir/lib/Pass/Pass.cpp
    M mlir/lib/Pass/PassRegistry.cpp
    M mlir/lib/Transforms/Inliner.cpp
    M mlir/lib/Transforms/PassDetail.h
    M mlir/test/Pass/crash-recovery.mlir
    M mlir/test/Pass/pipeline-options-parsing.mlir
    M mlir/test/Transforms/inlining.mlir

  Log Message:
  -----------
  [mlir] Allow for using OpPassManager in pass options

This significantly simplifies the boilerplate necessary for passes
to define nested pass pipelines.

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


Compare: https://github.com/llvm/llvm-project/compare/e06ca312398d...0d8df98035c8


More information about the All-commits mailing list