Author: Christian Sigg Date: 2020-12-09T12:11:32+01:00 New Revision: 0bf4a82a5a2b11a07a7f7eac5e49b565cb041b13
URL: https://github.com/llvm/llvm-project/commit/0bf4a82a5a2b11a07a7f7eac5e49b565cb041b13 DIFF: https://github.com/llvm/llvm-project/commit/0bf4a82a5a2b11a07a7f7eac5e49b565cb041b13.diff LOG: [mlir] Use mlir::OpState::operator->() to get to methods of mlir::Operation. This is a preparation step to remove the corresponding methods from OpState. Reviewed By: silvas, rriddle Differential Revision: https://reviews.llvm.org/D92878 Added: Modified: flang/include/flang/Optimizer/Dialect/FIROps.td mlir/examples/toy/Ch2/mlir/Dialect.cpp mlir/examples/toy/Ch3/mlir/Dialect.cpp mlir/examples/toy/Ch4/mlir/Dialect.cpp mlir/examples/toy/Ch5/mlir/Dialect.cpp mlir/examples/toy/Ch6/mlir/Dialect.cpp mlir/examples/toy/Ch7/mlir/Dialect.cpp mlir/include/mlir/Dialect/GPU/GPUOps.td mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td mlir/include/mlir/Dialect/StandardOps/IR/Ops.h mlir/include/mlir/Dialect/StandardOps/IR/Ops.td mlir/include/mlir/Dialect/Vector/VectorOps.td mlir/lib/Conversion/AsyncToLLVM/AsyncToLLVM.cpp mlir/lib/Conversion/GPUCommon/ConvertLaunchFuncToRuntimeCalls.cpp mlir/lib/Conversion/GPUToVulkan/ConvertLaunchFuncToVulkanCalls.cpp mlir/lib/Conversion/SCFToGPU/SCFToGPU.cpp mlir/lib/Conversion/SCFToOpenMP/SCFToOpenMP.cpp mlir/lib/Conversion/SCFToSPIRV/SCFToSPIRV.cpp mlir/lib/Conversion/SPIRVToLLVM/ConvertLaunchFuncToLLVMCalls.cpp mlir/lib/Conversion/SPIRVToLLVM/ConvertSPIRVToLLVM.cpp mlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp mlir/lib/Conversion/StandardToSPIRV/ConvertStandardToSPIRV.cpp mlir/lib/Dialect/Affine/IR/AffineOps.cpp mlir/lib/Dialect/Affine/Utils/Utils.cpp mlir/lib/Dialect/Async/IR/Async.cpp mlir/lib/Dialect/GPU/IR/GPUDialect.cpp mlir/lib/Dialect/GPU/Transforms/AsyncRegionRewriter.cpp mlir/lib/Dialect/GPU/Transforms/KernelOutlining.cpp mlir/lib/Dialect/GPU/Transforms/ParallelLoopMapper.cpp mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp mlir/lib/Dialect/Linalg/Transforms/CodegenStrategy.cpp mlir/lib/Dialect/Linalg/Transforms/Hoisting.cpp mlir/lib/Dialect/PDL/IR/PDL.cpp mlir/lib/Dialect/SCF/SCF.cpp mlir/lib/Dialect/SCF/Transforms/StructuralTypeConversions.cpp mlir/lib/Dialect/SCF/Transforms/Utils.cpp mlir/lib/Dialect/SPIRV/SPIRVLowering.cpp mlir/lib/Dialect/SPIRV/SPIRVOps.cpp mlir/lib/Dialect/SPIRV/Serialization/Serializer.cpp mlir/lib/Dialect/SPIRV/Transforms/DecorateSPIRVCompositeTypeLayoutPass.cpp mlir/lib/Dialect/SPIRV/Transforms/LowerABIAttributesPass.cpp mlir/lib/Dialect/Shape/IR/Shape.cpp mlir/lib/Dialect/Shape/Transforms/ShapeToShapeLowering.cpp mlir/lib/Dialect/StandardOps/IR/Ops.cpp mlir/lib/Dialect/Vector/VectorTransferOpTransforms.cpp mlir/lib/Dialect/Vector/VectorTransforms.cpp mlir/lib/Target/LLVMIR/ConvertToROCDLIR.cpp mlir/lib/Transforms/Inliner.cpp mlir/lib/Transforms/LoopCoalescing.cpp mlir/lib/Transforms/Utils/InliningUtils.cpp mlir/lib/Transforms/Utils/LoopFusionUtils.cpp mlir/lib/Transforms/Utils/LoopUtils.cpp mlir/test/lib/Dialect/Shape/TestShapeFunctions.cpp mlir/test/lib/Dialect/Test/TestDialect.cpp mlir/test/lib/Dialect/Test/TestOps.td mlir/test/lib/Dialect/Test/TestPatterns.cpp mlir/test/lib/IR/TestFunc.cpp mlir/test/lib/Transforms/TestAffineLoopParametricTiling.cpp mlir/test/lib/Transforms/TestLinalgFusionTransforms.cpp mlir/test/lib/Transforms/TestLoopMapping.cpp mlir/test/lib/Transforms/TestLoopParametricTiling.cpp mlir/test/mlir-tblgen/op-attribute.td mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp Removed: ################################################################################ diff --git a/flang/include/flang/Optimizer/Dialect/FIROps.td b/flang/include/flang/Optimizer/Dialect/FIROps.td index 74471cf6f222..9f477aa81b0c 100644 --- a/flang/include/flang/Optimizer/Dialect/FIROps.td +++ b/flang/include/flang/Optimizer/Dialect/FIROps.td @@ -270,7 +270,7 @@ class fir_AllocatableOp<string mnemonic, list<OpTrait> traits = []> : bool hasLenParams() { return bool{getAttr(lenpName())}; } unsigned numLenParams() { - if (auto val = getAttrOfType<mlir::IntegerAttr>(lenpName())) + if (auto val = (*this)->getAttrOfType<mlir::IntegerAttr>(lenpName())) return val.getInt(); return 0; } @@ -291,7 +291,7 @@ class fir_AllocatableOp<string mnemonic, list<OpTrait> traits = []> : /// Get the input type of the allocation mlir::Type getInType() { - return getAttrOfType<mlir::TypeAttr>(inType()).getValue(); + return (*this)->getAttrOfType<mlir::TypeAttr>(inType()).getValue(); } }]; @@ -567,7 +567,7 @@ class fir_SwitchTerminatorOp<string mnemonic, list<OpTrait> traits = []> : // The number of destination conditions that may be tested unsigned getNumConditions() { - return getAttrOfType<mlir::ArrayAttr>(getCasesAttr()).size(); + return (*this)->getAttrOfType<mlir::ArrayAttr>(getCasesAttr()).size(); } // The selector is the value being tested to determine the destination @@ -577,7 +577,7 @@ class fir_SwitchTerminatorOp<string mnemonic, list<OpTrait> traits = []> : } // The number of blocks that may be branched to - unsigned getNumDest() { return getOperation()->getNumSuccessors(); } + unsigned getNumDest() { return (*this)->getNumSuccessors(); } llvm::Optional<mlir::OperandRange> getCompareOperands(unsigned cond); llvm::Optional<llvm::ArrayRef<mlir::Value>> getCompareOperands( @@ -1561,11 +1561,11 @@ def fir_CoordinateOp : fir_Op<"coordinate_of", [NoSideEffect]> { let parser = "return parseCoordinateOp(parser, result);"; let printer = [{ - p << getOperationName() << ' ' << getOperation()->getOperands(); + p << getOperationName() << ' ' << (*this)->getOperands(); p.printOptionalAttrDict(getAttrs(), /*elidedAttrs=*/{baseType()}); p << " : "; - p.printFunctionalType(getOperation()->getOperandTypes(), - getOperation()->getResultTypes()); + p.printFunctionalType((*this)->getOperandTypes(), + (*this)->getResultTypes()); }]; let verifier = [{ @@ -1940,9 +1940,9 @@ def fir_LoopOp : region_Op<"do_loop", return getOperands().drop_front(getNumControlOperands()); } - void setLowerBound(Value bound) { getOperation()->setOperand(0, bound); } - void setUpperBound(Value bound) { getOperation()->setOperand(1, bound); } - void setStep(Value step) { getOperation()->setOperand(2, step); } + void setLowerBound(Value bound) { (*this)->setOperand(0, bound); } + void setUpperBound(Value bound) { (*this)->setOperand(1, bound); } + void setStep(Value step) { (*this)->setOperand(2, step); } /// Number of region arguments for loop-carried values unsigned getNumRegionIterArgs() { @@ -1952,18 +1952,18 @@ def fir_LoopOp : region_Op<"do_loop", unsigned getNumControlOperands() { return 3; } /// Does the operation hold operands for loop-carried values bool hasIterOperands() { - return getOperation()->getNumOperands() > getNumControlOperands(); + return (*this)->getNumOperands() > getNumControlOperands(); } /// Get Number of loop-carried values unsigned getNumIterOperands() { - return getOperation()->getNumOperands() - getNumControlOperands(); + return (*this)->getNumOperands() - getNumControlOperands(); } /// Get the body of the loop mlir::Block *getBody() { return ®ion().front(); } void setUnordered() { - getOperation()->setAttr(unorderedAttrName(), + (*this)->setAttr(unorderedAttrName(), mlir::UnitAttr::get(getContext())); } }]; @@ -2062,9 +2062,9 @@ def fir_IterWhileOp : region_Op<"iterate_while", return getOperands().drop_front(getNumControlOperands()); } - void setLowerBound(Value bound) { getOperation()->setOperand(0, bound); } - void setUpperBound(Value bound) { getOperation()->setOperand(1, bound); } - void setStep(mlir::Value step) { getOperation()->setOperand(2, step); } + void setLowerBound(Value bound) { (*this)->setOperand(0, bound); } + void setUpperBound(Value bound) { (*this)->setOperand(1, bound); } + void setStep(mlir::Value step) { (*this)->setOperand(2, step); } /// Number of region arguments for loop-carried values unsigned getNumRegionIterArgs() { @@ -2074,11 +2074,11 @@ def fir_IterWhileOp : region_Op<"iterate_while", unsigned getNumControlOperands() { return 3; } /// Does the operation hold operands for loop-carried values bool hasIterOperands() { - return getOperation()->getNumOperands() > getNumControlOperands(); + return (*this)->getNumOperands() > getNumControlOperands(); } /// Get Number of loop-carried values unsigned getNumIterOperands() { - return getOperation()->getNumOperands() - getNumControlOperands(); + return (*this)->getNumOperands() - getNumControlOperands(); } }]; } @@ -2705,7 +2705,7 @@ def fir_GlobalOp : fir_Op<"global", [IsolatedFromAbove, Symbol]> { p << " : "; p.printType(getType()); if (hasInitializationBody()) - p.printRegion(getOperation()->getRegion(0), /*printEntryBlockArgs=*/false, + p.printRegion((*this)->getRegion(0), /*printEntryBlockArgs=*/false, /*printBlockTerminators=*/true); }]; @@ -2754,7 +2754,7 @@ def fir_GlobalOp : fir_Op<"global", [IsolatedFromAbove, Symbol]> { void appendInitialValue(mlir::Operation *op); /// A GlobalOp has one region. - mlir::Region &getRegion() { return getOperation()->getRegion(0); } + mlir::Region &getRegion() { return (*this)->getRegion(0); } /// A GlobalOp has one block. mlir::Block &getBlock() { return getRegion().front(); } @@ -2763,7 +2763,7 @@ def fir_GlobalOp : fir_Op<"global", [IsolatedFromAbove, Symbol]> { static mlir::ParseResult verifyValidLinkage(StringRef linkage); bool hasInitializationBody() { - return (getOperation()->getNumRegions() == 1) && !getRegion().empty() && + return ((*this)->getNumRegions() == 1) && !getRegion().empty() && !isa<fir::FirEndOp>(getBlock().front()); } @@ -2869,7 +2869,7 @@ def fir_DispatchTableOp : fir_Op<"dispatch_table", mlir::SymbolTable::getSymbolAttrName()).getValue(); p << getOperationName() << " @" << tableName; - Region &body = getOperation()->getRegion(0); + Region &body = (*this)->getRegion(0); if (!body.empty()) p.printRegion(body, /*printEntryBlockArgs=*/false, /*printBlockTerminators=*/false); @@ -2900,7 +2900,7 @@ def fir_DispatchTableOp : fir_Op<"dispatch_table", void appendTableEntry(mlir::Operation *op); mlir::Region &getRegion() { - return this->getOperation()->getRegion(0); + return (*this)->getRegion(0); } mlir::Block &getBlock() { diff --git a/mlir/examples/toy/Ch2/mlir/Dialect.cpp b/mlir/examples/toy/Ch2/mlir/Dialect.cpp index 0e715c9aafa4..e4391e3b6fa9 100644 --- a/mlir/examples/toy/Ch2/mlir/Dialect.cpp +++ b/mlir/examples/toy/Ch2/mlir/Dialect.cpp @@ -191,7 +191,7 @@ void MulOp::build(mlir::OpBuilder &builder, mlir::OperationState &state, static mlir::LogicalResult verify(ReturnOp op) { // We know that the parent operation is a function, because of the 'HasParent' // trait attached to the operation definition. - auto function = cast<FuncOp>(op.getParentOp()); + auto function = cast<FuncOp>(op->getParentOp()); /// ReturnOps can only have a single optional operand. if (op.getNumOperands() > 1) diff --git a/mlir/examples/toy/Ch3/mlir/Dialect.cpp b/mlir/examples/toy/Ch3/mlir/Dialect.cpp index 0e715c9aafa4..e4391e3b6fa9 100644 --- a/mlir/examples/toy/Ch3/mlir/Dialect.cpp +++ b/mlir/examples/toy/Ch3/mlir/Dialect.cpp @@ -191,7 +191,7 @@ void MulOp::build(mlir::OpBuilder &builder, mlir::OperationState &state, static mlir::LogicalResult verify(ReturnOp op) { // We know that the parent operation is a function, because of the 'HasParent' // trait attached to the operation definition. - auto function = cast<FuncOp>(op.getParentOp()); + auto function = cast<FuncOp>(op->getParentOp()); /// ReturnOps can only have a single optional operand. if (op.getNumOperands() > 1) diff --git a/mlir/examples/toy/Ch4/mlir/Dialect.cpp b/mlir/examples/toy/Ch4/mlir/Dialect.cpp index 09875f7bdac1..0a3ec29b5707 100644 --- a/mlir/examples/toy/Ch4/mlir/Dialect.cpp +++ b/mlir/examples/toy/Ch4/mlir/Dialect.cpp @@ -246,7 +246,7 @@ void GenericCallOp::build(mlir::OpBuilder &builder, mlir::OperationState &state, /// Return the callee of the generic call operation, this is required by the /// call interface. CallInterfaceCallable GenericCallOp::getCallableForCallee() { - return getAttrOfType<SymbolRefAttr>("callee"); + return (*this)->getAttrOfType<SymbolRefAttr>("callee"); } /// Get the argument operands to the called function, this is required by the @@ -272,7 +272,7 @@ void MulOp::inferShapes() { getResult().setType(getOperand(0).getType()); } static mlir::LogicalResult verify(ReturnOp op) { // We know that the parent operation is a function, because of the 'HasParent' // trait attached to the operation definition. - auto function = cast<FuncOp>(op.getParentOp()); + auto function = cast<FuncOp>(op->getParentOp()); /// ReturnOps can only have a single optional operand. if (op.getNumOperands() > 1) diff --git a/mlir/examples/toy/Ch5/mlir/Dialect.cpp b/mlir/examples/toy/Ch5/mlir/Dialect.cpp index 045673e67f79..d4356f61f83b 100644 --- a/mlir/examples/toy/Ch5/mlir/Dialect.cpp +++ b/mlir/examples/toy/Ch5/mlir/Dialect.cpp @@ -246,7 +246,7 @@ void GenericCallOp::build(mlir::OpBuilder &builder, mlir::OperationState &state, /// Return the callee of the generic call operation, this is required by the /// call interface. CallInterfaceCallable GenericCallOp::getCallableForCallee() { - return getAttrOfType<SymbolRefAttr>("callee"); + return (*this)->getAttrOfType<SymbolRefAttr>("callee"); } /// Get the argument operands to the called function, this is required by the @@ -272,7 +272,7 @@ void MulOp::inferShapes() { getResult().setType(getOperand(0).getType()); } static mlir::LogicalResult verify(ReturnOp op) { // We know that the parent operation is a function, because of the 'HasParent' // trait attached to the operation definition. - auto function = cast<FuncOp>(op.getParentOp()); + auto function = cast<FuncOp>(op->getParentOp()); /// ReturnOps can only have a single optional operand. if (op.getNumOperands() > 1) diff --git a/mlir/examples/toy/Ch6/mlir/Dialect.cpp b/mlir/examples/toy/Ch6/mlir/Dialect.cpp index 045673e67f79..d4356f61f83b 100644 --- a/mlir/examples/toy/Ch6/mlir/Dialect.cpp +++ b/mlir/examples/toy/Ch6/mlir/Dialect.cpp @@ -246,7 +246,7 @@ void GenericCallOp::build(mlir::OpBuilder &builder, mlir::OperationState &state, /// Return the callee of the generic call operation, this is required by the /// call interface. CallInterfaceCallable GenericCallOp::getCallableForCallee() { - return getAttrOfType<SymbolRefAttr>("callee"); + return (*this)->getAttrOfType<SymbolRefAttr>("callee"); } /// Get the argument operands to the called function, this is required by the @@ -272,7 +272,7 @@ void MulOp::inferShapes() { getResult().setType(getOperand(0).getType()); } static mlir::LogicalResult verify(ReturnOp op) { // We know that the parent operation is a function, because of the 'HasParent' // trait attached to the operation definition. - auto function = cast<FuncOp>(op.getParentOp()); + auto function = cast<FuncOp>(op->getParentOp()); /// ReturnOps can only have a single optional operand. if (op.getNumOperands() > 1) diff --git a/mlir/examples/toy/Ch7/mlir/Dialect.cpp b/mlir/examples/toy/Ch7/mlir/Dialect.cpp index 032d7a61fb90..5c87e5a886fb 100644 --- a/mlir/examples/toy/Ch7/mlir/Dialect.cpp +++ b/mlir/examples/toy/Ch7/mlir/Dialect.cpp @@ -298,7 +298,7 @@ void GenericCallOp::build(mlir::OpBuilder &builder, mlir::OperationState &state, /// Return the callee of the generic call operation, this is required by the /// call interface. CallInterfaceCallable GenericCallOp::getCallableForCallee() { - return getAttrOfType<SymbolRefAttr>("callee"); + return (*this)->getAttrOfType<SymbolRefAttr>("callee"); } /// Get the argument operands to the called function, this is required by the @@ -324,7 +324,7 @@ void MulOp::inferShapes() { getResult().setType(getOperand(0).getType()); } static mlir::LogicalResult verify(ReturnOp op) { // We know that the parent operation is a function, because of the 'HasParent' // trait attached to the operation definition. - auto function = cast<FuncOp>(op.getParentOp()); + auto function = cast<FuncOp>(op->getParentOp()); /// ReturnOps can only have a single optional operand. if (op.getNumOperands() > 1) diff --git a/mlir/include/mlir/Dialect/GPU/GPUOps.td b/mlir/include/mlir/Dialect/GPU/GPUOps.td index 33c00ca9b22c..953a2d5c282c 100644 --- a/mlir/include/mlir/Dialect/GPU/GPUOps.td +++ b/mlir/include/mlir/Dialect/GPU/GPUOps.td @@ -207,8 +207,8 @@ def GPU_GPUFuncOp : GPU_Op<"func", [HasParent<"GPUModuleOp">, /// Returns `true` if the GPU function defined by this Op is a kernel, i.e. /// it is intended to be launched from host. bool isKernel() { - return getAttrOfType<UnitAttr>(GPUDialect::getKernelFuncAttrName()) != - nullptr; + return (*this)->getAttrOfType<UnitAttr>( + GPUDialect::getKernelFuncAttrName()) != nullptr; } /// Change the type of this function in place. This is an extremely @@ -223,8 +223,8 @@ def GPU_GPUFuncOp : GPU_Op<"func", [HasParent<"GPUModuleOp">, /// Returns the number of buffers located in the workgroup memory. unsigned getNumWorkgroupAttributions() { - return getAttrOfType<IntegerAttr>(getNumWorkgroupAttributionsAttrName()) - .getInt(); + return (*this)->getAttrOfType<IntegerAttr>( + getNumWorkgroupAttributionsAttrName()).getInt(); } /// Returns a list of block arguments that correspond to buffers located in diff --git a/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td b/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td index e4dee53560bd..807ea8826ef8 100644 --- a/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td +++ b/mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td @@ -766,7 +766,7 @@ def LLVM_LLVMFuncOp Block *addEntryBlock(); LLVMType getType() { - return getAttrOfType<TypeAttr>(getTypeAttrName()) + return (*this)->getAttrOfType<TypeAttr>(getTypeAttrName()) .getValue().cast<LLVMType>(); } bool isVarArg() { diff --git a/mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td b/mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td index 96b111f7c508..1f9b860eb52e 100644 --- a/mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td +++ b/mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td @@ -107,7 +107,7 @@ def NVVM_ShflBflyOp : let parser = [{ return parseNVVMShflSyncBflyOp(parser, result); }]; let printer = [{ printNVVMIntrinsicOp(p, this->getOperation()); }]; let verifier = [{ - if (!getAttrOfType<UnitAttr>("return_value_and_is_valid")) + if (!(*this)->getAttrOfType<UnitAttr>("return_value_and_is_valid")) return success(); auto type = getType().cast<LLVM::LLVMType>(); if (!type.isStructTy() || type.getStructNumElements() != 2 || diff --git a/mlir/include/mlir/Dialect/StandardOps/IR/Ops.h b/mlir/include/mlir/Dialect/StandardOps/IR/Ops.h index e2b9470f19a7..7302bd486657 100644 --- a/mlir/include/mlir/Dialect/StandardOps/IR/Ops.h +++ b/mlir/include/mlir/Dialect/StandardOps/IR/Ops.h @@ -59,7 +59,9 @@ class ConstantFloatOp : public ConstantOp { static void build(OpBuilder &builder, OperationState &result, const APFloat &value, FloatType type); - APFloat getValue() { return getAttrOfType<FloatAttr>("value").getValue(); } + APFloat getValue() { + return (*this)->getAttrOfType<FloatAttr>("value").getValue(); + } static bool classof(Operation *op); }; @@ -81,7 +83,9 @@ class ConstantIntOp : public ConstantOp { static void build(OpBuilder &builder, OperationState &result, int64_t value, Type type); - int64_t getValue() { return getAttrOfType<IntegerAttr>("value").getInt(); } + int64_t getValue() { + return (*this)->getAttrOfType<IntegerAttr>("value").getInt(); + } static bool classof(Operation *op); }; @@ -98,7 +102,9 @@ class ConstantIndexOp : public ConstantOp { /// Build a constant int op producing an index. static void build(OpBuilder &builder, OperationState &result, int64_t value); - int64_t getValue() { return getAttrOfType<IntegerAttr>("value").getInt(); } + int64_t getValue() { + return (*this)->getAttrOfType<IntegerAttr>("value").getInt(); + } static bool classof(Operation *op); }; @@ -159,8 +165,8 @@ class DmaStartOp } // Returns the source memref indices for this DMA operation. operand_range getSrcIndices() { - return {getOperation()->operand_begin() + 1, - getOperation()->operand_begin() + 1 + getSrcMemRefRank()}; + return {(*this)->operand_begin() + 1, + (*this)->operand_begin() + 1 + getSrcMemRefRank()}; } // Returns the destination MemRefType for this DMA operations. @@ -178,8 +184,8 @@ class DmaStartOp // Returns the destination memref indices for this DMA operation. operand_range getDstIndices() { - return {getOperation()->operand_begin() + 1 + getSrcMemRefRank() + 1, - getOperation()->operand_begin() + 1 + getSrcMemRefRank() + 1 + + return {(*this)->operand_begin() + 1 + getSrcMemRefRank() + 1, + (*this)->operand_begin() + 1 + getSrcMemRefRank() + 1 + getDstMemRefRank()}; } @@ -201,9 +207,8 @@ class DmaStartOp operand_range getTagIndices() { unsigned tagIndexStartPos = 1 + getSrcMemRefRank() + 1 + getDstMemRefRank() + 1 + 1; - return {getOperation()->operand_begin() + tagIndexStartPos, - getOperation()->operand_begin() + tagIndexStartPos + - getTagMemRefRank()}; + return {(*this)->operand_begin() + tagIndexStartPos, + (*this)->operand_begin() + tagIndexStartPos + getTagMemRefRank()}; } /// Returns true if this is a DMA from a faster memory space to a slower one. @@ -279,8 +284,8 @@ class DmaWaitOp // Returns the tag memref index for this DMA operation. operand_range getTagIndices() { - return {getOperation()->operand_begin() + 1, - getOperation()->operand_begin() + 1 + getTagMemRefRank()}; + return {(*this)->operand_begin() + 1, + (*this)->operand_begin() + 1 + getTagMemRefRank()}; } // Returns the rank (number of indices) of the tag memref. diff --git a/mlir/include/mlir/Dialect/StandardOps/IR/Ops.td b/mlir/include/mlir/Dialect/StandardOps/IR/Ops.td index 441cff497ed2..5368880a7cb1 100644 --- a/mlir/include/mlir/Dialect/StandardOps/IR/Ops.td +++ b/mlir/include/mlir/Dialect/StandardOps/IR/Ops.td @@ -820,7 +820,7 @@ def CallOp : Std_Op<"call", /// Return the callee of this operation. CallInterfaceCallable getCallableForCallee() { - return getAttrOfType<SymbolRefAttr>("callee"); + return (*this)->getAttrOfType<SymbolRefAttr>("callee"); } }]; @@ -1040,8 +1040,8 @@ def CmpFOp : Std_Op<"cmpf", static CmpFPredicate getPredicateByName(StringRef name); CmpFPredicate getPredicate() { - return (CmpFPredicate)getAttrOfType<IntegerAttr>(getPredicateAttrName()) - .getInt(); + return (CmpFPredicate)(*this)->getAttrOfType<IntegerAttr>( + getPredicateAttrName()).getInt(); } }]; @@ -1162,8 +1162,8 @@ def CmpIOp : Std_Op<"cmpi", static CmpIPredicate getPredicateByName(StringRef name); CmpIPredicate getPredicate() { - return (CmpIPredicate)getAttrOfType<IntegerAttr>(getPredicateAttrName()) - .getInt(); + return (CmpIPredicate)(*this)->getAttrOfType<IntegerAttr>( + getPredicateAttrName()).getInt(); } }]; diff --git a/mlir/include/mlir/Dialect/Vector/VectorOps.td b/mlir/include/mlir/Dialect/Vector/VectorOps.td index 76b98c1f3f36..de77e3b03483 100644 --- a/mlir/include/mlir/Dialect/Vector/VectorOps.td +++ b/mlir/include/mlir/Dialect/Vector/VectorOps.td @@ -1937,7 +1937,8 @@ def Vector_TupleGetOp : return getResult().getType().cast<VectorType>(); } int64_t getIndex() { - return getAttrOfType<IntegerAttr>("index").getValue().getSExtValue(); + auto index = (*this)->getAttrOfType<IntegerAttr>("index"); + return index.getValue().getSExtValue(); } static StringRef getIndexAttrName() { return "index"; } }]; diff --git a/mlir/lib/Conversion/AsyncToLLVM/AsyncToLLVM.cpp b/mlir/lib/Conversion/AsyncToLLVM/AsyncToLLVM.cpp index 361bfa2b6fad..75c23d37a53a 100644 --- a/mlir/lib/Conversion/AsyncToLLVM/AsyncToLLVM.cpp +++ b/mlir/lib/Conversion/AsyncToLLVM/AsyncToLLVM.cpp @@ -466,7 +466,7 @@ static void addSuspensionPoint(CoroMachinery coro, Value coroState, // Note that this is not reversible transformation. static std::pair<FuncOp, CoroMachinery> outlineExecuteOp(SymbolTable &symbolTable, ExecuteOp execute) { - ModuleOp module = execute.getParentOfType<ModuleOp>(); + ModuleOp module = execute->getParentOfType<ModuleOp>(); MLIRContext *ctx = module.getContext(); Location loc = execute.getLoc(); @@ -727,7 +727,7 @@ class AwaitOpLoweringBase : public ConversionPattern { return failure(); // Check if await operation is inside the outlined coroutine function. - auto func = await.template getParentOfType<FuncOp>(); + auto func = await->template getParentOfType<FuncOp>(); auto outlined = outlinedFunctions.find(func); const bool isInCoroutine = outlined != outlinedFunctions.end(); diff --git a/mlir/lib/Conversion/GPUCommon/ConvertLaunchFuncToRuntimeCalls.cpp b/mlir/lib/Conversion/GPUCommon/ConvertLaunchFuncToRuntimeCalls.cpp index 810511194f68..3b4b39e57d55 100644 --- a/mlir/lib/Conversion/GPUCommon/ConvertLaunchFuncToRuntimeCalls.cpp +++ b/mlir/lib/Conversion/GPUCommon/ConvertLaunchFuncToRuntimeCalls.cpp @@ -587,7 +587,8 @@ LogicalResult ConvertLaunchFuncOpToGpuRuntimeCallPattern::matchAndRewrite( launchOp, launchOp.getKernelModuleName()); assert(kernelModule && "expected a kernel module"); - auto binaryAttr = kernelModule.getAttrOfType<StringAttr>(gpuBinaryAnnotation); + auto binaryAttr = + kernelModule->getAttrOfType<StringAttr>(gpuBinaryAnnotation); if (!binaryAttr) { kernelModule.emitOpError() << "missing " << gpuBinaryAnnotation << " attribute"; diff --git a/mlir/lib/Conversion/GPUToVulkan/ConvertLaunchFuncToVulkanCalls.cpp b/mlir/lib/Conversion/GPUToVulkan/ConvertLaunchFuncToVulkanCalls.cpp index 16f30c3fe026..355bced96ae7 100644 --- a/mlir/lib/Conversion/GPUToVulkan/ConvertLaunchFuncToVulkanCalls.cpp +++ b/mlir/lib/Conversion/GPUToVulkan/ConvertLaunchFuncToVulkanCalls.cpp @@ -186,7 +186,7 @@ void VulkanLaunchFuncToVulkanCallsPass::collectSPIRVAttributes( // Check that `kSPIRVBinary` and `kSPIRVEntryPoint` are present in attributes // for the given vulkan launch call. auto spirvBlobAttr = - vulkanLaunchCallOp.getAttrOfType<StringAttr>(kSPIRVBlobAttrName); + vulkanLaunchCallOp->getAttrOfType<StringAttr>(kSPIRVBlobAttrName); if (!spirvBlobAttr) { vulkanLaunchCallOp.emitError() << "missing " << kSPIRVBlobAttrName << " attribute"; @@ -194,7 +194,7 @@ void VulkanLaunchFuncToVulkanCallsPass::collectSPIRVAttributes( } auto spirvEntryPointNameAttr = - vulkanLaunchCallOp.getAttrOfType<StringAttr>(kSPIRVEntryPointAttrName); + vulkanLaunchCallOp->getAttrOfType<StringAttr>(kSPIRVEntryPointAttrName); if (!spirvEntryPointNameAttr) { vulkanLaunchCallOp.emitError() << "missing " << kSPIRVEntryPointAttrName << " attribute"; diff --git a/mlir/lib/Conversion/SCFToGPU/SCFToGPU.cpp b/mlir/lib/Conversion/SCFToGPU/SCFToGPU.cpp index b7b4e7aab859..39b0d62c7645 100644 --- a/mlir/lib/Conversion/SCFToGPU/SCFToGPU.cpp +++ b/mlir/lib/Conversion/SCFToGPU/SCFToGPU.cpp @@ -381,7 +381,7 @@ static LogicalResult processParallelLoop( // TODO: Verify that this is a valid GPU mapping. // processor ids: 0-2 block [x/y/z], 3-5 -> thread [x/y/z], 6-> sequential ArrayAttr mapping = - parallelOp.getAttrOfType<ArrayAttr>(gpu::getMappingAttrName()); + parallelOp->getAttrOfType<ArrayAttr>(gpu::getMappingAttrName()); // TODO: Support reductions. if (!mapping || parallelOp.getNumResults() != 0) @@ -390,7 +390,7 @@ static LogicalResult processParallelLoop( Location loc = parallelOp.getLoc(); auto launchIndependent = [&launchOp](Value val) { - return val.getParentRegion()->isAncestor(launchOp.getParentRegion()); + return val.getParentRegion()->isAncestor(launchOp->getParentRegion()); }; auto ensureLaunchIndependent = [&rewriter, @@ -568,7 +568,7 @@ ParallelToGpuLaunchLowering::matchAndRewrite(ParallelOp parallelOp, PatternRewriter &rewriter) const { // We can only transform starting at the outer-most loop. Launches inside of // parallel loops are not supported. - if (auto parentLoop = parallelOp.getParentOfType<ParallelOp>()) + if (auto parentLoop = parallelOp->getParentOfType<ParallelOp>()) return failure(); // Create a launch operation. We start with bound one for all grid/block // sizes. Those will be refined later as we discover them from mappings. diff --git a/mlir/lib/Conversion/SCFToOpenMP/SCFToOpenMP.cpp b/mlir/lib/Conversion/SCFToOpenMP/SCFToOpenMP.cpp index 906ee8bafbbb..3adb02af15c6 100644 --- a/mlir/lib/Conversion/SCFToOpenMP/SCFToOpenMP.cpp +++ b/mlir/lib/Conversion/SCFToOpenMP/SCFToOpenMP.cpp @@ -66,7 +66,7 @@ static void insertOpenMPParallel(FuncOp func) { SmallVector<scf::ParallelOp, 4> topLevelParallelOps; func.walk([&topLevelParallelOps](scf::ParallelOp parallelOp) { // Ignore ops that are already within OpenMP parallel construct. - if (!parallelOp.getParentOfType<scf::ParallelOp>()) + if (!parallelOp->getParentOfType<scf::ParallelOp>()) topLevelParallelOps.push_back(parallelOp); }); @@ -87,7 +87,7 @@ static LogicalResult applyPatterns(FuncOp func) { ConversionTarget target(*func.getContext()); target.addIllegalOp<scf::ParallelOp>(); target.addDynamicallyLegalOp<scf::YieldOp>( - [](scf::YieldOp op) { return !isa<scf::ParallelOp>(op.getParentOp()); }); + [](scf::YieldOp op) { return !isa<scf::ParallelOp>(op->getParentOp()); }); target.addLegalDialect<omp::OpenMPDialect>(); OwningRewritePatternList patterns; diff --git a/mlir/lib/Conversion/SCFToSPIRV/SCFToSPIRV.cpp b/mlir/lib/Conversion/SCFToSPIRV/SCFToSPIRV.cpp index 1030f0dbd288..754e1937a783 100644 --- a/mlir/lib/Conversion/SCFToSPIRV/SCFToSPIRV.cpp +++ b/mlir/lib/Conversion/SCFToSPIRV/SCFToSPIRV.cpp @@ -269,11 +269,11 @@ LogicalResult TerminatorOpConversion::matchAndRewrite( // VariableOp created during lowering of the parent region. if (!operands.empty()) { auto loc = terminatorOp.getLoc(); - auto &allocas = scfToSPIRVContext->outputVars[terminatorOp.getParentOp()]; + auto &allocas = scfToSPIRVContext->outputVars[terminatorOp->getParentOp()]; assert(allocas.size() == operands.size()); for (unsigned i = 0, e = operands.size(); i < e; i++) rewriter.create<spirv::StoreOp>(loc, allocas[i], operands[i]); - if (isa<spirv::LoopOp>(terminatorOp.getParentOp())) { + if (isa<spirv::LoopOp>(terminatorOp->getParentOp())) { // For loops we also need to update the branch jumping back to the header. auto br = cast<spirv::BranchOp>(rewriter.getInsertionBlock()->getTerminator()); diff --git a/mlir/lib/Conversion/SPIRVToLLVM/ConvertLaunchFuncToLLVMCalls.cpp b/mlir/lib/Conversion/SPIRVToLLVM/ConvertLaunchFuncToLLVMCalls.cpp index f83f72d1d10e..b01c443ddc77 100644 --- a/mlir/lib/Conversion/SPIRVToLLVM/ConvertLaunchFuncToLLVMCalls.cpp +++ b/mlir/lib/Conversion/SPIRVToLLVM/ConvertLaunchFuncToLLVMCalls.cpp @@ -52,7 +52,7 @@ static std::string bindingName() { /// i -> (0, i) /// which is implemented under `LowerABIAttributesPass`. static unsigned calculateGlobalIndex(spirv::GlobalVariableOp op) { - IntegerAttr binding = op.getAttrOfType<IntegerAttr>(bindingName()); + IntegerAttr binding = op->getAttrOfType<IntegerAttr>(bindingName()); return binding.getInt(); } @@ -75,8 +75,8 @@ static std::string createGlobalVariableWithBindName(spirv::GlobalVariableOp op, StringRef kernelModuleName) { IntegerAttr descriptorSet = - op.getAttrOfType<IntegerAttr>(descriptorSetName()); - IntegerAttr binding = op.getAttrOfType<IntegerAttr>(bindingName()); + op->getAttrOfType<IntegerAttr>(descriptorSetName()); + IntegerAttr binding = op->getAttrOfType<IntegerAttr>(bindingName()); return llvm::formatv("{0}_{1}_descriptor_set{2}_binding{3}", kernelModuleName.str(), op.sym_name().str(), std::to_string(descriptorSet.getInt()), @@ -87,8 +87,8 @@ createGlobalVariableWithBindName(spirv::GlobalVariableOp op, /// and a binding number. static bool hasDescriptorSetAndBinding(spirv::GlobalVariableOp op) { IntegerAttr descriptorSet = - op.getAttrOfType<IntegerAttr>(descriptorSetName()); - IntegerAttr binding = op.getAttrOfType<IntegerAttr>(bindingName()); + op->getAttrOfType<IntegerAttr>(descriptorSetName()); + IntegerAttr binding = op->getAttrOfType<IntegerAttr>(bindingName()); return descriptorSet && binding; } @@ -155,7 +155,7 @@ class GPULaunchLowering : public ConvertOpToLLVMPattern<gpu::LaunchFuncOp> { ConversionPatternRewriter &rewriter) const override { auto *op = launchOp.getOperation(); MLIRContext *context = rewriter.getContext(); - auto module = launchOp.getParentOfType<ModuleOp>(); + auto module = launchOp->getParentOfType<ModuleOp>(); // Get the SPIR-V module that represents the gpu kernel module. The module // is named: diff --git a/mlir/lib/Conversion/SPIRVToLLVM/ConvertSPIRVToLLVM.cpp b/mlir/lib/Conversion/SPIRVToLLVM/ConvertSPIRVToLLVM.cpp index f81ae9e9c1d5..5309daec5e52 100644 --- a/mlir/lib/Conversion/SPIRVToLLVM/ConvertSPIRVToLLVM.cpp +++ b/mlir/lib/Conversion/SPIRVToLLVM/ConvertSPIRVToLLVM.cpp @@ -647,7 +647,7 @@ class ExecutionModePattern // First, create the global struct's name that would be associated with // this entry point's execution mode. We set it to be: // __spv__{SPIR-V module name}_{function name}_execution_mode_info - ModuleOp module = op.getParentOfType<ModuleOp>(); + ModuleOp module = op->getParentOfType<ModuleOp>(); std::string moduleName; if (module.getName().hasValue()) moduleName = "_" + module.getName().getValue().str(); @@ -1530,8 +1530,9 @@ void mlir::encodeBindAttribute(ModuleOp module) { auto spvModules = module.getOps<spirv::ModuleOp>(); for (auto spvModule : spvModules) { spvModule.walk([&](spirv::GlobalVariableOp op) { - IntegerAttr descriptorSet = op.getAttrOfType<IntegerAttr>(kDescriptorSet); - IntegerAttr binding = op.getAttrOfType<IntegerAttr>(kBinding); + IntegerAttr descriptorSet = + op->getAttrOfType<IntegerAttr>(kDescriptorSet); + IntegerAttr binding = op->getAttrOfType<IntegerAttr>(kBinding); // For every global variable in the module, get the ones with descriptor // set and binding numbers. if (descriptorSet && binding) { diff --git a/mlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp b/mlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp index 17a065463297..2f6856dc275a 100644 --- a/mlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp +++ b/mlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp @@ -1349,7 +1349,7 @@ struct FuncOpConversionBase : public ConvertOpToLLVMPattern<FuncOp> { ConversionPatternRewriter &rewriter) const { // Convert the original function arguments. They are converted using the // LLVMTypeConverter provided to this legalization pattern. - auto varargsAttr = funcOp.getAttrOfType<BoolAttr>("std.varargs"); + auto varargsAttr = funcOp->getAttrOfType<BoolAttr>("std.varargs"); TypeConverter::SignatureConversion result(funcOp.getNumArguments()); auto llvmType = getTypeConverter()->convertFunctionSignature( funcOp.getType(), varargsAttr && varargsAttr.getValue(), result); @@ -1407,7 +1407,7 @@ struct FuncOpConversion : public FuncOpConversionBase { return failure(); if (getTypeConverter()->getOptions().emitCWrappers || - funcOp.getAttrOfType<UnitAttr>(kEmitIfaceAttrName)) { + funcOp->getAttrOfType<UnitAttr>(kEmitIfaceAttrName)) { if (newFuncOp.isExternal()) wrapExternalFunction(rewriter, funcOp.getLoc(), *getTypeConverter(), funcOp, newFuncOp); @@ -1717,7 +1717,7 @@ struct AssertOpLowering : public ConvertOpToLLVMPattern<AssertOp> { AssertOp::Adaptor transformed(operands); // Insert the `abort` declaration if necessary. - auto module = op.getParentOfType<ModuleOp>(); + auto module = op->getParentOfType<ModuleOp>(); auto abortFunc = module.lookupSymbol<LLVM::LLVMFuncOp>("abort"); if (!abortFunc) { OpBuilder::InsertionGuard guard(rewriter); @@ -2056,7 +2056,7 @@ struct AllocOpLowering : public AllocLikeOpLowering { Type elementPtrType = this->getElementPtrType(memRefType); Value allocatedPtr = createAllocCall(loc, "malloc", elementPtrType, {sizeBytes}, - allocOp.getParentOfType<ModuleOp>(), rewriter); + allocOp->getParentOfType<ModuleOp>(), rewriter); Value alignedPtr = allocatedPtr; if (alignment) { @@ -2138,7 +2138,7 @@ struct AlignedAllocOpLowering : public AllocLikeOpLowering { Type elementPtrType = this->getElementPtrType(memRefType); Value allocatedPtr = createAllocCall( loc, "aligned_alloc", elementPtrType, {allocAlignment, sizeBytes}, - allocOp.getParentOfType<ModuleOp>(), rewriter); + allocOp->getParentOfType<ModuleOp>(), rewriter); return std::make_tuple(allocatedPtr, allocatedPtr); } @@ -2363,11 +2363,11 @@ struct DeallocOpLowering : public ConvertOpToLLVMPattern<DeallocOp> { // Insert the `free` declaration if it is not already present. auto freeFunc = - op.getParentOfType<ModuleOp>().lookupSymbol<LLVM::LLVMFuncOp>("free"); + op->getParentOfType<ModuleOp>().lookupSymbol<LLVM::LLVMFuncOp>("free"); if (!freeFunc) { OpBuilder::InsertionGuard guard(rewriter); rewriter.setInsertionPointToStart( - op.getParentOfType<ModuleOp>().getBody()); + op->getParentOfType<ModuleOp>().getBody()); freeFunc = rewriter.create<LLVM::LLVMFuncOp>( rewriter.getUnknownLoc(), "free", LLVM::LLVMType::getFunctionTy(getVoidType(), getVoidPtrType(), diff --git a/mlir/lib/Conversion/StandardToSPIRV/ConvertStandardToSPIRV.cpp b/mlir/lib/Conversion/StandardToSPIRV/ConvertStandardToSPIRV.cpp index 1c7aec1f55a3..cd5079f50425 100644 --- a/mlir/lib/Conversion/StandardToSPIRV/ConvertStandardToSPIRV.cpp +++ b/mlir/lib/Conversion/StandardToSPIRV/ConvertStandardToSPIRV.cpp @@ -280,7 +280,7 @@ class AllocOpPattern final : public SPIRVOpLowering<AllocOp> { // Insert spv.globalVariable for this allocation. Operation *parent = - SymbolTable::getNearestSymbolTable(operation.getParentOp()); + SymbolTable::getNearestSymbolTable(operation->getParentOp()); if (!parent) return failure(); Location loc = operation.getLoc(); @@ -868,9 +868,9 @@ IntLoadOpPattern::matchAndRewrite(LoadOp loadOp, ArrayRef<Value> operands, srcBits, dstBits, rewriter); Value spvLoadOp = rewriter.create<spirv::LoadOp>( loc, dstType, adjustedPtr, - loadOp.getAttrOfType<IntegerAttr>( + loadOp->getAttrOfType<IntegerAttr>( spirv::attributeName<spirv::MemoryAccess>()), - loadOp.getAttrOfType<IntegerAttr>("alignment")); + loadOp->getAttrOfType<IntegerAttr>("alignment")); // Shift the bits to the rightmost. // ____XXXX________ -> ____________XXXX diff --git a/mlir/lib/Dialect/Affine/IR/AffineOps.cpp b/mlir/lib/Dialect/Affine/IR/AffineOps.cpp index 7c3d1b762d7e..005db18c54e5 100644 --- a/mlir/lib/Dialect/Affine/IR/AffineOps.cpp +++ b/mlir/lib/Dialect/Affine/IR/AffineOps.cpp @@ -1670,7 +1670,7 @@ void AffineForOp::setLowerBound(ValueRange lbOperands, AffineMap map) { newOperands.append(ubOperands.begin(), ubOperands.end()); auto iterOperands = getIterOperands(); newOperands.append(iterOperands.begin(), iterOperands.end()); - getOperation()->setOperands(newOperands); + (*this)->setOperands(newOperands); setAttr(getLowerBoundAttrName(), AffineMapAttr::get(map)); } @@ -1683,7 +1683,7 @@ void AffineForOp::setUpperBound(ValueRange ubOperands, AffineMap map) { newOperands.append(ubOperands.begin(), ubOperands.end()); auto iterOperands = getIterOperands(); newOperands.append(iterOperands.begin(), iterOperands.end()); - getOperation()->setOperands(newOperands); + (*this)->setOperands(newOperands); setAttr(getUpperBoundAttrName(), AffineMapAttr::get(map)); } @@ -1902,7 +1902,7 @@ struct SimplifyDeadElse : public OpRewritePattern<AffineIfOp> { static LogicalResult verify(AffineIfOp op) { // Verify that we have a condition attribute. auto conditionAttr = - op.getAttrOfType<IntegerSetAttr>(op.getConditionAttrName()); + op->getAttrOfType<IntegerSetAttr>(op.getConditionAttrName()); if (!conditionAttr) return op.emitOpError( "requires an integer set attribute named 'condition'"); @@ -1975,7 +1975,7 @@ static ParseResult parseAffineIfOp(OpAsmParser &parser, static void print(OpAsmPrinter &p, AffineIfOp op) { auto conditionAttr = - op.getAttrOfType<IntegerSetAttr>(op.getConditionAttrName()); + op->getAttrOfType<IntegerSetAttr>(op.getConditionAttrName()); p << "affine.if " << conditionAttr; printDimAndSymbolList(op.operand_begin(), op.operand_end(), conditionAttr.getValue().getNumDims(), p); @@ -1999,7 +1999,9 @@ static void print(OpAsmPrinter &p, AffineIfOp op) { } IntegerSet AffineIfOp::getIntegerSet() { - return getAttrOfType<IntegerSetAttr>(getConditionAttrName()).getValue(); + return (*this) + ->getAttrOfType<IntegerSetAttr>(getConditionAttrName()) + .getValue(); } void AffineIfOp::setIntegerSet(IntegerSet newSet) { setAttr(getConditionAttrName(), IntegerSetAttr::get(newSet)); @@ -2007,7 +2009,7 @@ void AffineIfOp::setIntegerSet(IntegerSet newSet) { void AffineIfOp::setConditional(IntegerSet set, ValueRange operands) { setIntegerSet(set); - getOperation()->setOperands(operands); + (*this)->setOperands(operands); } void AffineIfOp::build(OpBuilder &builder, OperationState &result, @@ -2120,7 +2122,7 @@ static ParseResult parseAffineLoadOp(OpAsmParser &parser, static void print(OpAsmPrinter &p, AffineLoadOp op) { p << "affine.load " << op.getMemRef() << '['; if (AffineMapAttr mapAttr = - op.getAttrOfType<AffineMapAttr>(op.getMapAttrName())) + op->getAttrOfType<AffineMapAttr>(op.getMapAttrName())) p.printAffineMapOfSSAIds(mapAttr, op.getMapOperands()); p << ']'; p.printOptionalAttrDict(op.getAttrs(), /*elidedAttrs=*/{op.getMapAttrName()}); @@ -2163,7 +2165,7 @@ LogicalResult verify(AffineLoadOp op) { if (failed(verifyMemoryOpIndexing( op.getOperation(), - op.getAttrOfType<AffineMapAttr>(op.getMapAttrName()), + op->getAttrOfType<AffineMapAttr>(op.getMapAttrName()), op.getMapOperands(), memrefType, /*numIndexOperands=*/op.getNumOperands() - 1))) return failure(); @@ -2236,7 +2238,7 @@ static void print(OpAsmPrinter &p, AffineStoreOp op) { p << "affine.store " << op.getValueToStore(); p << ", " << op.getMemRef() << '['; if (AffineMapAttr mapAttr = - op.getAttrOfType<AffineMapAttr>(op.getMapAttrName())) + op->getAttrOfType<AffineMapAttr>(op.getMapAttrName())) p.printAffineMapOfSSAIds(mapAttr, op.getMapOperands()); p << ']'; p.printOptionalAttrDict(op.getAttrs(), /*elidedAttrs=*/{op.getMapAttrName()}); @@ -2252,7 +2254,7 @@ LogicalResult verify(AffineStoreOp op) { if (failed(verifyMemoryOpIndexing( op.getOperation(), - op.getAttrOfType<AffineMapAttr>(op.getMapAttrName()), + op->getAttrOfType<AffineMapAttr>(op.getMapAttrName()), op.getMapOperands(), memrefType, /*numIndexOperands=*/op.getNumOperands() - 2))) return failure(); @@ -2438,7 +2440,7 @@ static ParseResult parseAffinePrefetchOp(OpAsmParser &parser, static void print(OpAsmPrinter &p, AffinePrefetchOp op) { p << AffinePrefetchOp::getOperationName() << " " << op.memref() << '['; - AffineMapAttr mapAttr = op.getAttrOfType<AffineMapAttr>(op.getMapAttrName()); + AffineMapAttr mapAttr = op->getAttrOfType<AffineMapAttr>(op.getMapAttrName()); if (mapAttr) { SmallVector<Value, 2> operands(op.getMapOperands()); p.printAffineMapOfSSAIds(mapAttr, operands); @@ -2454,7 +2456,7 @@ static void print(OpAsmPrinter &p, AffinePrefetchOp op) { } static LogicalResult verify(AffinePrefetchOp op) { - auto mapAttr = op.getAttrOfType<AffineMapAttr>(op.getMapAttrName()); + auto mapAttr = op->getAttrOfType<AffineMapAttr>(op.getMapAttrName()); if (mapAttr) { AffineMap map = mapAttr.getValue(); if (map.getNumResults() != op.getMemRefType().getRank()) @@ -2624,7 +2626,7 @@ void AffineParallelOp::setLowerBounds(ValueRange lbOperands, AffineMap map) { SmallVector<Value, 4> newOperands(lbOperands); newOperands.append(ubOperands.begin(), ubOperands.end()); - getOperation()->setOperands(newOperands); + (*this)->setOperands(newOperands); lowerBoundsMapAttr(AffineMapAttr::get(map)); } @@ -2636,7 +2638,7 @@ void AffineParallelOp::setUpperBounds(ValueRange ubOperands, AffineMap map) { SmallVector<Value, 4> newOperands(getLowerBoundsOperands()); newOperands.append(ubOperands.begin(), ubOperands.end()); - getOperation()->setOperands(newOperands); + (*this)->setOperands(newOperands); upperBoundsMapAttr(AffineMapAttr::get(map)); } @@ -2880,7 +2882,7 @@ static ParseResult parseAffineParallelOp(OpAsmParser &parser, //===----------------------------------------------------------------------===// static LogicalResult verify(AffineYieldOp op) { - auto *parentOp = op.getParentOp(); + auto *parentOp = op->getParentOp(); auto results = parentOp->getResults(); auto operands = op.getOperands(); @@ -2960,7 +2962,7 @@ static ParseResult parseAffineVectorLoadOp(OpAsmParser &parser, static void print(OpAsmPrinter &p, AffineVectorLoadOp op) { p << "affine.vector_load " << op.getMemRef() << '['; if (AffineMapAttr mapAttr = - op.getAttrOfType<AffineMapAttr>(op.getMapAttrName())) + op->getAttrOfType<AffineMapAttr>(op.getMapAttrName())) p.printAffineMapOfSSAIds(mapAttr, op.getMapOperands()); p << ']'; p.printOptionalAttrDict(op.getAttrs(), /*elidedAttrs=*/{op.getMapAttrName()}); @@ -2981,7 +2983,7 @@ static LogicalResult verify(AffineVectorLoadOp op) { MemRefType memrefType = op.getMemRefType(); if (failed(verifyMemoryOpIndexing( op.getOperation(), - op.getAttrOfType<AffineMapAttr>(op.getMapAttrName()), + op->getAttrOfType<AffineMapAttr>(op.getMapAttrName()), op.getMapOperands(), memrefType, /*numIndexOperands=*/op.getNumOperands() - 1))) return failure(); @@ -3048,7 +3050,7 @@ static void print(OpAsmPrinter &p, AffineVectorStoreOp op) { p << "affine.vector_store " << op.getValueToStore(); p << ", " << op.getMemRef() << '['; if (AffineMapAttr mapAttr = - op.getAttrOfType<AffineMapAttr>(op.getMapAttrName())) + op->getAttrOfType<AffineMapAttr>(op.getMapAttrName())) p.printAffineMapOfSSAIds(mapAttr, op.getMapOperands()); p << ']'; p.printOptionalAttrDict(op.getAttrs(), /*elidedAttrs=*/{op.getMapAttrName()}); @@ -3059,7 +3061,7 @@ static LogicalResult verify(AffineVectorStoreOp op) { MemRefType memrefType = op.getMemRefType(); if (failed(verifyMemoryOpIndexing( op.getOperation(), - op.getAttrOfType<AffineMapAttr>(op.getMapAttrName()), + op->getAttrOfType<AffineMapAttr>(op.getMapAttrName()), op.getMapOperands(), memrefType, /*numIndexOperands=*/op.getNumOperands() - 2))) return failure(); diff --git a/mlir/lib/Dialect/Affine/Utils/Utils.cpp b/mlir/lib/Dialect/Affine/Utils/Utils.cpp index e5f5a6d8998f..b57b2908d635 100644 --- a/mlir/lib/Dialect/Affine/Utils/Utils.cpp +++ b/mlir/lib/Dialect/Affine/Utils/Utils.cpp @@ -221,7 +221,7 @@ LogicalResult mlir::hoistAffineIfOp(AffineIfOp ifOp, bool *folded) { // Canonicalize to remove dead else blocks (happens whenever an 'if' moves up // a sequence of affine.fors that are all perfectly nested). applyPatternsAndFoldGreedily( - hoistedIfOp.getParentWithTrait<OpTrait::IsIsolatedFromAbove>(), + hoistedIfOp->getParentWithTrait<OpTrait::IsIsolatedFromAbove>(), frozenPatterns); return success(); diff --git a/mlir/lib/Dialect/Async/IR/Async.cpp b/mlir/lib/Dialect/Async/IR/Async.cpp index 1e84ba3418bb..36b3393118c3 100644 --- a/mlir/lib/Dialect/Async/IR/Async.cpp +++ b/mlir/lib/Dialect/Async/IR/Async.cpp @@ -102,7 +102,7 @@ Type ValueType::getValueType() { return getImpl()->valueType; } static LogicalResult verify(YieldOp op) { // Get the underlying value types from async values returned from the // parent `async.execute` operation. - auto executeOp = op.getParentOfType<ExecuteOp>(); + auto executeOp = op->getParentOfType<ExecuteOp>(); auto types = llvm::map_range(executeOp.results(), [](const OpResult &result) { return result.getType().cast<ValueType>().getValueType(); }); diff --git a/mlir/lib/Dialect/GPU/IR/GPUDialect.cpp b/mlir/lib/Dialect/GPU/IR/GPUDialect.cpp index e9d8009fb2e9..ee66ede11214 100644 --- a/mlir/lib/Dialect/GPU/IR/GPUDialect.cpp +++ b/mlir/lib/Dialect/GPU/IR/GPUDialect.cpp @@ -80,13 +80,13 @@ LogicalResult GPUDialect::verifyOperationAttribute(Operation *op, auto walkResult = module.walk([&module](LaunchFuncOp launchOp) -> WalkResult { // Ignore launches that are nested more or less deep than functions in the // module we are currently checking. - if (!launchOp.getParentOp() || - launchOp.getParentOp()->getParentOp() != module) + if (!launchOp->getParentOp() || + launchOp->getParentOp()->getParentOp() != module) return success(); // Ignore launch ops with missing attributes here. The errors will be // reported by the verifiers of those ops. - if (!launchOp.getAttrOfType<SymbolRefAttr>( + if (!launchOp->getAttrOfType<SymbolRefAttr>( LaunchFuncOp::getKernelAttrName())) return success(); @@ -434,7 +434,7 @@ void LaunchFuncOp::build(OpBuilder &builder, OperationState &result, result.addOperands({gridSize.x, gridSize.y, gridSize.z, blockSize.x, blockSize.y, blockSize.z}); result.addOperands(kernelOperands); - auto kernelModule = kernelFunc.getParentOfType<GPUModuleOp>(); + auto kernelModule = kernelFunc->getParentOfType<GPUModuleOp>(); auto kernelSymbol = builder.getSymbolRefAttr( kernelModule.getName(), {builder.getSymbolRefAttr(kernelFunc.getName())}); result.addAttribute(getKernelAttrName(), kernelSymbol); @@ -470,16 +470,17 @@ KernelDim3 LaunchFuncOp::getBlockSizeOperandValues() { } static LogicalResult verify(LaunchFuncOp op) { - auto module = op.getParentOfType<ModuleOp>(); + auto module = op->getParentOfType<ModuleOp>(); if (!module) return op.emitOpError("expected to belong to a module"); - if (!module.getAttrOfType<UnitAttr>(GPUDialect::getContainerModuleAttrName())) + if (!module->getAttrOfType<UnitAttr>( + GPUDialect::getContainerModuleAttrName())) return op.emitOpError( "expected the closest surrounding module to have the '" + GPUDialect::getContainerModuleAttrName() + "' attribute"); - auto kernelAttr = op.getAttrOfType<SymbolRefAttr>(op.getKernelAttrName()); + auto kernelAttr = op->getAttrOfType<SymbolRefAttr>(op.getKernelAttrName()); if (!kernelAttr) return op.emitOpError("symbol reference attribute '" + op.getKernelAttrName() + "' must be specified"); @@ -522,7 +523,7 @@ static void printLaunchFuncOperands(OpAsmPrinter &printer, Operation *, /// workgroup memory. BlockArgument GPUFuncOp::addWorkgroupAttribution(Type type) { auto attrName = getNumWorkgroupAttributionsAttrName(); - auto attr = getAttrOfType<IntegerAttr>(attrName); + auto attr = (*this)->getAttrOfType<IntegerAttr>(attrName); setAttr(attrName, IntegerAttr::get(attr.getType(), attr.getValue() + 1)); return getBody().insertArgument(getType().getNumInputs() + attr.getInt(), type); @@ -777,7 +778,7 @@ static ParseResult parseReturnOp(OpAsmParser &parser, OperationState &result) { } static LogicalResult verify(gpu::ReturnOp returnOp) { - GPUFuncOp function = returnOp.getParentOfType<GPUFuncOp>(); + GPUFuncOp function = returnOp->getParentOfType<GPUFuncOp>(); FunctionType funType = function.getType(); diff --git a/mlir/lib/Dialect/GPU/Transforms/AsyncRegionRewriter.cpp b/mlir/lib/Dialect/GPU/Transforms/AsyncRegionRewriter.cpp index f2c7010be291..eaa777c38060 100644 --- a/mlir/lib/Dialect/GPU/Transforms/AsyncRegionRewriter.cpp +++ b/mlir/lib/Dialect/GPU/Transforms/AsyncRegionRewriter.cpp @@ -140,7 +140,7 @@ struct GpuAsyncRegionPass::DeferWaitCallback { ~DeferWaitCallback() { for (size_t i = 0; i < worklist.size(); ++i) { auto waitOp = worklist[i]; - auto executeOp = waitOp.getParentOfType<async::ExecuteOp>(); + auto executeOp = waitOp->getParentOfType<async::ExecuteOp>(); auto numDependencies = waitOp.asyncDependencies().size(); // Erase `gpu.wait` and return async dependencies from region instead. diff --git a/mlir/lib/Dialect/GPU/Transforms/KernelOutlining.cpp b/mlir/lib/Dialect/GPU/Transforms/KernelOutlining.cpp index c7be304236c3..ac5fe8c9458d 100644 --- a/mlir/lib/Dialect/GPU/Transforms/KernelOutlining.cpp +++ b/mlir/lib/Dialect/GPU/Transforms/KernelOutlining.cpp @@ -243,7 +243,7 @@ class GpuKernelOutliningPass auto funcWalkResult = func.walk([&](gpu::LaunchOp op) { llvm::SetVector<Value> operands; std::string kernelFnName = - Twine(op.getParentOfType<FuncOp>().getName(), "_kernel").str(); + Twine(op->getParentOfType<FuncOp>().getName(), "_kernel").str(); // Pull in instructions that can be sunk if (failed(sinkOperationsIntoLaunchOp(op))) diff --git a/mlir/lib/Dialect/GPU/Transforms/ParallelLoopMapper.cpp b/mlir/lib/Dialect/GPU/Transforms/ParallelLoopMapper.cpp index b953bad67627..43a27db9df69 100644 --- a/mlir/lib/Dialect/GPU/Transforms/ParallelLoopMapper.cpp +++ b/mlir/lib/Dialect/GPU/Transforms/ParallelLoopMapper.cpp @@ -123,7 +123,7 @@ static void mapParallelOp(ParallelOp parallelOp, MappingLevel mappingLevel = MapGrid) { // Do not try to add a mapping to already mapped loops or nested loops. if (parallelOp.getAttr(getMappingAttrName()) || - ((mappingLevel == MapGrid) && parallelOp.getParentOfType<ParallelOp>())) + ((mappingLevel == MapGrid) && parallelOp->getParentOfType<ParallelOp>())) return; MLIRContext *ctx = parallelOp.getContext(); diff --git a/mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp b/mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp index f481b702822b..4c48dccad096 100644 --- a/mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp +++ b/mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp @@ -457,7 +457,7 @@ static ParseResult parseInvokeOp(OpAsmParser &parser, OperationState &result) { static LogicalResult verify(LandingpadOp op) { Value value; - if (LLVMFuncOp func = op.getParentOfType<LLVMFuncOp>()) { + if (LLVMFuncOp func = op->getParentOfType<LLVMFuncOp>()) { if (!func.personality().hasValue()) return op.emitError( "llvm.landingpad needs to be in a function with a personality"); @@ -985,11 +985,13 @@ static OpTy lookupSymbolInModule(Operation *parent, StringRef name) { } GlobalOp AddressOfOp::getGlobal() { - return lookupSymbolInModule<LLVM::GlobalOp>(getParentOp(), global_name()); + return lookupSymbolInModule<LLVM::GlobalOp>((*this)->getParentOp(), + global_name()); } LLVMFuncOp AddressOfOp::getFunction() { - return lookupSymbolInModule<LLVM::LLVMFuncOp>(getParentOp(), global_name()); + return lookupSymbolInModule<LLVM::LLVMFuncOp>((*this)->getParentOp(), + global_name()); } static LogicalResult verify(AddressOfOp op) { @@ -1203,7 +1205,7 @@ static LogicalResult verify(GlobalOp op) { if (!LLVMPointerType::isValidElementType(op.getType())) return op.emitOpError( "expects type to be a valid element type for an LLVM pointer"); - if (op.getParentOp() && !satisfiesLLVMModule(op.getParentOp())) + if (op->getParentOp() && !satisfiesLLVMModule(op->getParentOp())) return op.emitOpError("must appear at the module level"); if (auto strAttr = op.getValueOrNull().dyn_cast_or_null<StringAttr>()) { diff --git a/mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp b/mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp index 19c42c1e990c..707ff7c1b089 100644 --- a/mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp +++ b/mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp @@ -109,8 +109,8 @@ static LogicalResult verify(MmaOp op) { "<halfx2>s or 8 floats"); } - auto alayout = op.getAttrOfType<StringAttr>("alayout"); - auto blayout = op.getAttrOfType<StringAttr>("blayout"); + auto alayout = op->getAttrOfType<StringAttr>("alayout"); + auto blayout = op->getAttrOfType<StringAttr>("blayout"); if (!(alayout && blayout) || !(alayout.getValue() == "row" || alayout.getValue() == "col") || diff --git a/mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp b/mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp index 92668be811f6..9d7148fe68dd 100644 --- a/mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp +++ b/mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp @@ -1139,7 +1139,7 @@ static LogicalResult verifyYield(linalg::YieldOp op, } static LogicalResult verify(linalg::YieldOp op) { - auto *parentOp = op.getParentOp(); + auto *parentOp = op->getParentOp(); if (parentOp->getNumRegions() != 1 || parentOp->getRegion(0).empty()) return op.emitOpError("expected single non-empty parent region"); diff --git a/mlir/lib/Dialect/Linalg/Transforms/CodegenStrategy.cpp b/mlir/lib/Dialect/Linalg/Transforms/CodegenStrategy.cpp index bc86dcd9e050..652a036838ed 100644 --- a/mlir/lib/Dialect/Linalg/Transforms/CodegenStrategy.cpp +++ b/mlir/lib/Dialect/Linalg/Transforms/CodegenStrategy.cpp @@ -67,7 +67,7 @@ void mlir::linalg::CodegenStrategy::transform(FuncOp func) const { // Post staged patterns transforms //===--------------------------------------------------------------------===// - ModuleOp module = func.getParentOfType<ModuleOp>(); + ModuleOp module = func->getParentOfType<ModuleOp>(); // Programmatic splitting of slow/fast path vector transfers. OwningRewritePatternList patterns; diff --git a/mlir/lib/Dialect/Linalg/Transforms/Hoisting.cpp b/mlir/lib/Dialect/Linalg/Transforms/Hoisting.cpp index 9aeb39e6b565..9e7e7efdd136 100644 --- a/mlir/lib/Dialect/Linalg/Transforms/Hoisting.cpp +++ b/mlir/lib/Dialect/Linalg/Transforms/Hoisting.cpp @@ -89,8 +89,8 @@ void mlir::linalg::hoistRedundantVectorTransfers(FuncOp func) { func.walk([&](vector::TransferReadOp transferRead) { LLVM_DEBUG(DBGS() << "Candidate for hoisting: " << *transferRead.getOperation() << "\n"); - auto loop = dyn_cast<scf::ForOp>(transferRead.getParentOp()); - LLVM_DEBUG(DBGS() << "Parent op: " << *transferRead.getParentOp() + auto loop = dyn_cast<scf::ForOp>(transferRead->getParentOp()); + LLVM_DEBUG(DBGS() << "Parent op: " << *transferRead->getParentOp() << "\n"); if (!loop) return WalkResult::advance(); diff --git a/mlir/lib/Dialect/PDL/IR/PDL.cpp b/mlir/lib/Dialect/PDL/IR/PDL.cpp index 951c76246b12..49f7f273af19 100644 --- a/mlir/lib/Dialect/PDL/IR/PDL.cpp +++ b/mlir/lib/Dialect/PDL/IR/PDL.cpp @@ -97,7 +97,7 @@ static LogicalResult verify(AttributeOp op) { Value attrType = op.type(); Optional<Attribute> attrValue = op.value(); - if (!attrValue && isa<RewriteOp>(op.getParentOp())) + if (!attrValue && isa<RewriteOp>(op->getParentOp())) return op.emitOpError("expected constant value when specified within a " "`pdl.rewrite`"); if (attrValue && attrType) @@ -273,7 +273,7 @@ static LogicalResult verifyResultTypesAreInferrable(OperationOp op, } static LogicalResult verify(OperationOp op) { - bool isWithinRewrite = isa<RewriteOp>(op.getParentOp()); + bool isWithinRewrite = isa<RewriteOp>(op->getParentOp()); if (isWithinRewrite && !op.name()) return op.emitOpError("must have an operation name when nested within " "a `pdl.rewrite`"); diff --git a/mlir/lib/Dialect/SCF/SCF.cpp b/mlir/lib/Dialect/SCF/SCF.cpp index 5bff924b8e7d..1ea0571cf690 100644 --- a/mlir/lib/Dialect/SCF/SCF.cpp +++ b/mlir/lib/Dialect/SCF/SCF.cpp @@ -1172,7 +1172,7 @@ static void print(OpAsmPrinter &p, ReduceOp op) { static LogicalResult verify(ReduceReturnOp op) { // The type of the return value should be the same type as the type of the // operand of the enclosing ReduceOp. - auto reduceOp = cast<ReduceOp>(op.getParentOp()); + auto reduceOp = cast<ReduceOp>(op->getParentOp()); Type reduceType = reduceOp.operand().getType(); if (reduceType != op.result().getType()) return op.emitOpError() << "needs to have type " << reduceType diff --git a/mlir/lib/Dialect/SCF/Transforms/StructuralTypeConversions.cpp b/mlir/lib/Dialect/SCF/Transforms/StructuralTypeConversions.cpp index bf9f797a118e..9197375cc237 100644 --- a/mlir/lib/Dialect/SCF/Transforms/StructuralTypeConversions.cpp +++ b/mlir/lib/Dialect/SCF/Transforms/StructuralTypeConversions.cpp @@ -144,7 +144,7 @@ void mlir::scf::populateSCFStructuralTypeConversionsAndLegality( target.addDynamicallyLegalOp<scf::YieldOp>([&](scf::YieldOp op) { // We only have conversions for a subset of ops that use scf.yield // terminators. - if (!isa<ForOp, IfOp>(op.getParentOp())) + if (!isa<ForOp, IfOp>(op->getParentOp())) return true; return typeConverter.isLegal(op.getOperandTypes()); }); diff --git a/mlir/lib/Dialect/SCF/Transforms/Utils.cpp b/mlir/lib/Dialect/SCF/Transforms/Utils.cpp index a451c167aeea..c30c823792ae 100644 --- a/mlir/lib/Dialect/SCF/Transforms/Utils.cpp +++ b/mlir/lib/Dialect/SCF/Transforms/Utils.cpp @@ -89,7 +89,7 @@ void mlir::outlineIfOp(OpBuilder &b, scf::IfOp ifOp, FuncOp *thenFn, // Outline before current function. OpBuilder::InsertionGuard g(b); - b.setInsertionPoint(ifOp.getParentOfType<FuncOp>()); + b.setInsertionPoint(ifOp->getParentOfType<FuncOp>()); llvm::SetVector<Value> captures; getUsedValuesDefinedAbove(ifOrElseRegion, captures); diff --git a/mlir/lib/Dialect/SPIRV/SPIRVLowering.cpp b/mlir/lib/Dialect/SPIRV/SPIRVLowering.cpp index 10260b8029c6..756e318ac399 100644 --- a/mlir/lib/Dialect/SPIRV/SPIRVLowering.cpp +++ b/mlir/lib/Dialect/SPIRV/SPIRVLowering.cpp @@ -523,7 +523,7 @@ static spirv::GlobalVariableOp getBuiltinVariable(Block &body, // Look through all global variables in the given `body` block and check if // there is a spv.globalVariable that has the same `builtin` attribute. for (auto varOp : body.getOps<spirv::GlobalVariableOp>()) { - if (auto builtinAttr = varOp.getAttrOfType<StringAttr>( + if (auto builtinAttr = varOp->getAttrOfType<StringAttr>( spirv::SPIRVDialect::getAttributeName( spirv::Decoration::BuiltIn))) { auto varBuiltIn = spirv::symbolizeBuiltIn(builtinAttr.getValue()); diff --git a/mlir/lib/Dialect/SPIRV/SPIRVOps.cpp b/mlir/lib/Dialect/SPIRV/SPIRVOps.cpp index 19e0f98f26e9..03e416e95441 100644 --- a/mlir/lib/Dialect/SPIRV/SPIRVOps.cpp +++ b/mlir/lib/Dialect/SPIRV/SPIRVOps.cpp @@ -1046,7 +1046,7 @@ void spirv::AddressOfOp::build(OpBuilder &builder, OperationState &state, static LogicalResult verify(spirv::AddressOfOp addressOfOp) { auto varOp = dyn_cast_or_null<spirv::GlobalVariableOp>( - SymbolTable::lookupNearestSymbolFrom(addressOfOp.getParentOp(), + SymbolTable::lookupNearestSymbolFrom(addressOfOp->getParentOp(), addressOfOp.variable())); if (!varOp) { return addressOfOp.emitOpError("expected spv.globalVariable symbol"); @@ -1849,7 +1849,7 @@ static LogicalResult verify(spirv::FunctionCallOp functionCallOp) { auto funcOp = dyn_cast_or_null<spirv::FuncOp>(SymbolTable::lookupNearestSymbolFrom( - functionCallOp.getParentOp(), fnName)); + functionCallOp->getParentOp(), fnName)); if (!funcOp) { return functionCallOp.emitOpError("callee function '") << fnName << "' not found in nearest symbol table"; @@ -1898,7 +1898,7 @@ static LogicalResult verify(spirv::FunctionCallOp functionCallOp) { } CallInterfaceCallable spirv::FunctionCallOp::getCallableForCallee() { - return getAttrOfType<SymbolRefAttr>(kCallee); + return (*this)->getAttrOfType<SymbolRefAttr>(kCallee); } Operation::operand_range spirv::FunctionCallOp::getArgOperands() { @@ -2005,9 +2005,9 @@ static LogicalResult verify(spirv::GlobalVariableOp varOp) { } if (auto init = - varOp.getAttrOfType<FlatSymbolRefAttr>(kInitializerAttrName)) { + varOp->getAttrOfType<FlatSymbolRefAttr>(kInitializerAttrName)) { Operation *initOp = SymbolTable::lookupNearestSymbolFrom( - varOp.getParentOp(), init.getValue()); + varOp->getParentOp(), init.getValue()); // TODO: Currently only variable initialization with specialization // constants and other variables is supported. They could be normal // constants in the module scope as well. @@ -2066,7 +2066,7 @@ static LogicalResult verify(spirv::GroupNonUniformBroadcastOp broadcastOp) { // SPIR-V spec: "Before version 1.5, Id must come from a // constant instruction. auto targetEnv = spirv::getDefaultTargetEnv(broadcastOp.getContext()); - if (auto spirvModule = broadcastOp.getParentOfType<spirv::ModuleOp>()) + if (auto spirvModule = broadcastOp->getParentOfType<spirv::ModuleOp>()) targetEnv = spirv::lookupTargetEnvOrDefault(spirvModule); if (targetEnv.getVersion() < spirv::Version::V_1_5) { @@ -2407,12 +2407,12 @@ void spirv::LoopOp::addEntryAndMergeBlock() { //===----------------------------------------------------------------------===// static LogicalResult verify(spirv::MergeOp mergeOp) { - auto *parentOp = mergeOp.getParentOp(); + auto *parentOp = mergeOp->getParentOp(); if (!parentOp || !isa<spirv::SelectionOp, spirv::LoopOp>(parentOp)) return mergeOp.emitOpError( "expected parent op to be 'spv.selection' or 'spv.loop'"); - Block &parentLastBlock = mergeOp.getParentRegion()->back(); + Block &parentLastBlock = mergeOp->getParentRegion()->back(); if (mergeOp.getOperation() != parentLastBlock.getTerminator()) return mergeOp.emitOpError( "can only be used in the last block of 'spv.selection' or 'spv.loop'"); @@ -2577,7 +2577,7 @@ static LogicalResult verify(spirv::ModuleOp moduleOp) { static LogicalResult verify(spirv::ReferenceOfOp referenceOfOp) { auto *specConstSym = SymbolTable::lookupNearestSymbolFrom( - referenceOfOp.getParentOp(), referenceOfOp.spec_const()); + referenceOfOp->getParentOp(), referenceOfOp.spec_const()); Type constType; auto specConstOp = dyn_cast_or_null<spirv::SpecConstantOp>(specConstSym); @@ -2792,13 +2792,13 @@ static ParseResult parseSpecConstantOp(OpAsmParser &parser, static void print(spirv::SpecConstantOp constOp, OpAsmPrinter &printer) { printer << spirv::SpecConstantOp::getOperationName() << ' '; printer.printSymbolName(constOp.sym_name()); - if (auto specID = constOp.getAttrOfType<IntegerAttr>(kSpecIdAttrName)) + if (auto specID = constOp->getAttrOfType<IntegerAttr>(kSpecIdAttrName)) printer << ' ' << kSpecIdAttrName << '(' << specID.getInt() << ')'; printer << " = " << constOp.default_value(); } static LogicalResult verify(spirv::SpecConstantOp constOp) { - if (auto specID = constOp.getAttrOfType<IntegerAttr>(kSpecIdAttrName)) + if (auto specID = constOp->getAttrOfType<IntegerAttr>(kSpecIdAttrName)) if (specID.getValue().isNegative()) return constOp.emitOpError("SpecId cannot be negative"); @@ -3383,7 +3383,7 @@ static LogicalResult verify(spirv::SpecConstantCompositeOp constOp) { auto constituentSpecConstOp = dyn_cast<spirv::SpecConstantOp>(SymbolTable::lookupNearestSymbolFrom( - constOp.getParentOp(), constituent.getValue())); + constOp->getParentOp(), constituent.getValue())); if (constituentSpecConstOp.default_value().getType() != cType.getElementType(index)) @@ -3400,7 +3400,7 @@ static LogicalResult verify(spirv::SpecConstantCompositeOp constOp) { //===----------------------------------------------------------------------===// static LogicalResult verify(spirv::YieldOp yieldOp) { - Operation *parentOp = yieldOp.getParentOp(); + Operation *parentOp = yieldOp->getParentOp(); if (!parentOp || !isa<spirv::SpecConstantOperationOp>(parentOp)) return yieldOp.emitOpError( diff --git a/mlir/lib/Dialect/SPIRV/Serialization/Serializer.cpp b/mlir/lib/Dialect/SPIRV/Serialization/Serializer.cpp index b7236c17c000..691cf973f06c 100644 --- a/mlir/lib/Dialect/SPIRV/Serialization/Serializer.cpp +++ b/mlir/lib/Dialect/SPIRV/Serialization/Serializer.cpp @@ -638,8 +638,8 @@ void Serializer::processExtension() { } void Serializer::processMemoryModel() { - uint32_t mm = module.getAttrOfType<IntegerAttr>("memory_model").getInt(); - uint32_t am = module.getAttrOfType<IntegerAttr>("addressing_model").getInt(); + uint32_t mm = module->getAttrOfType<IntegerAttr>("memory_model").getInt(); + uint32_t am = module->getAttrOfType<IntegerAttr>("addressing_model").getInt(); encodeInstructionInto(memoryModel, spirv::Opcode::OpMemoryModel, {am, mm}); } @@ -656,7 +656,7 @@ LogicalResult Serializer::processSpecConstantOp(spirv::SpecConstantOp op) { if (auto resultID = prepareConstantScalar(op.getLoc(), op.default_value(), /*isSpec=*/true)) { // Emit the OpDecorate instruction for SpecId. - if (auto specID = op.getAttrOfType<IntegerAttr>("spec_id")) { + if (auto specID = op->getAttrOfType<IntegerAttr>("spec_id")) { auto val = static_cast<uint32_t>(specID.getInt()); emitDecoration(resultID, spirv::Decoration::SpecId, {val}); } @@ -1973,7 +1973,7 @@ Serializer::processOp<spirv::ControlBarrierOp>(spirv::ControlBarrierOp op) { SmallVector<uint32_t, 3> operands; for (auto argName : argNames) { - auto argIntAttr = op.getAttrOfType<IntegerAttr>(argName); + auto argIntAttr = op->getAttrOfType<IntegerAttr>(argName); auto operand = prepareConstantInt(op.getLoc(), argIntAttr); if (!operand) { return failure(); @@ -2020,7 +2020,7 @@ Serializer::processOp<spirv::MemoryBarrierOp>(spirv::MemoryBarrierOp op) { SmallVector<uint32_t, 2> operands; for (auto argName : argNames) { - auto argIntAttr = op.getAttrOfType<IntegerAttr>(argName); + auto argIntAttr = op->getAttrOfType<IntegerAttr>(argName); auto operand = prepareConstantInt(op.getLoc(), argIntAttr); if (!operand) { return failure(); diff --git a/mlir/lib/Dialect/SPIRV/Transforms/DecorateSPIRVCompositeTypeLayoutPass.cpp b/mlir/lib/Dialect/SPIRV/Transforms/DecorateSPIRVCompositeTypeLayoutPass.cpp index 53160427cf39..282c6bbfb651 100644 --- a/mlir/lib/Dialect/SPIRV/Transforms/DecorateSPIRVCompositeTypeLayoutPass.cpp +++ b/mlir/lib/Dialect/SPIRV/Transforms/DecorateSPIRVCompositeTypeLayoutPass.cpp @@ -63,7 +63,7 @@ class SPIRVAddressOfOpLayoutInfoDecoration LogicalResult matchAndRewrite(spirv::AddressOfOp op, PatternRewriter &rewriter) const override { - auto spirvModule = op.getParentOfType<spirv::ModuleOp>(); + auto spirvModule = op->getParentOfType<spirv::ModuleOp>(); auto varName = op.variable(); auto varOp = spirvModule.lookupSymbol<spirv::GlobalVariableOp>(varName); diff --git a/mlir/lib/Dialect/SPIRV/Transforms/LowerABIAttributesPass.cpp b/mlir/lib/Dialect/SPIRV/Transforms/LowerABIAttributesPass.cpp index 24679e4d5230..12f0152079cc 100644 --- a/mlir/lib/Dialect/SPIRV/Transforms/LowerABIAttributesPass.cpp +++ b/mlir/lib/Dialect/SPIRV/Transforms/LowerABIAttributesPass.cpp @@ -27,7 +27,7 @@ static spirv::GlobalVariableOp createGlobalVarForEntryPointArgument(OpBuilder &builder, spirv::FuncOp funcOp, unsigned argIndex, spirv::InterfaceVarABIAttr abiInfo) { - auto spirvModule = funcOp.getParentOfType<spirv::ModuleOp>(); + auto spirvModule = funcOp->getParentOfType<spirv::ModuleOp>(); if (!spirvModule) return nullptr; @@ -70,7 +70,7 @@ createGlobalVarForEntryPointArgument(OpBuilder &builder, spirv::FuncOp funcOp, static LogicalResult getInterfaceVariables(spirv::FuncOp funcOp, SmallVectorImpl<Attribute> &interfaceVars) { - auto module = funcOp.getParentOfType<spirv::ModuleOp>(); + auto module = funcOp->getParentOfType<spirv::ModuleOp>(); if (!module) { return failure(); } @@ -108,13 +108,13 @@ static LogicalResult lowerEntryPointABIAttr(spirv::FuncOp funcOp, OpBuilder &builder) { auto entryPointAttrName = spirv::getEntryPointABIAttrName(); auto entryPointAttr = - funcOp.getAttrOfType<spirv::EntryPointABIAttr>(entryPointAttrName); + funcOp->getAttrOfType<spirv::EntryPointABIAttr>(entryPointAttrName); if (!entryPointAttr) { return failure(); } OpBuilder::InsertionGuard moduleInsertionGuard(builder); - auto spirvModule = funcOp.getParentOfType<spirv::ModuleOp>(); + auto spirvModule = funcOp->getParentOfType<spirv::ModuleOp>(); builder.setInsertionPoint(spirvModule.body().front().getTerminator()); // Adds the spv.EntryPointOp after collecting all the interface variables @@ -169,7 +169,7 @@ class LowerABIAttributesPass final LogicalResult ProcessInterfaceVarABI::matchAndRewrite( spirv::FuncOp funcOp, ArrayRef<Value> operands, ConversionPatternRewriter &rewriter) const { - if (!funcOp.getAttrOfType<spirv::EntryPointABIAttr>( + if (!funcOp->getAttrOfType<spirv::EntryPointABIAttr>( spirv::getEntryPointABIAttrName())) { // TODO: Non-entry point functions are not handled. return failure(); @@ -271,7 +271,7 @@ void LowerABIAttributesPass::runOnOperation() { SmallVector<spirv::FuncOp, 1> entryPointFns; auto entryPointAttrName = spirv::getEntryPointABIAttrName(); module.walk([&](spirv::FuncOp funcOp) { - if (funcOp.getAttrOfType<spirv::EntryPointABIAttr>(entryPointAttrName)) { + if (funcOp->getAttrOfType<spirv::EntryPointABIAttr>(entryPointAttrName)) { entryPointFns.push_back(funcOp); } }); diff --git a/mlir/lib/Dialect/Shape/IR/Shape.cpp b/mlir/lib/Dialect/Shape/IR/Shape.cpp index acb35b916f7e..44f897cbf505 100644 --- a/mlir/lib/Dialect/Shape/IR/Shape.cpp +++ b/mlir/lib/Dialect/Shape/IR/Shape.cpp @@ -832,7 +832,7 @@ void SizeToIndexOp::getCanonicalizationPatterns( //===----------------------------------------------------------------------===// static LogicalResult verify(shape::YieldOp op) { - auto *parentOp = op.getParentOp(); + auto *parentOp = op->getParentOp(); auto results = parentOp->getResults(); auto operands = op.getOperands(); diff --git a/mlir/lib/Dialect/Shape/Transforms/ShapeToShapeLowering.cpp b/mlir/lib/Dialect/Shape/Transforms/ShapeToShapeLowering.cpp index 49af5d7ce9a2..6190ff351ebf 100644 --- a/mlir/lib/Dialect/Shape/Transforms/ShapeToShapeLowering.cpp +++ b/mlir/lib/Dialect/Shape/Transforms/ShapeToShapeLowering.cpp @@ -34,7 +34,7 @@ NumElementsOpConverter::matchAndRewrite(NumElementsOp op, PatternRewriter &rewriter) const { auto loc = op.getLoc(); Type valueType = op.getResult().getType(); - Value init = op.getDialect() + Value init = op->getDialect() ->materializeConstant(rewriter, rewriter.getIndexAttr(1), valueType, loc) ->getResult(0); diff --git a/mlir/lib/Dialect/StandardOps/IR/Ops.cpp b/mlir/lib/Dialect/StandardOps/IR/Ops.cpp index 300b8a42656c..34c3da9b5eca 100644 --- a/mlir/lib/Dialect/StandardOps/IR/Ops.cpp +++ b/mlir/lib/Dialect/StandardOps/IR/Ops.cpp @@ -287,7 +287,7 @@ static LogicalResult verify(AllocOp op) { return verifyAllocLikeOp(op); } static LogicalResult verify(AllocaOp op) { // An alloca op needs to have an ancestor with an allocation scope trait. - if (!op.getParentWithTrait<OpTrait::AutomaticAllocationScope>()) + if (!op->getParentWithTrait<OpTrait::AutomaticAllocationScope>()) return op.emitOpError( "requires an ancestor op with AutomaticAllocationScope trait"); @@ -547,7 +547,7 @@ static void print(OpAsmPrinter &p, GenericAtomicRMWOp op) { //===----------------------------------------------------------------------===// static LogicalResult verify(AtomicYieldOp op) { - Type parentType = op.getParentOp()->getResultTypes().front(); + Type parentType = op->getParentOp()->getResultTypes().front(); Type resultType = op.result().getType(); if (parentType != resultType) return op.emitOpError() << "types mismatch between yield op: " << resultType @@ -660,9 +660,7 @@ Block *BranchOp::getDest() { return getSuccessor(); } void BranchOp::setDest(Block *block) { return setSuccessor(block); } -void BranchOp::eraseOperand(unsigned index) { - getOperation()->eraseOperand(index); -} +void BranchOp::eraseOperand(unsigned index) { (*this)->eraseOperand(index); } void BranchOp::getCanonicalizationPatterns(OwningRewritePatternList &results, MLIRContext *context) { @@ -684,7 +682,7 @@ Block *BranchOp::getSuccessorForOperands(ArrayRef<Attribute>) { return dest(); } LogicalResult CallOp::verifySymbolUses(SymbolTableCollection &symbolTable) { // Check that the callee attribute was specified. - auto fnAttr = getAttrOfType<FlatSymbolRefAttr>("callee"); + auto fnAttr = (*this)->getAttrOfType<FlatSymbolRefAttr>("callee"); if (!fnAttr) return emitOpError("requires a 'callee' symbol reference attribute"); FuncOp fn = symbolTable.lookupNearestSymbolFrom<FuncOp>(*this, fnAttr); @@ -1176,7 +1174,7 @@ static LogicalResult verify(ConstantOp &op) { // Try to find the referenced function. auto fn = - op.getParentOfType<ModuleOp>().lookupSymbol<FuncOp>(fnAttr.getValue()); + op->getParentOfType<ModuleOp>().lookupSymbol<FuncOp>(fnAttr.getValue()); if (!fn) return op.emitOpError() << "reference to undefined function '" << fnAttr.getValue() << "'"; @@ -2626,7 +2624,7 @@ OpFoldResult RankOp::fold(ArrayRef<Attribute> operands) { //===----------------------------------------------------------------------===// static LogicalResult verify(ReturnOp op) { - auto function = cast<FuncOp>(op.getParentOp()); + auto function = cast<FuncOp>(op->getParentOp()); // The operand number and types must match the function signature. const auto &results = function.getType().getResults(); diff --git a/mlir/lib/Dialect/Vector/VectorTransferOpTransforms.cpp b/mlir/lib/Dialect/Vector/VectorTransferOpTransforms.cpp index 8c00cadf7032..b7de983dd3b1 100644 --- a/mlir/lib/Dialect/Vector/VectorTransferOpTransforms.cpp +++ b/mlir/lib/Dialect/Vector/VectorTransferOpTransforms.cpp @@ -190,7 +190,7 @@ void TransferOptimization::storeToLoadForwarding(vector::TransferReadOp read) { if (lastwrite == nullptr) return; - Region *topRegion = lastwrite.getParentRegion(); + Region *topRegion = lastwrite->getParentRegion(); Operation *readAncestor = findAncestorOpInRegion(topRegion, read); assert(readAncestor && "read op should be recursively part of the top region"); diff --git a/mlir/lib/Dialect/Vector/VectorTransforms.cpp b/mlir/lib/Dialect/Vector/VectorTransforms.cpp index f15bfe901326..f7bfc66c3fdc 100644 --- a/mlir/lib/Dialect/Vector/VectorTransforms.cpp +++ b/mlir/lib/Dialect/Vector/VectorTransforms.cpp @@ -2417,7 +2417,7 @@ LogicalResult mlir::vector::splitFullAndPartialTransfer( // Top of the function `alloc` for transient storage. Value alloc; { - FuncOp funcOp = xferOp.getParentOfType<FuncOp>(); + FuncOp funcOp = xferOp->getParentOfType<FuncOp>(); OpBuilder::InsertionGuard guard(b); b.setInsertionPointToStart(&funcOp.getRegion().front()); auto shape = xferOp.getVectorType().getShape(); diff --git a/mlir/lib/Target/LLVMIR/ConvertToROCDLIR.cpp b/mlir/lib/Target/LLVMIR/ConvertToROCDLIR.cpp index 92c0cb52a395..c091c72c7702 100644 --- a/mlir/lib/Target/LLVMIR/ConvertToROCDLIR.cpp +++ b/mlir/lib/Target/LLVMIR/ConvertToROCDLIR.cpp @@ -86,7 +86,8 @@ mlir::translateModuleToROCDLIR(Operation *m, llvm::LLVMContext &llvmContext, // 2. Insert amdgpu-flat-workgroup-size(1, 1024) attribute. for (auto func : ModuleTranslation::getModuleBody(m).getOps<LLVM::LLVMFuncOp>()) { - if (!func.getAttrOfType<UnitAttr>(gpu::GPUDialect::getKernelFuncAttrName())) + if (!func->getAttrOfType<UnitAttr>( + gpu::GPUDialect::getKernelFuncAttrName())) continue; auto *llvmFunc = llvmModule->getFunction(func.getName()); diff --git a/mlir/lib/Transforms/Inliner.cpp b/mlir/lib/Transforms/Inliner.cpp index 6f144e7a0e83..64c7ca86dc1e 100644 --- a/mlir/lib/Transforms/Inliner.cpp +++ b/mlir/lib/Transforms/Inliner.cpp @@ -414,7 +414,7 @@ static bool shouldInline(ResolvedCall &resolvedCall) { // Don't allow inlining if the target is an ancestor of the call. This // prevents inlining recursively. if (resolvedCall.targetNode->getCallableRegion()->isAncestor( - resolvedCall.call.getParentRegion())) + resolvedCall.call->getParentRegion())) return false; // Otherwise, inline. diff --git a/mlir/lib/Transforms/LoopCoalescing.cpp b/mlir/lib/Transforms/LoopCoalescing.cpp index 59b2fb9333da..ed7bff36321e 100644 --- a/mlir/lib/Transforms/LoopCoalescing.cpp +++ b/mlir/lib/Transforms/LoopCoalescing.cpp @@ -25,7 +25,7 @@ struct LoopCoalescingPass : public LoopCoalescingBase<LoopCoalescingPass> { func.walk([](scf::ForOp op) { // Ignore nested loops. - if (op.getParentOfType<scf::ForOp>()) + if (op->getParentOfType<scf::ForOp>()) return; SmallVector<scf::ForOp, 4> loops; diff --git a/mlir/lib/Transforms/Utils/InliningUtils.cpp b/mlir/lib/Transforms/Utils/InliningUtils.cpp index 8b1e2fa630ec..7d18de076e4b 100644 --- a/mlir/lib/Transforms/Utils/InliningUtils.cpp +++ b/mlir/lib/Transforms/Utils/InliningUtils.cpp @@ -329,7 +329,7 @@ LogicalResult mlir::inlineCall(InlinerInterface &interface, // Builder used for any conversion operations that need to be materialized. OpBuilder castBuilder(call); Location castLoc = call.getLoc(); - auto *callInterface = interface.getInterfaceFor(call.getDialect()); + const auto *callInterface = interface.getInterfaceFor(call->getDialect()); // Map the provided call operands to the arguments of the region. BlockAndValueMapping mapper; diff --git a/mlir/lib/Transforms/Utils/LoopFusionUtils.cpp b/mlir/lib/Transforms/Utils/LoopFusionUtils.cpp index 77b6744b07a6..9759300f2e42 100644 --- a/mlir/lib/Transforms/Utils/LoopFusionUtils.cpp +++ b/mlir/lib/Transforms/Utils/LoopFusionUtils.cpp @@ -402,7 +402,7 @@ void mlir::fuseLoops(AffineForOp srcForOp, AffineForOp dstForOp, bool mlir::getLoopNestStats(AffineForOp forOpRoot, LoopNestStats *stats) { auto walkResult = forOpRoot.walk([&](AffineForOp forOp) { auto *childForOp = forOp.getOperation(); - auto *parentForOp = forOp.getParentOp(); + auto *parentForOp = forOp->getParentOp(); if (!llvm::isa<FuncOp>(parentForOp)) { if (!isa<AffineForOp>(parentForOp)) { LLVM_DEBUG(llvm::dbgs() << "Expected parent AffineForOp"); diff --git a/mlir/lib/Transforms/Utils/LoopUtils.cpp b/mlir/lib/Transforms/Utils/LoopUtils.cpp index bfbc2211e061..1f549ca9efda 100644 --- a/mlir/lib/Transforms/Utils/LoopUtils.cpp +++ b/mlir/lib/Transforms/Utils/LoopUtils.cpp @@ -163,7 +163,7 @@ LogicalResult mlir::promoteIfSingleIteration(AffineForOp forOp) { auto *parentBlock = forOp->getBlock(); if (!iv.use_empty()) { if (forOp.hasConstantLowerBound()) { - OpBuilder topBuilder(forOp.getParentOfType<FuncOp>().getBody()); + OpBuilder topBuilder(forOp->getParentOfType<FuncOp>().getBody()); auto constOp = topBuilder.create<ConstantIndexOp>( forOp.getLoc(), forOp.getConstantLowerBound()); iv.replaceAllUsesWith(constOp); @@ -1484,7 +1484,7 @@ mlir::isPerfectlyNested(ArrayRef<AffineForOp> loops) { auto enclosingLoop = loops.front(); for (auto loop : loops.drop_front()) { - auto parentForOp = dyn_cast<AffineForOp>(loop.getParentOp()); + auto parentForOp = dyn_cast<AffineForOp>(loop->getParentOp()); // parentForOp's body should be just this loop and the terminator. if (parentForOp != enclosingLoop || !hasTwoElements(parentForOp.getBody())) return false; @@ -3073,7 +3073,7 @@ mlir::separateFullTiles(MutableArrayRef<AffineForOp> inputNest, // Each successive for op has to be nested in the other. auto prevLoop = firstLoop; for (auto loop : inputNest.drop_front(1)) { - assert(loop.getParentOp() == prevLoop && "input not contiguously nested"); + assert(loop->getParentOp() == prevLoop && "input not contiguously nested"); prevLoop = loop; } diff --git a/mlir/test/lib/Dialect/Shape/TestShapeFunctions.cpp b/mlir/test/lib/Dialect/Shape/TestShapeFunctions.cpp index 688f24e5ec47..b7127c5edf32 100644 --- a/mlir/test/lib/Dialect/Shape/TestShapeFunctions.cpp +++ b/mlir/test/lib/Dialect/Shape/TestShapeFunctions.cpp @@ -57,7 +57,7 @@ void ReportShapeFnPass::runOnOperation() { module.getBodyRegion().walk([&](FuncOp func) { // Skip ops in the shape function library. - if (isa<shape::FunctionLibraryOp>(func.getParentOp())) + if (isa<shape::FunctionLibraryOp>(func->getParentOp())) return; func.walk([&](Operation *op) { remarkShapeFn(op); }); diff --git a/mlir/test/lib/Dialect/Test/TestDialect.cpp b/mlir/test/lib/Dialect/Test/TestDialect.cpp index 4e2c5b5c6a95..c7e1b7f48f43 100644 --- a/mlir/test/lib/Dialect/Test/TestDialect.cpp +++ b/mlir/test/lib/Dialect/Test/TestDialect.cpp @@ -726,7 +726,7 @@ struct TestResource : public SideEffects::Resource::Base<TestResource> { void SideEffectOp::getEffects( SmallVectorImpl<MemoryEffects::EffectInstance> &effects) { // Check for an effects attribute on the op instance. - ArrayAttr effectsAttr = getAttrOfType<ArrayAttr>("effects"); + ArrayAttr effectsAttr = (*this)->getAttrOfType<ArrayAttr>("effects"); if (!effectsAttr) return; @@ -761,7 +761,7 @@ void SideEffectOp::getEffects( void SideEffectOp::getEffects( SmallVectorImpl<TestEffects::EffectInstance> &effects) { - auto effectsAttr = getAttrOfType<AffineMapAttr>("effect_parameter"); + auto effectsAttr = (*this)->getAttrOfType<AffineMapAttr>("effect_parameter"); if (!effectsAttr) return; diff --git a/mlir/test/lib/Dialect/Test/TestOps.td b/mlir/test/lib/Dialect/Test/TestOps.td index 7547500b2835..1579e53e5277 100644 --- a/mlir/test/lib/Dialect/Test/TestOps.td +++ b/mlir/test/lib/Dialect/Test/TestOps.td @@ -321,7 +321,7 @@ def ConversionCallOp : TEST_Op<"conversion_call_op", /// Return the callee of this operation. CallInterfaceCallable getCallableForCallee() { - return getAttrOfType<SymbolRefAttr>("callee"); + return (*this)->getAttrOfType<SymbolRefAttr>("callee"); } }]; } diff --git a/mlir/test/lib/Dialect/Test/TestPatterns.cpp b/mlir/test/lib/Dialect/Test/TestPatterns.cpp index 437a72176cf6..5aab1bbfe463 100644 --- a/mlir/test/lib/Dialect/Test/TestPatterns.cpp +++ b/mlir/test/lib/Dialect/Test/TestPatterns.cpp @@ -899,7 +899,7 @@ struct TestMergeSingleBlockOps matchAndRewrite(SingleBlockImplicitTerminatorOp op, ArrayRef<Value> operands, ConversionPatternRewriter &rewriter) const final { SingleBlockImplicitTerminatorOp parentOp = - op.getParentOfType<SingleBlockImplicitTerminatorOp>(); + op->getParentOfType<SingleBlockImplicitTerminatorOp>(); if (!parentOp) return failure(); Block &innerBlock = op.region().front(); @@ -936,14 +936,14 @@ struct TestMergeBlocksPatternDriver /// Only allow `test.br` within test.merge_blocks op. target.addDynamicallyLegalOp<TestBranchOp>([&](TestBranchOp op) -> bool { - return op.getParentOfType<TestMergeBlocksOp>(); + return op->getParentOfType<TestMergeBlocksOp>(); }); /// Expect that all nested test.SingleBlockImplicitTerminator ops are /// inlined. target.addDynamicallyLegalOp<SingleBlockImplicitTerminatorOp>( [&](SingleBlockImplicitTerminatorOp op) -> bool { - return !op.getParentOfType<SingleBlockImplicitTerminatorOp>(); + return !op->getParentOfType<SingleBlockImplicitTerminatorOp>(); }); DenseSet<Operation *> unlegalizedOps; diff --git a/mlir/test/lib/IR/TestFunc.cpp b/mlir/test/lib/IR/TestFunc.cpp index cdb4663e0b36..10326ebe9631 100644 --- a/mlir/test/lib/IR/TestFunc.cpp +++ b/mlir/test/lib/IR/TestFunc.cpp @@ -68,7 +68,7 @@ struct TestFuncSetType SymbolTable symbolTable(module); for (FuncOp func : module.getOps<FuncOp>()) { - auto sym = func.getAttrOfType<FlatSymbolRefAttr>("test.set_type_from"); + auto sym = func->getAttrOfType<FlatSymbolRefAttr>("test.set_type_from"); if (!sym) continue; func.setType(symbolTable.lookup<FuncOp>(sym.getValue()).getType()); diff --git a/mlir/test/lib/Transforms/TestAffineLoopParametricTiling.cpp b/mlir/test/lib/Transforms/TestAffineLoopParametricTiling.cpp index cd4d91f60bc2..4872dcc6e77c 100644 --- a/mlir/test/lib/Transforms/TestAffineLoopParametricTiling.cpp +++ b/mlir/test/lib/Transforms/TestAffineLoopParametricTiling.cpp @@ -33,7 +33,7 @@ static void checkIfTilingParametersExist(ArrayRef<AffineForOp> band) { assert(!band.empty() && "no loops in input band"); AffineForOp topLoop = band[0]; - if (FuncOp funcOp = dyn_cast<FuncOp>(topLoop.getParentOp())) + if (FuncOp funcOp = dyn_cast<FuncOp>(topLoop->getParentOp())) assert(funcOp.getNumArguments() >= band.size() && "Too few tile sizes"); } @@ -44,7 +44,7 @@ static void checkIfTilingParametersExist(ArrayRef<AffineForOp> band) { static void getTilingParameters(ArrayRef<AffineForOp> band, SmallVectorImpl<Value> &tilingParameters) { AffineForOp topLoop = band[0]; - Region *funcOpRegion = topLoop.getParentRegion(); + Region *funcOpRegion = topLoop->getParentRegion(); unsigned nestDepth = band.size(); for (BlockArgument blockArgument : diff --git a/mlir/test/lib/Transforms/TestLinalgFusionTransforms.cpp b/mlir/test/lib/Transforms/TestLinalgFusionTransforms.cpp index 1591a7435c72..046fad43c3bf 100644 --- a/mlir/test/lib/Transforms/TestLinalgFusionTransforms.cpp +++ b/mlir/test/lib/Transforms/TestLinalgFusionTransforms.cpp @@ -192,7 +192,7 @@ struct TestLinalgGreedyFusion pm.addPass(createLoopInvariantCodeMotionPass()); pm.addPass(createCanonicalizerPass()); pm.addPass(createCSEPass()); - LogicalResult res = pm.run(getFunction().getParentOfType<ModuleOp>()); + LogicalResult res = pm.run(getFunction()->getParentOfType<ModuleOp>()); if (failed(res)) this->signalPassFailure(); } diff --git a/mlir/test/lib/Transforms/TestLoopMapping.cpp b/mlir/test/lib/Transforms/TestLoopMapping.cpp index d373b3933128..591fac32698f 100644 --- a/mlir/test/lib/Transforms/TestLoopMapping.cpp +++ b/mlir/test/lib/Transforms/TestLoopMapping.cpp @@ -43,7 +43,7 @@ class TestLoopMappingPass func.walk([&processorIds, &numProcessors](scf::ForOp op) { // Ignore nested loops. - if (op.getParentRegion()->getParentOfType<scf::ForOp>()) + if (op->getParentRegion()->getParentOfType<scf::ForOp>()) return; mapLoopToProcessorIds(op, processorIds, numProcessors); }); diff --git a/mlir/test/lib/Transforms/TestLoopParametricTiling.cpp b/mlir/test/lib/Transforms/TestLoopParametricTiling.cpp index 264910182335..095a3f1e7ef4 100644 --- a/mlir/test/lib/Transforms/TestLoopParametricTiling.cpp +++ b/mlir/test/lib/Transforms/TestLoopParametricTiling.cpp @@ -35,7 +35,7 @@ class SimpleParametricLoopTilingPass FuncOp func = getFunction(); func.walk([this](scf::ForOp op) { // Ignore nested loops. - if (op.getParentRegion()->getParentOfType<scf::ForOp>()) + if (op->getParentRegion()->getParentOfType<scf::ForOp>()) return; extractFixedOuterLoops(op, sizes); }); diff --git a/mlir/test/mlir-tblgen/op-attribute.td b/mlir/test/mlir-tblgen/op-attribute.td index 171b5f575778..e170d9f9fe0a 100644 --- a/mlir/test/mlir-tblgen/op-attribute.td +++ b/mlir/test/mlir-tblgen/op-attribute.td @@ -71,11 +71,11 @@ def AOp : NS_Op<"a_op", []> { // --- // DEF: void AOp::aAttrAttr(some-attr-kind attr) { -// DEF-NEXT: this->getOperation()->setAttr("aAttr", attr); +// DEF-NEXT: (*this)->setAttr("aAttr", attr); // DEF: void AOp::bAttrAttr(some-attr-kind attr) { -// DEF-NEXT: this->getOperation()->setAttr("bAttr", attr); +// DEF-NEXT: (*this)->setAttr("bAttr", attr); // DEF: void AOp::cAttrAttr(some-attr-kind attr) { -// DEF-NEXT: this->getOperation()->setAttr("cAttr", attr); +// DEF-NEXT: (*this)->setAttr("cAttr", attr); // Test build methods // --- diff --git a/mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp b/mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp index ccfb13fa3436..04bc10d338d7 100644 --- a/mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp +++ b/mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp @@ -90,7 +90,8 @@ const char *adapterSegmentSizeAttrInitCode = R"( auto sizeAttr = odsAttrs.get("{0}").cast<::mlir::DenseIntElementsAttr>(); )"; const char *opSegmentSizeAttrInitCode = R"( - auto sizeAttr = getAttrOfType<::mlir::DenseIntElementsAttr>("{0}"); + auto sizeAttr = + getOperation()->getAttrOfType<::mlir::DenseIntElementsAttr>("{0}"); )"; const char *attrSizedSegmentValueRangeCalcCode = R"( unsigned start = 0; @@ -614,7 +615,7 @@ void OpEmitter::genAttrSetters() { if (!method) return; auto &body = method->body(); - body << " this->getOperation()->setAttr(\"" << name << "\", attr);"; + body << " (*this)->setAttr(\"" << name << "\", attr);"; }; for (auto &namedAttr : op.getAttributes()) { _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits