[all-commits] [llvm/llvm-project] 6a8ba3: [mlir] Split std.splat into tensor.splat and vecto...

River Riddle via All-commits all-commits at lists.llvm.org
Wed Feb 2 14:46:08 PST 2022


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

  Changed paths:
    M mlir/include/mlir/Dialect/StandardOps/IR/Ops.td
    M mlir/include/mlir/Dialect/Tensor/IR/TensorOps.td
    M mlir/include/mlir/Dialect/Vector/IR/VectorOps.td
    M mlir/include/mlir/IR/Attributes.h
    M mlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
    M mlir/lib/Conversion/StandardToSPIRV/StandardToSPIRV.cpp
    M mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
    M mlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp
    M mlir/lib/Conversion/VectorToSPIRV/VectorToSPIRV.cpp
    M mlir/lib/Dialect/StandardOps/IR/Ops.cpp
    M mlir/lib/Dialect/Tensor/IR/TensorOps.cpp
    M mlir/lib/Dialect/Vector/IR/VectorOps.cpp
    M mlir/lib/Dialect/Vector/Transforms/VectorInsertExtractStridedSliceRewritePatterns.cpp
    M mlir/lib/Dialect/Vector/Transforms/VectorTransferOpTransforms.cpp
    M mlir/lib/Dialect/Vector/Transforms/VectorTransforms.cpp
    M mlir/lib/Dialect/Vector/Utils/VectorUtils.cpp
    M mlir/test/Conversion/StandardToLLVM/standard-to-llvm.mlir
    M mlir/test/Conversion/StandardToSPIRV/std-ops-to-spirv.mlir
    M mlir/test/Conversion/VectorToLLVM/vector-mask-to-llvm.mlir
    M mlir/test/Conversion/VectorToLLVM/vector-to-llvm.mlir
    M mlir/test/Conversion/VectorToSPIRV/simple.mlir
    M mlir/test/Dialect/Standard/ops.mlir
    M mlir/test/Dialect/Tensor/canonicalize.mlir
    M mlir/test/Dialect/Tensor/invalid.mlir
    M mlir/test/Dialect/Tensor/ops.mlir
    M mlir/test/Dialect/Vector/canonicalize.mlir
    M mlir/test/Dialect/Vector/invalid.mlir
    M mlir/test/Dialect/Vector/ops.mlir
    M mlir/test/Dialect/Vector/vector-contract-transforms.mlir
    M mlir/test/Dialect/Vector/vector-transfer-to-vector-load-store.mlir
    M mlir/test/IR/core-ops.mlir
    M mlir/test/IR/invalid-ops.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-0-d-vectors.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-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-write.mlir
    M mlir/test/Transforms/constant-fold.mlir
    M mlir/test/mlir-cpu-runner/utils.mlir

  Log Message:
  -----------
  [mlir] Split std.splat into tensor.splat and vector.splat

