[all-commits] [llvm/llvm-project] 6ecebb: [mlir][bufferization] Support unstructured control...

Matthias Springer via All-commits all-commits at lists.llvm.org
Thu Aug 31 03:56:18 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 6ecebb496cc6960e100a05375ab7f64e831dd933
      https://github.com/llvm/llvm-project/commit/6ecebb496cc6960e100a05375ab7f64e831dd933
  Author: Matthias Springer <me at m-sp.org>
  Date:   2023-08-31 (Thu, 31 Aug 2023)

  Changed paths:
    M mlir/include/mlir/Dialect/Bufferization/IR/BufferizableOpInterface.h
    M mlir/include/mlir/Dialect/Bufferization/IR/BufferizableOpInterface.td
    A mlir/include/mlir/Dialect/Bufferization/IR/UnstructuredControlFlow.h
    M mlir/include/mlir/Dialect/Bufferization/Transforms/Bufferize.h
    A mlir/include/mlir/Dialect/ControlFlow/Transforms/BufferizableOpInterfaceImpl.h
    M mlir/include/mlir/InitAllDialects.h
    M mlir/lib/Dialect/Bufferization/IR/BufferizableOpInterface.cpp
    M mlir/lib/Dialect/Bufferization/IR/CMakeLists.txt
    A mlir/lib/Dialect/Bufferization/IR/UnstructuredControlFlow.cpp
    M mlir/lib/Dialect/Bufferization/Transforms/Bufferize.cpp
    M mlir/lib/Dialect/Bufferization/Transforms/FuncBufferizableOpInterfaceImpl.cpp
    M mlir/lib/Dialect/Bufferization/Transforms/OneShotAnalysis.cpp
    M mlir/lib/Dialect/ControlFlow/CMakeLists.txt
    A mlir/lib/Dialect/ControlFlow/Transforms/BufferizableOpInterfaceImpl.cpp
    A mlir/lib/Dialect/ControlFlow/Transforms/CMakeLists.txt
    M mlir/lib/Dialect/SCF/Transforms/BufferizableOpInterfaceImpl.cpp
    M mlir/test/Dialect/Bufferization/Transforms/one-shot-module-bufferize-invalid.mlir
    M mlir/test/Dialect/Bufferization/Transforms/one-shot-module-bufferize.mlir
    A mlir/test/Dialect/ControlFlow/one-shot-bufferize-analysis.mlir
    A mlir/test/Dialect/ControlFlow/one-shot-bufferize-invalid.mlir
    A mlir/test/Dialect/ControlFlow/one-shot-bufferize.mlir
    M mlir/test/Dialect/SCF/one-shot-bufferize-invalid.mlir
    M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel

  Log Message:
  -----------
  [mlir][bufferization] Support unstructured control flow

This revision adds support for unstructured control flow to the bufferization infrastructure. In particular: regions with multiple blocks, `cf.br`, `cf.cond_br`.

Two helper templates are added to `BufferizableOpInterface.h`, which can be implemented by ops that supported unstructured control flow in their regions (e.g., `func.func`) and ops that branch to another block (e.g., `cf.br`).

A block signature is always bufferized together with the op that owns the block.

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




More information about the All-commits mailing list