[all-commits] [llvm/llvm-project] 00e356: [mlir][arith] Add arith.constant materialization h...

rk via All-commits all-commits at lists.llvm.org
Thu Apr 20 13:32:10 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 00e3566d6c98f7c531be5140a614ca7fb3cc03a1
      https://github.com/llvm/llvm-project/commit/00e3566d6c98f7c531be5140a614ca7fb3cc03a1
  Author: Rahul Kayaith <rkayaith at gmail.com>
  Date:   2023-04-20 (Thu, 20 Apr 2023)

  Changed paths:
    M mlir/include/mlir/Dialect/Arith/IR/ArithOps.td
    M mlir/lib/Dialect/Affine/IR/AffineOps.cpp
    M mlir/lib/Dialect/Arith/IR/ArithDialect.cpp
    M mlir/lib/Dialect/Arith/IR/ArithOps.cpp
    M mlir/lib/Dialect/Complex/IR/ComplexDialect.cpp
    M mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
    M mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp
    M mlir/lib/Dialect/Math/IR/MathOps.cpp
    M mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
    M mlir/lib/Dialect/Shape/IR/Shape.cpp
    M mlir/lib/Dialect/Tensor/IR/TensorOps.cpp
    M mlir/lib/Dialect/Vector/IR/VectorOps.cpp

  Log Message:
  -----------
  [mlir][arith] Add arith.constant materialization helper

This adds `arith::ConstantOp::materialize`, which builds a constant from
an attribute and type only if it would result in a valid op. This is
useful for dialect `materializeConstant` hooks, and allows for removing
the previous `Attribute, Type` builder which was only used during
materialization.

Reviewed By: rriddle

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


  Commit: 8db947da0b377a13cd0e536b1bbc825abff3c001
      https://github.com/llvm/llvm-project/commit/8db947da0b377a13cd0e536b1bbc825abff3c001
  Author: Rahul Kayaith <rkayaith at gmail.com>
  Date:   2023-04-20 (Thu, 20 Apr 2023)

  Changed paths:
    M mlir/include/mlir/Dialect/CommonFolders.h
    M mlir/include/mlir/IR/BuiltinAttributeInterfaces.td
    M mlir/include/mlir/IR/BuiltinAttributes.td
    M mlir/lib/IR/BuiltinAttributeInterfaces.cpp
    M mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
    M mlir/lib/Transforms/ViewOpGraph.cpp
    M mlir/test/lib/Dialect/Test/TestAttrDefs.td

  Log Message:
  -----------
  [mlir] Make ElementsAttr inherit from TypedAttr

This allows implicit conversion from `ElementsAttr` to `TypedAttr`, but
required renaming the `ElementsAttr::getType()` interface method to
`getShapedType`.

Reviewed By: rriddle

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


  Commit: 6089d612a580738df00c22a43e6f2c29bd216af9
      https://github.com/llvm/llvm-project/commit/6089d612a580738df00c22a43e6f2c29bd216af9
  Author: Rahul Kayaith <rkayaith at gmail.com>
  Date:   2023-04-20 (Thu, 20 Apr 2023)

  Changed paths:
    M mlir/include/mlir/Dialect/Arith/IR/Arith.h
    M mlir/include/mlir/Dialect/CommonFolders.h
    M mlir/include/mlir/Dialect/Linalg/Utils/Utils.h
    M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
    M mlir/include/mlir/Dialect/Utils/StructuredOpsUtils.h
    M mlir/include/mlir/IR/Builders.h
    M mlir/include/mlir/IR/BuiltinAttributes.h
    M mlir/include/mlir/IR/FunctionInterfaces.td
    M mlir/include/mlir/Support/InterfaceSupport.h
    M mlir/lib/Conversion/ArithToLLVM/ArithToLLVM.cpp
    M mlir/lib/Conversion/TosaToArith/TosaToArith.cpp
    M mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
    M mlir/lib/Conversion/TosaToLinalg/TosaToLinalgNamed.cpp
    M mlir/lib/Conversion/TosaToTensor/TosaToTensor.cpp
    M mlir/lib/Dialect/Affine/Utils/Utils.cpp
    M mlir/lib/Dialect/Arith/IR/ArithCanonicalization.td
    M mlir/lib/Dialect/Arith/IR/ArithOps.cpp
    M mlir/lib/Dialect/Arith/Transforms/EmulateWideInt.cpp
    M mlir/lib/Dialect/EmitC/IR/EmitC.cpp
    M mlir/lib/Dialect/GPU/TransformOps/GPUTransformOps.cpp
    M mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
    M mlir/lib/Dialect/Linalg/Transforms/Fusion.cpp
    M mlir/lib/Dialect/Linalg/Transforms/FusionOnTensors.cpp
    M mlir/lib/Dialect/Linalg/Transforms/Loops.cpp
    M mlir/lib/Dialect/Linalg/Transforms/SplitReduction.cpp
    M mlir/lib/Dialect/Linalg/Transforms/TilingInterfaceImpl.cpp
    M mlir/lib/Dialect/Linalg/Transforms/Transforms.cpp
    M mlir/lib/Dialect/Linalg/Utils/Utils.cpp
    M mlir/lib/Dialect/Math/Transforms/PolynomialApproximation.cpp
    M mlir/lib/Dialect/MemRef/Transforms/ExpandOps.cpp
    M mlir/lib/Dialect/SPIRV/Transforms/SPIRVWebGPUTransforms.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/CodegenUtils.cpp
    M mlir/lib/Dialect/SparseTensor/Transforms/CodegenUtils.h
    M mlir/lib/Dialect/Vector/IR/VectorOps.cpp
    M mlir/lib/Dialect/Vector/Transforms/LowerVectorMask.cpp
    M mlir/lib/Dialect/Vector/Transforms/VectorDistribute.cpp
    M mlir/lib/Dialect/X86Vector/Transforms/LegalizeForLLVMExport.cpp
    M mlir/lib/IR/Builders.cpp
    M mlir/lib/IR/BuiltinTypes.cpp
    M mlir/lib/Target/SPIRV/Deserialization/Deserializer.cpp
    M mlir/lib/Target/SPIRV/Deserialization/Deserializer.h
    M mlir/lib/Transforms/Utils/InliningUtils.cpp
    M mlir/test/lib/Dialect/Linalg/TestLinalgFusionTransforms.cpp

  Log Message:
  -----------
  [mlir] Prevent implicit downcasting to interfaces

Currently conversions to interfaces may happen implicitly (e.g.
`Attribute -> TypedAttr`), failing a runtime assert if the interface
isn't actually implemented. This change marks the `Interface(ValueT)`
constructor as explicit so that a cast is required.

Where it was straightforward to I adjusted code to not require casts,
otherwise I just made them explicit.

Depends on D148491, D148492

Reviewed By: rriddle

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


Compare: https://github.com/llvm/llvm-project/compare/ecc204b64e98...6089d612a580


More information about the All-commits mailing list