This is part of the larger effort to split the standard dialect. This will also allow for pruning some
additional dependencies on Standard (done in a followup).

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


  Commit: dec8af701ff25ea967d47d196e5247306754f8e8
      https://github.com/llvm/llvm-project/commit/dec8af701ff25ea967d47d196e5247306754f8e8
  Author: River Riddle <riddleriver at gmail.com>
  Date:   2022-02-02 (Wed, 02 Feb 2022)

  Changed paths:
    M flang/lib/Optimizer/Builder/Character.cpp
    M flang/lib/Optimizer/Builder/MutableBox.cpp
    M flang/lib/Optimizer/Builder/Runtime/Numeric.cpp
    M flang/lib/Optimizer/Transforms/RewriteLoop.cpp
    M flang/test/Fir/loop02.fir
    M flang/unittests/Optimizer/Builder/Runtime/NumericTest.cpp
    M mlir/benchmark/python/common.py
    M mlir/docs/Bufferization.md
    M mlir/include/mlir/Dialect/Arithmetic/IR/Arithmetic.h
    M mlir/include/mlir/Dialect/Arithmetic/IR/ArithmeticOps.td
    M mlir/include/mlir/Dialect/Bufferization/IR/BufferizableOpInterface.td
    M mlir/include/mlir/Dialect/StandardOps/IR/Ops.td
    R mlir/include/mlir/Dialect/StandardOps/Transforms/BufferizableOpInterfaceImpl.h
    M mlir/include/mlir/Dialect/StandardOps/Transforms/Passes.h
    M mlir/include/mlir/Dialect/StandardOps/Transforms/Passes.td
    M mlir/include/mlir/Dialect/Tosa/Utils/CoversionUtils.h
    M mlir/include/mlir/IR/OpDefinition.h
    M mlir/lib/Conversion/AffineToStandard/AffineToStandard.cpp
    M mlir/lib/Conversion/ArithmeticToLLVM/ArithmeticToLLVM.cpp
    M mlir/lib/Conversion/ArithmeticToSPIRV/ArithmeticToSPIRV.cpp
    M mlir/lib/Conversion/ComplexToStandard/ComplexToStandard.cpp
    M mlir/lib/Conversion/SCFToOpenMP/SCFToOpenMP.cpp
    M mlir/lib/Conversion/ShapeToStandard/ShapeToStandard.cpp
    M mlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
    M mlir/lib/Conversion/StandardToSPIRV/StandardToSPIRV.cpp
    M mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
    M mlir/lib/Conversion/TosaToLinalg/TosaToLinalgNamed.cpp
    M mlir/lib/Conversion/TosaToStandard/TosaToStandard.cpp
    M mlir/lib/Dialect/Affine/Transforms/SuperVectorize.cpp
    M mlir/lib/Dialect/Arithmetic/IR/ArithmeticOps.cpp
    M mlir/lib/Dialect/Arithmetic/IR/CMakeLists.txt
    M mlir/lib/Dialect/Arithmetic/Transforms/BufferizableOpInterfaceImpl.cpp
    M mlir/lib/Dialect/Arithmetic/Transforms/ExpandOps.cpp
    M mlir/lib/Dialect/Async/Transforms/AsyncParallelFor.cpp
    M mlir/lib/Dialect/GPU/Transforms/AllReduceLowering.cpp
    M mlir/lib/Dialect/GPU/Transforms/KernelOutlining.cpp
    M mlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferizePass.cpp
    M mlir/lib/Dialect/Math/Transforms/ExpandTanh.cpp
    M mlir/lib/Dialect/Math/Transforms/PolynomialApproximation.cpp
    M mlir/lib/Dialect/MemRef/Transforms/ExpandOps.cpp
    M mlir/lib/Dialect/SCF/SCF.cpp
    M mlir/lib/Dialect/SCF/Utils/Utils.cpp
    M mlir/lib/Dialect/SparseTensor/Pipelines/SparseTensorPipelines.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/Sparsification.cpp
    M mlir/lib/Dialect/StandardOps/IR/Ops.cpp
    R mlir/lib/Dialect/StandardOps/Transforms/BufferizableOpInterfaceImpl.cpp
    R mlir/lib/Dialect/StandardOps/Transforms/Bufferize.cpp
    M mlir/lib/Dialect/StandardOps/Transforms/CMakeLists.txt
    M mlir/lib/Dialect/StandardOps/Utils/Utils.cpp
    M mlir/lib/Dialect/Vector/Transforms/VectorTransforms.cpp
    M mlir/test/Analysis/test-match-reduction.mlir
    M mlir/test/Conversion/AffineToStandard/lower-affine.mlir
    M mlir/test/Conversion/ArithmeticToLLVM/arith-to-llvm.mlir
    M mlir/test/Conversion/ArithmeticToLLVM/convert-nd-vector-to-llvmir.mlir
    M mlir/test/Conversion/ArithmeticToSPIRV/arithmetic-to-spirv.mlir
    M mlir/test/Conversion/ComplexToStandard/convert-to-standard.mlir
    M mlir/test/Conversion/SCFToOpenMP/reductions.mlir
    M mlir/test/Conversion/ShapeToStandard/shape-to-standard.mlir
    M mlir/test/Conversion/StandardToLLVM/standard-to-llvm.mlir
    M mlir/test/Conversion/StandardToSPIRV/std-ops-to-spirv.mlir
    M mlir/test/Conversion/TosaToLinalg/tosa-to-linalg-named.mlir
    M mlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir
    M mlir/test/Conversion/TosaToStandard/tosa-to-standard.mlir
    M mlir/test/Dialect/Affine/SuperVectorize/vectorize_reduction.mlir
    M mlir/test/Dialect/Affine/parallelize.mlir
    M mlir/test/Dialect/Arithmetic/bufferize.mlir
    M mlir/test/Dialect/Arithmetic/expand-ops.mlir
    M mlir/test/Dialect/Async/async-parallel-for-compute-fn.mlir
    M mlir/test/Dialect/Async/async-parallel-for-num-worker-threads.mlir
    M mlir/test/Dialect/GPU/all-reduce-max.mlir
    M mlir/test/Dialect/Linalg/comprehensive-module-bufferize-analysis.mlir
    M mlir/test/Dialect/Linalg/comprehensive-module-bufferize.mlir
    M mlir/test/Dialect/Linalg/convert-elementwise-to-linalg.mlir
    M mlir/test/Dialect/Linalg/loops.mlir
    M mlir/test/Dialect/Linalg/roundtrip.mlir
    M mlir/test/Dialect/Linalg/vectorization.mlir
    M mlir/test/Dialect/Math/polynomial-approximation.mlir
    M mlir/test/Dialect/MemRef/expand-ops.mlir
    M mlir/test/Dialect/SCF/canonicalize.mlir
    M mlir/test/Dialect/SCF/ops.mlir
    M mlir/test/Dialect/SparseTensor/sparse_1d.mlir
    M mlir/test/Dialect/SparseTensor/sparse_2d.mlir
    M mlir/test/Dialect/SparseTensor/sparse_3d.mlir
    M mlir/test/Dialect/SparseTensor/sparse_fp_ops.mlir
    M mlir/test/Dialect/SparseTensor/sparse_int_ops.mlir
    M mlir/test/Dialect/SparseTensor/sparse_kernels.mlir
    M mlir/test/Dialect/SparseTensor/sparse_out.mlir
    M mlir/test/Dialect/SparseTensor/sparse_vector_chain.mlir
    R mlir/test/Dialect/Standard/bufferize.mlir
    M mlir/test/Dialect/Standard/canonicalize-cf.mlir
    M mlir/test/Dialect/Standard/canonicalize.mlir
    M mlir/test/Dialect/Standard/expand-tanh.mlir
    M mlir/test/Dialect/Vector/vector-contract-transforms.mlir
    M mlir/test/Dialect/Vector/vector-transforms.mlir
    M mlir/test/IR/core-ops.mlir
    M mlir/test/IR/invalid-ops.mlir
    M mlir/test/Integration/Dialect/Linalg/CPU/test-collapse-tensor.mlir
    M mlir/test/Integration/Dialect/Linalg/CPU/test-elementwise.mlir
    M mlir/test/Integration/Dialect/Linalg/CPU/test-expand-tensor.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-e2e.mlir
    M mlir/test/Integration/Dialect/Linalg/CPU/test-tensor-matmul.mlir
    M mlir/test/Integration/Dialect/SparseTensor/python/test_SDDMM.py
    M mlir/test/Integration/Dialect/SparseTensor/python/test_SpMM.py
    M mlir/test/Integration/Dialect/SparseTensor/python/test_elementwise_add_sparse_output.py
    M mlir/test/Integration/Dialect/SparseTensor/python/test_output.py
    M mlir/test/Integration/Dialect/SparseTensor/python/test_stress.py
    M mlir/test/Transforms/canonicalize-block-merge.mlir
    M mlir/test/Transforms/canonicalize.mlir
    M mlir/test/Transforms/parametric-tiling.mlir
    M mlir/test/Transforms/sccp-callgraph.mlir
    M mlir/test/Transforms/sccp.mlir
    M mlir/test/lib/Dialect/Linalg/TestComprehensiveBufferize.cpp
    M mlir/test/lib/Dialect/Vector/TestVectorTransforms.cpp

  Log Message:
  -----------
  [mlir] Move SelectOp from Standard to Arithmetic

