[PATCH] D138934: mlir/tblgen: use std::optional in generation

Ramkumar Ramachandra via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 29 11:11:57 PST 2022


artagnon created this revision.
artagnon added reviewers: kazu, antiagainst.
Herald added subscribers: jsetoain, hanchung, Moerafaat, zero9178, anlunx, bzcheeseman, mravishankar, mattd, gchakrabarti, ThomasRaoux, awarzynski, sdasgup3, jeroen.dobbelaere, wenzhicui, wrengr, armkevincheng, ormris, jsmolens, sjarus, eric-k256, cota, teijeong, rdzhabarov, tatianashp, msifontes, jurahul, Kayjukh, grosul1, Joonsoo, liufengdb, aartbik, mgester, arpith-jacob, csigg, shauheen, rriddle, mehdi_amini, arphaman, steven_wu, hiraditya.
Herald added a reviewer: rriddle.
Herald added a reviewer: aartbik.
Herald added a reviewer: jpienaar.
Herald added a reviewer: ftynse.
Herald added a reviewer: aaron.ballman.
Herald added a reviewer: aartbik.
Herald added a reviewer: bondhugula.
Herald added a reviewer: ThomasRaoux.
Herald added a project: All.
artagnon requested review of this revision.
Herald added subscribers: llvm-commits, stephenneuendorffer, nicolasvasilache, jholewinski.
Herald added a reviewer: nicolasvasilache.
Herald added a reviewer: herhut.
Herald added a reviewer: dcaballe.
Herald added projects: MLIR, LLVM.

This is part of an effort to migrate from llvm::Optional to
std::optional. This patch changes the way mlir-tblgen generates .inc
files, and modifies tests and documentation appropriately. It is a "no
compromises" patch, and doesn't leave the user with an unpleasant mix of
llvm::Optional and std::optional. Notably, LLVM ADT's Hashing.h has been
touched to allow hashing std::optional.

See also: https://discourse.llvm.org/t/deprecating-llvm-optional-x-hasvalue-getvalue-getvalueor/63716

Signed-off-by: Ramkumar Ramachandra <r at artagnon.com>


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D138934

Files:
  llvm/include/llvm/ADT/Hashing.h
  mlir/docs/Dialects/Linalg/_index.md
  mlir/docs/OpDefinitions.md
  mlir/include/mlir/Analysis/DataFlow/SparseAnalysis.h
  mlir/include/mlir/Conversion/MemRefToLLVM/AllocLikeConversion.h
  mlir/include/mlir/Dialect/Affine/IR/AffineOps.td
  mlir/include/mlir/Dialect/Arith/IR/ArithOps.td
  mlir/include/mlir/Dialect/GPU/TransformOps/GPUTransformOps.h
  mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
  mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td
  mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.h
  mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
  mlir/include/mlir/Dialect/MemRef/IR/MemRefOps.td
  mlir/include/mlir/Dialect/PDLInterp/IR/PDLInterpOps.td
  mlir/include/mlir/Dialect/SCF/IR/SCFOps.td
  mlir/include/mlir/Dialect/SPIRV/IR/ParserUtils.h
  mlir/include/mlir/Dialect/SPIRV/IR/SPIRVStructureOps.td
  mlir/include/mlir/Dialect/Shape/IR/ShapeOps.td
  mlir/include/mlir/Dialect/Tensor/IR/TensorOps.td
  mlir/include/mlir/Dialect/Utils/StaticValueUtils.h
  mlir/include/mlir/Dialect/Vector/IR/VectorOps.h
  mlir/include/mlir/Dialect/Vector/IR/VectorOps.td
  mlir/include/mlir/IR/Builders.h
  mlir/include/mlir/IR/BuiltinOps.td
  mlir/include/mlir/IR/BuiltinTypeInterfaces.td
  mlir/include/mlir/IR/BuiltinTypes.h
  mlir/include/mlir/IR/BuiltinTypes.td
  mlir/include/mlir/IR/Diagnostics.h
  mlir/include/mlir/IR/Dialect.h
  mlir/include/mlir/IR/EnumAttr.td
  mlir/include/mlir/IR/OpBase.td
  mlir/include/mlir/Interfaces/ControlFlowInterfaces.h
  mlir/include/mlir/Interfaces/ControlFlowInterfaces.td
  mlir/include/mlir/Interfaces/InferTypeOpInterface.h
  mlir/include/mlir/Interfaces/InferTypeOpInterface.td
  mlir/include/mlir/Interfaces/LoopLikeInterface.td
  mlir/include/mlir/Interfaces/SideEffectInterfaceBase.td
  mlir/include/mlir/Interfaces/VectorInterfaces.td
  mlir/include/mlir/TableGen/Attribute.h
  mlir/include/mlir/TableGen/CodeGenHelpers.h
  mlir/include/mlir/TableGen/Dialect.h
  mlir/include/mlir/TableGen/Interfaces.h
  mlir/lib/Analysis/AliasAnalysis/LocalAliasAnalysis.cpp
  mlir/lib/Analysis/DataFlow/IntegerRangeAnalysis.cpp
  mlir/lib/Analysis/DataFlow/SparseAnalysis.cpp
  mlir/lib/AsmParser/Parser.cpp
  mlir/lib/CAPI/Interfaces/Interfaces.cpp
  mlir/lib/Conversion/AffineToStandard/AffineToStandard.cpp
  mlir/lib/Conversion/MemRefToLLVM/MemRefToLLVM.cpp
  mlir/lib/Conversion/NVGPUToNVVM/NVGPUToNVVM.cpp
  mlir/lib/Conversion/PDLToPDLInterp/PDLToPDLInterp.cpp
  mlir/lib/Conversion/PDLToPDLInterp/Predicate.h
  mlir/lib/Conversion/PDLToPDLInterp/PredicateTree.cpp
  mlir/lib/Dialect/Affine/IR/AffineOps.cpp
  mlir/lib/Dialect/Arith/IR/ArithOps.cpp
  mlir/lib/Dialect/Async/IR/Async.cpp
  mlir/lib/Dialect/Bufferization/IR/BufferizationOps.cpp
  mlir/lib/Dialect/Bufferization/Transforms/BufferViewFlowAnalysis.cpp
  mlir/lib/Dialect/Bufferization/Transforms/FuncBufferizableOpInterfaceImpl.cpp
  mlir/lib/Dialect/ControlFlow/IR/ControlFlowOps.cpp
  mlir/lib/Dialect/EmitC/IR/EmitC.cpp
  mlir/lib/Dialect/GPU/IR/GPUDialect.cpp
  mlir/lib/Dialect/GPU/TransformOps/GPUTransformOps.cpp
  mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
  mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
  mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
  mlir/lib/Dialect/Linalg/Transforms/Promotion.cpp
  mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp
  mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
  mlir/lib/Dialect/Linalg/Utils/Utils.cpp
  mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
  mlir/lib/Dialect/MemRef/Transforms/MultiBuffer.cpp
  mlir/lib/Dialect/MemRef/Transforms/ResolveShapedTypeResultDims.cpp
  mlir/lib/Dialect/NVGPU/Transforms/OptimizeSharedMemory.cpp
  mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
  mlir/lib/Dialect/PDL/IR/PDL.cpp
  mlir/lib/Dialect/SCF/IR/SCF.cpp
  mlir/lib/Dialect/SCF/Transforms/BufferizableOpInterfaceImpl.cpp
  mlir/lib/Dialect/SCF/Transforms/TileUsingInterface.cpp
  mlir/lib/Dialect/SCF/Utils/AffineCanonicalizationUtils.cpp
  mlir/lib/Dialect/SPIRV/IR/SPIRVDialect.cpp
  mlir/lib/Dialect/SPIRV/IR/SPIRVOps.cpp
  mlir/lib/Dialect/SPIRV/Transforms/UnifyAliasedResourcePass.cpp
  mlir/lib/Dialect/Shape/IR/Shape.cpp
  mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorCodegen.cpp
  mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorConversion.cpp
  mlir/lib/Dialect/Tensor/IR/TensorOps.cpp
  mlir/lib/Dialect/Tensor/Transforms/SplitPaddingPatterns.cpp
  mlir/lib/Dialect/Tosa/IR/TosaOps.cpp
  mlir/lib/Dialect/Tosa/Transforms/TosaValidation.cpp
  mlir/lib/Dialect/Transform/IR/TransformOps.cpp
  mlir/lib/Dialect/Utils/ReshapeOpsUtils.cpp
  mlir/lib/Dialect/Utils/StaticValueUtils.cpp
  mlir/lib/Dialect/Vector/IR/VectorOps.cpp
  mlir/lib/Dialect/Vector/Transforms/VectorTransforms.cpp
  mlir/lib/IR/BuiltinDialect.cpp
  mlir/lib/IR/BuiltinTypes.cpp
  mlir/lib/IR/Dialect.cpp
  mlir/lib/Interfaces/ControlFlowInterfaces.cpp
  mlir/lib/Interfaces/InferTypeOpInterface.cpp
  mlir/lib/Rewrite/ByteCode.cpp
  mlir/lib/TableGen/Attribute.cpp
  mlir/lib/TableGen/CodeGenHelpers.cpp
  mlir/lib/TableGen/Dialect.cpp
  mlir/lib/TableGen/Interfaces.cpp
  mlir/lib/Target/LLVMIR/DebugImporter.cpp
  mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
  mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
  mlir/lib/Tools/PDLL/CodeGen/CPPGen.cpp
  mlir/test/lib/Dialect/SPIRV/TestModuleCombiner.cpp
  mlir/test/lib/Dialect/Test/TestDialect.cpp
  mlir/test/lib/Dialect/Test/TestDialect.td
  mlir/test/lib/Dialect/Test/TestOps.td
  mlir/test/mlir-tblgen/enums-gen.td
  mlir/test/mlir-tblgen/op-attribute.td
  mlir/test/mlir-tblgen/op-decl-and-defs.td
  mlir/test/python/python_test_ops.td
  mlir/tools/mlir-tblgen/DialectGen.cpp
  mlir/tools/mlir-tblgen/DialectGenUtilities.h
  mlir/tools/mlir-tblgen/EnumsGen.cpp
  mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
  mlir/tools/mlir-tblgen/OpDocGen.cpp
  mlir/tools/mlir-tblgen/OpFormatGen.cpp
  mlir/tools/mlir-tblgen/OpInterfacesGen.cpp
  mlir/tools/mlir-tblgen/RewriterGen.cpp
  mlir/tools/mlir-tblgen/SPIRVUtilsGen.cpp
  mlir/unittests/Interfaces/ControlFlowInterfacesTest.cpp
  mlir/unittests/TableGen/EnumsGenTest.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D138934.478652.patch
Type: text/x-patch
Size: 319839 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20221129/84417c95/attachment-0001.bin>


More information about the llvm-commits mailing list