[llvm-branch-commits] [flang] 0bf4a82 - [mlir] Use mlir::OpState::operator->() to get to methods of mlir::Operation. This is a preparation step to remove the corresponding methods from OpState.
Christian Sigg via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Wed Dec 9 03:15:40 PST 2020
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()) {
More information about the llvm-branch-commits
mailing list