This is part of splitting up the standard dialect. See https://llvm.discourse.group/t/standard-dialect-the-final-chapter/ for discussion.

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


  Commit: ead1107257e64c7d291ac3118304afe3c845ad1b
      https://github.com/llvm/llvm-project/commit/ead1107257e64c7d291ac3118304afe3c845ad1b
  Author: River Riddle <riddleriver at gmail.com>
  Date:   2022-02-02 (Wed, 02 Feb 2022)

  Changed paths:
    M mlir/include/mlir/Dialect/Affine/IR/AffineOps.h
    A mlir/include/mlir/Dialect/Arithmetic/Utils/Utils.h
    M mlir/include/mlir/Dialect/Linalg/IR/LinalgBase.td
    R mlir/include/mlir/Dialect/StandardOps/Utils/Utils.h
    M mlir/lib/Dialect/Affine/IR/AffineOps.cpp
    M mlir/lib/Dialect/Affine/IR/CMakeLists.txt
    M mlir/lib/Dialect/Affine/Transforms/PipelineDataTransfer.cpp
    M mlir/lib/Dialect/Arithmetic/CMakeLists.txt
    A mlir/lib/Dialect/Arithmetic/Utils/CMakeLists.txt
    A mlir/lib/Dialect/Arithmetic/Utils/Utils.cpp
    M mlir/lib/Dialect/Linalg/IR/CMakeLists.txt
    M mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
    M mlir/lib/Dialect/Linalg/Transforms/Bufferize.cpp
    M mlir/lib/Dialect/Linalg/Transforms/ElementwiseToLinalg.cpp
    M mlir/lib/Dialect/Linalg/Transforms/Loops.cpp
    M mlir/lib/Dialect/Linalg/Utils/Utils.cpp
    M mlir/lib/Dialect/MemRef/IR/CMakeLists.txt
    M mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
    M mlir/lib/Dialect/MemRef/Transforms/CMakeLists.txt
    M mlir/lib/Dialect/MemRef/Transforms/FoldSubViewOps.cpp
    M mlir/lib/Dialect/MemRef/Transforms/ResolveShapedTypeResultDims.cpp
    M mlir/lib/Dialect/StandardOps/CMakeLists.txt
    M mlir/lib/Dialect/StandardOps/IR/Ops.cpp
    R mlir/lib/Dialect/StandardOps/Utils/Utils.cpp
    M mlir/lib/Dialect/Tensor/IR/CMakeLists.txt
    M mlir/lib/Dialect/Tensor/IR/TensorInferTypeOpInterfaceImpl.cpp
    M mlir/lib/Dialect/Tensor/IR/TensorOps.cpp
    M mlir/lib/Dialect/Tensor/IR/TensorTilingInterfaceImpl.cpp
    M mlir/lib/Dialect/Tosa/CMakeLists.txt
    M mlir/lib/Dialect/Tosa/IR/TosaOps.cpp
    M mlir/lib/Dialect/Tosa/Transforms/CMakeLists.txt
    M mlir/lib/Dialect/Tosa/Transforms/TosaMakeBroadcastable.cpp
    M mlir/lib/Dialect/Vector/IR/CMakeLists.txt
    M mlir/lib/Dialect/Vector/IR/VectorOps.cpp
    M mlir/lib/Dialect/Vector/Transforms/CMakeLists.txt
    M mlir/lib/Dialect/Vector/Transforms/VectorTransferSplitRewritePatterns.cpp

  Log Message:
  -----------
  [mlir] Move StandardOps/Utils to Arithmetic and sever a bunch of dependencies on Standard

