[all-commits] [llvm/llvm-project] ace016: [mlir] Split out a new ControlFlow dialect from St...

Stella Laurenzo via All-commits all-commits at lists.llvm.org
Sun Feb 6 14:52:06 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ace01605e04d094c243b0cad873e8919b80a0ced
      https://github.com/llvm/llvm-project/commit/ace01605e04d094c243b0cad873e8919b80a0ced
  Author: River Riddle <riddleriver at gmail.com>
  Date:   2022-02-06 (Sun, 06 Feb 2022)

  Changed paths:
    M flang/include/flang/Optimizer/Support/InitFIR.h
    M flang/include/flang/Tools/CLOptions.inc
    M flang/lib/Lower/CMakeLists.txt
    M flang/lib/Optimizer/CodeGen/CodeGen.cpp
    M flang/lib/Optimizer/Transforms/ArrayValueCopy.cpp
    M flang/lib/Optimizer/Transforms/RewriteLoop.cpp
    M flang/test/Fir/Todo/select_case_with_character.fir
    M flang/test/Fir/convert-to-llvm.fir
    M flang/test/Fir/memref-data-flow.fir
    M flang/tools/bbc/CMakeLists.txt
    M flang/tools/bbc/bbc.cpp
    M flang/tools/fir-opt/CMakeLists.txt
    M flang/tools/tco/CMakeLists.txt
    M flang/tools/tco/tco.cpp
    M mlir/benchmark/python/common.py
    M mlir/docs/BufferDeallocationInternals.md
    M mlir/docs/Diagnostics.md
    M mlir/docs/DialectConversion.md
    M mlir/docs/Dialects/emitc.md
    M mlir/docs/LangRef.md
    M mlir/docs/PatternRewriter.md
    M mlir/docs/Rationale/Rationale.md
    M mlir/docs/Tutorials/Toy/Ch-6.md
    M mlir/docs/includes/img/branch_example_post_move.svg
    M mlir/docs/includes/img/branch_example_pre_move.svg
    M mlir/examples/toy/Ch6/mlir/LowerToLLVM.cpp
    M mlir/examples/toy/Ch7/mlir/LowerToLLVM.cpp
    A mlir/include/mlir/Conversion/ControlFlowToLLVM/ControlFlowToLLVM.h
    A mlir/include/mlir/Conversion/ControlFlowToSPIRV/ControlFlowToSPIRV.h
    M mlir/include/mlir/Conversion/Passes.h
    M mlir/include/mlir/Conversion/Passes.td
    A mlir/include/mlir/Conversion/SCFToControlFlow/SCFToControlFlow.h
    R mlir/include/mlir/Conversion/SCFToStandard/SCFToStandard.h
    M mlir/include/mlir/Dialect/Bufferization/Transforms/Passes.td
    M mlir/include/mlir/Dialect/CMakeLists.txt
    A mlir/include/mlir/Dialect/ControlFlow/CMakeLists.txt
    A mlir/include/mlir/Dialect/ControlFlow/IR/CMakeLists.txt
    A mlir/include/mlir/Dialect/ControlFlow/IR/ControlFlow.h
    A mlir/include/mlir/Dialect/ControlFlow/IR/ControlFlowOps.h
    A mlir/include/mlir/Dialect/ControlFlow/IR/ControlFlowOps.td
    M mlir/include/mlir/Dialect/SCF/SCFOps.td
    M mlir/include/mlir/Dialect/StandardOps/IR/Ops.h
    M mlir/include/mlir/Dialect/StandardOps/IR/Ops.td
    M mlir/include/mlir/InitAllDialects.h
    M mlir/lib/Conversion/CMakeLists.txt
    A mlir/lib/Conversion/ControlFlowToLLVM/CMakeLists.txt
    A mlir/lib/Conversion/ControlFlowToLLVM/ControlFlowToLLVM.cpp
    A mlir/lib/Conversion/ControlFlowToSPIRV/CMakeLists.txt
    A mlir/lib/Conversion/ControlFlowToSPIRV/ControlFlowToSPIRV.cpp
    M mlir/lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp
    M mlir/lib/Conversion/LinalgToLLVM/CMakeLists.txt
    M mlir/lib/Conversion/LinalgToLLVM/LinalgToLLVM.cpp
    M mlir/lib/Conversion/MemRefToLLVM/MemRefToLLVM.cpp
    M mlir/lib/Conversion/OpenMPToLLVM/OpenMPToLLVM.cpp
    M mlir/lib/Conversion/PassDetail.h
    A mlir/lib/Conversion/SCFToControlFlow/CMakeLists.txt
    A mlir/lib/Conversion/SCFToControlFlow/SCFToControlFlow.cpp
    R mlir/lib/Conversion/SCFToStandard/CMakeLists.txt
    R mlir/lib/Conversion/SCFToStandard/SCFToStandard.cpp
    M mlir/lib/Conversion/ShapeToStandard/ConvertShapeConstraints.cpp
    M mlir/lib/Conversion/StandardToLLVM/CMakeLists.txt
    M mlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
    M mlir/lib/Conversion/StandardToSPIRV/CMakeLists.txt
    M mlir/lib/Conversion/StandardToSPIRV/StandardToSPIRV.cpp
    M mlir/lib/Conversion/StandardToSPIRV/StandardToSPIRVPass.cpp
    M mlir/lib/Dialect/Async/Transforms/AsyncRuntimeRefCounting.cpp
    M mlir/lib/Dialect/Async/Transforms/AsyncToAsyncRuntime.cpp
    M mlir/lib/Dialect/Async/Transforms/CMakeLists.txt
    M mlir/lib/Dialect/Bufferization/Transforms/BufferDeallocation.cpp
    M mlir/lib/Dialect/CMakeLists.txt
    A mlir/lib/Dialect/ControlFlow/CMakeLists.txt
    A mlir/lib/Dialect/ControlFlow/IR/CMakeLists.txt
    A mlir/lib/Dialect/ControlFlow/IR/ControlFlowOps.cpp
    M mlir/lib/Dialect/GPU/Transforms/AllReduceLowering.cpp
    M mlir/lib/Dialect/GPU/Transforms/KernelOutlining.cpp
    M mlir/lib/Dialect/Linalg/Transforms/Detensorize.cpp
    M mlir/lib/Dialect/SCF/SCF.cpp
    M mlir/lib/Dialect/SparseTensor/Pipelines/CMakeLists.txt
    M mlir/lib/Dialect/SparseTensor/Pipelines/SparseTensorPipelines.cpp
    M mlir/lib/Dialect/StandardOps/CMakeLists.txt
    M mlir/lib/Dialect/StandardOps/IR/Ops.cpp
    M mlir/lib/Target/Cpp/TranslateRegistration.cpp
    M mlir/lib/Target/Cpp/TranslateToCpp.cpp
    M mlir/test/Analysis/test-alias-analysis.mlir
    M mlir/test/Analysis/test-dominance.mlir
    M mlir/test/Analysis/test-liveness.mlir
    M mlir/test/CAPI/ir.c
    M mlir/test/Conversion/AsyncToLLVM/convert-to-llvm.mlir
    A mlir/test/Conversion/ControlFlowToSPIRV/cf-ops-to-spirv.mlir
    M mlir/test/Conversion/GPUToNVVM/wmma-ops-to-nvvm.mlir
    M mlir/test/Conversion/OpenMPToLLVM/convert-to-llvmir.mlir
    A mlir/test/Conversion/SCFToControlFlow/convert-to-cfg.mlir
    R mlir/test/Conversion/SCFToStandard/convert-to-cfg.mlir
    M mlir/test/Conversion/ShapeToStandard/convert-shape-constraints.mlir
    M mlir/test/Conversion/StandardToLLVM/convert-funcs.mlir
    M mlir/test/Conversion/StandardToLLVM/func-memref.mlir
    M mlir/test/Conversion/StandardToLLVM/standard-to-llvm.mlir
    M mlir/test/Conversion/StandardToSPIRV/std-ops-to-spirv.mlir
    M mlir/test/Dialect/Affine/invalid.mlir
    M mlir/test/Dialect/Async/async-runtime-ref-counting.mlir
    M mlir/test/Dialect/Async/async-to-async-runtime-eliminate-blocking.mlir
    M mlir/test/Dialect/Async/async-to-async-runtime.mlir
    M mlir/test/Dialect/Bufferization/Transforms/buffer-deallocation.mlir
    A mlir/test/Dialect/ControlFlow/canonicalize.mlir
    A mlir/test/Dialect/ControlFlow/invalid.mlir
    A mlir/test/Dialect/ControlFlow/ops.mlir
    M mlir/test/Dialect/GPU/all-reduce-max.mlir
    M mlir/test/Dialect/GPU/all-reduce.mlir
    M mlir/test/Dialect/GPU/outlining.mlir
    M mlir/test/Dialect/Linalg/canonicalize.mlir
    M mlir/test/Dialect/Linalg/comprehensive-module-bufferize-invalid.mlir
    M mlir/test/Dialect/Linalg/detensorize_br_operands.mlir
    M mlir/test/Dialect/Linalg/detensorize_if.mlir
    M mlir/test/Dialect/Linalg/detensorize_while.mlir
    M mlir/test/Dialect/Linalg/detensorize_while_impure_cf.mlir
    M mlir/test/Dialect/Linalg/detensorize_while_pure_cf.mlir
    M mlir/test/Dialect/OpenMP/ops.mlir
    M mlir/test/Dialect/SCF/canonicalize.mlir
    M mlir/test/Dialect/SCF/for-loop-to-while-loop.mlir
    M mlir/test/Dialect/SCF/ops.mlir
    R mlir/test/Dialect/Standard/canonicalize-cf.mlir
    M mlir/test/Dialect/Standard/canonicalize.mlir
    M mlir/test/Dialect/Standard/func-bufferize.mlir
    R mlir/test/Dialect/Standard/ops.mlir
    R mlir/test/Dialect/Standard/parser.mlir
    M mlir/test/IR/invalid.mlir
    M mlir/test/IR/parser.mlir
    M mlir/test/IR/region.mlir
    M mlir/test/IR/traits.mlir
    M mlir/test/IR/visitors.mlir
    M mlir/test/Integration/Dialect/Async/CPU/microbench-linalg-async-parallel-for.mlir
    M mlir/test/Integration/Dialect/Async/CPU/microbench-scf-async-parallel-for.mlir
    M mlir/test/Integration/Dialect/Async/CPU/test-async-parallel-for-1d.mlir
    M mlir/test/Integration/Dialect/Async/CPU/test-async-parallel-for-2d.mlir
    M mlir/test/Integration/Dialect/Linalg/CPU/benchmark_matmul.mlir
    M mlir/test/Integration/Dialect/Linalg/CPU/matmul-vs-matvec.mlir
    M mlir/test/Integration/Dialect/Linalg/CPU/rank-reducing-subview.mlir
    M mlir/test/Integration/Dialect/Linalg/CPU/test-comprehensive-bufferize.mlir
    M mlir/test/Integration/Dialect/Linalg/CPU/test-conv-1d-call.mlir
    M mlir/test/Integration/Dialect/Linalg/CPU/test-conv-1d-nwc-wcf-call.mlir
    M mlir/test/Integration/Dialect/Linalg/CPU/test-conv-2d-call.mlir
    M mlir/test/Integration/Dialect/Linalg/CPU/test-conv-2d-nhwc-hwcf-call.mlir
    M mlir/test/Integration/Dialect/Linalg/CPU/test-conv-3d-call.mlir
    M mlir/test/Integration/Dialect/Linalg/CPU/test-conv-3d-ndhwc-dhwcf-call.mlir
    M mlir/test/Integration/Dialect/Linalg/CPU/test-padtensor.mlir
    M mlir/test/Integration/Dialect/Linalg/CPU/test-subtensor-insert-multiple-uses.mlir
    M mlir/test/Integration/Dialect/Linalg/CPU/test-subtensor-insert.mlir
    M mlir/test/Integration/Dialect/Linalg/CPU/test-tensor-matmul.mlir
    M mlir/test/Integration/Dialect/Memref/memref_abi.c
    M mlir/test/Integration/Dialect/SparseTensor/taco/tools/mlir_pytaco_utils.py
    M mlir/test/Integration/Dialect/Standard/CPU/test-ceil-floor-pos-neg.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/AMX/test-mulf-full.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/AMX/test-mulf.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/AMX/test-muli-ext.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/AMX/test-muli-full.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/AMX/test-muli.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/AMX/test-tilezero-block.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/AMX/test-tilezero.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/X86Vector/test-dot.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/X86Vector/test-inline-asm-vector-avx512.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/X86Vector/test-mask-compress.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/X86Vector/test-sparse-dot-product.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/X86Vector/test-vp2intersect-i32.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-0-d-vectors.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-broadcast.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-compress.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-constant-mask.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-contraction.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-create-mask-v4i1.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-create-mask.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-expand.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-extract-strided-slice.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-flat-transpose-col.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-flat-transpose-row.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-fma.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-gather.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-insert-strided-slice.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-maskedload.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-maskedstore.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-matrix-multiply-col.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-matrix-multiply-row.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-outerproduct-f32.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-outerproduct-i64.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-print-int.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-reductions-f32-reassoc.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-reductions-f32.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-reductions-f64-reassoc.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-reductions-f64.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-reductions-i32.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-reductions-i4.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-reductions-i64.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-reductions-si4.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-reductions-ui4.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-scan.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-scatter.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-shape-cast.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-shuffle.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-sparse-dot-matvec.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-sparse-saxpy-jagged-matvec.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-transfer-read-1d.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-transfer-read-2d.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-transfer-read-3d.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-transfer-read.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-transfer-to-loops.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-transfer-write.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-transpose.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-vector-distribute.mlir
    M mlir/test/Integration/GPU/CUDA/TensorCore/wmma-matmul-f16.mlir
    M mlir/test/Integration/GPU/CUDA/TensorCore/wmma-matmul-f32.mlir
    M mlir/test/Integration/GPU/CUDA/shuffle.mlir
    M mlir/test/Integration/GPU/ROCM/vecadd.mlir
    M mlir/test/Integration/GPU/ROCM/vector-transferops.mlir
    M mlir/test/Target/Cpp/control_flow.mlir
    M mlir/test/Target/Cpp/invalid.mlir
    M mlir/test/Transforms/buffer-hoisting.mlir
    M mlir/test/Transforms/buffer-loop-hoisting.mlir
    M mlir/test/Transforms/canonicalize-block-merge.mlir
    M mlir/test/Transforms/canonicalize-dce.mlir
    M mlir/test/Transforms/canonicalize.mlir
    M mlir/test/Transforms/control-flow-sink.mlir
    M mlir/test/Transforms/cse.mlir
    M mlir/test/Transforms/inlining.mlir
    M mlir/test/Transforms/normalize-memrefs.mlir
    M mlir/test/Transforms/promote-buffers-to-stack.mlir
    M mlir/test/Transforms/sccp-callgraph.mlir
    M mlir/test/Transforms/sccp.mlir
    M mlir/test/Transforms/test-legalizer-full.mlir
    M mlir/test/mlir-cpu-runner/async-error.mlir
    M mlir/test/mlir-cpu-runner/async.mlir
    M mlir/test/mlir-cpu-runner/bare-ptr-call-conv.mlir
    M mlir/test/mlir-cpu-runner/copy.mlir
    M mlir/test/mlir-cpu-runner/memref-reinterpret-cast.mlir
    M mlir/test/mlir-cpu-runner/memref-reshape.mlir
    M mlir/test/mlir-cpu-runner/sgemm-naive-codegen.mlir
    M mlir/test/mlir-cpu-runner/unranked-memref.mlir
    M mlir/test/mlir-cpu-runner/utils.mlir
    M mlir/test/mlir-lsp-server/hover.test
    M mlir/test/mlir-opt/async.mlir
    M mlir/test/mlir-opt/commandline.mlir
    M mlir/test/mlir-reduce/multiple-function.mlir
    M mlir/test/mlir-reduce/simple-test.mlir
    M mlir/test/python/execution_engine.py
    M mlir/test/python/integration/dialects/linalg/opsrun.py
    M mlir/test/python/ir/blocks.py
    M mlir/test/python/ir/dialects.py

  Log Message:
  -----------
  [mlir] Split out a new ControlFlow dialect from Standard

This dialect is intended to model lower level/branch based control-flow constructs. The initial set
of operations are: AssertOp, BranchOp, CondBranchOp, SwitchOp; all split out from the current
standard dialect.

See https://discourse.llvm.org/t/standard-dialect-the-final-chapter/6061

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


  Commit: fe23a6fb75e6ec7f2b51fb90d45ac684cc641665
      https://github.com/llvm/llvm-project/commit/fe23a6fb75e6ec7f2b51fb90d45ac684cc641665
  Author: Stella Laurenzo <stellaraccident at gmail.com>
  Date:   2022-02-06 (Sun, 06 Feb 2022)

  Changed paths:
    M mlir/python/CMakeLists.txt
    A mlir/python/mlir/dialects/ControlFlowOps.td
    A mlir/python/mlir/dialects/cf.py
    M mlir/test/python/ir/blocks.py

  Log Message:
  -----------
  [mlir] Fixup python bindings after splitting cf ops from std.


Compare: https://github.com/llvm/llvm-project/compare/edca177cbeb6...fe23a6fb75e6


More information about the All-commits mailing list