The Utils.cpp file in StandardOps essentially just contains utilities for interacting with arithmetic
operations, and at this point makes more sense as a utility file for the arithemtic dialect.

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


  Commit: 8e123ca65f5f9286e59f2c79184d01673c87aa42
      https://github.com/llvm/llvm-project/commit/8e123ca65f5f9286e59f2c79184d01673c87aa42
  Author: River Riddle <riddleriver at gmail.com>
  Date:   2022-02-02 (Wed, 02 Feb 2022)

  Changed paths:
    M flang/lib/Optimizer/Builder/Character.cpp
    M mlir/include/mlir/Dialect/StandardOps/IR/Ops.td
    M mlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
    M mlir/lib/Dialect/Async/Transforms/AsyncParallelFor.cpp
    M mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp
    M mlir/lib/Dialect/Math/Transforms/PolynomialApproximation.cpp
    M mlir/lib/Dialect/StandardOps/IR/Ops.cpp
    M mlir/lib/Dialect/Vector/Transforms/VectorMultiDimReductionTransforms.cpp
    M mlir/lib/Target/Cpp/TranslateToCpp.cpp
    M mlir/test/Dialect/Standard/invalid.mlir
    M mlir/test/IR/core-ops.mlir
    M mlir/test/lib/Dialect/Test/TestPatterns.cpp

  Log Message:
  -----------
  [mlir:Standard] Remove support for creating a `unit` ConstantOp

This is completely unused upstream, and does not really have well defined semantics
on what this is supposed to do/how this fits into the ecosystem. Given that, as part of
splitting up the standard dialect it's best to just remove this behavior, instead of try
to awkwardly fit it somewhere upstream. Downstream users are encouraged to
define their own operations that clearly can define the semantics of this.

This also uncovered several lingering uses of ConstantOp that weren't
updated to use arith::ConstantOp, and worked during conversions because
the constant was removed/converted into something else before
verification.

See https://llvm.discourse.group/t/standard-dialect-the-final-chapter/ for more discussion.

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


Compare: https://github.com/llvm/llvm-project/compare/f7a6c341cb93...8e123ca65f5f


More information about the All-commits mailing list