summaryrefslogtreecommitdiffstats
path: root/mlir/lib/Dialect/GPU/IR/GPUDialect.cpp
diff options
context:
space:
mode:
authorRiver Riddle <riverriddle@google.com>2020-01-11 08:54:04 -0800
committerRiver Riddle <riverriddle@google.com>2020-01-11 08:54:39 -0800
commit2bdf33cc4c733342fc83081bc7410ac5e9a24f55 (patch)
tree3306d769c2bbabda1060928e0cea79d021ea9da2 /mlir/lib/Dialect/GPU/IR/GPUDialect.cpp
parent1d641daf260308815d014d1bf1b424a1ed1e7277 (diff)
downloadbcm5719-llvm-2bdf33cc4c733342fc83081bc7410ac5e9a24f55.tar.gz
bcm5719-llvm-2bdf33cc4c733342fc83081bc7410ac5e9a24f55.zip
[mlir] NFC: Remove Value::operator* and Value::operator-> now that Value is properly value-typed.
Summary: These were temporary methods used to simplify the transition. Reviewed By: antiagainst Differential Revision: https://reviews.llvm.org/D72548
Diffstat (limited to 'mlir/lib/Dialect/GPU/IR/GPUDialect.cpp')
-rw-r--r--mlir/lib/Dialect/GPU/IR/GPUDialect.cpp50
1 files changed, 20 insertions, 30 deletions
diff --git a/mlir/lib/Dialect/GPU/IR/GPUDialect.cpp b/mlir/lib/Dialect/GPU/IR/GPUDialect.cpp
index 32d7fae65d9..e750d0fefff 100644
--- a/mlir/lib/Dialect/GPU/IR/GPUDialect.cpp
+++ b/mlir/lib/Dialect/GPU/IR/GPUDialect.cpp
@@ -110,7 +110,7 @@ LogicalResult GPUDialect::verifyOperationAttribute(Operation *op,
// to encode target module" has landed.
// auto functionType = kernelFunc.getType();
// for (unsigned i = 0; i < numKernelFuncArgs; ++i) {
- // if (getKernelOperand(i)->getType() != functionType.getInput(i)) {
+ // if (getKernelOperand(i).getType() != functionType.getInput(i)) {
// return emitOpError("type of function argument ")
// << i << " does not match";
// }
@@ -137,7 +137,7 @@ static LogicalResult verifyAllReduce(gpu::AllReduceOp allReduce) {
if (allReduce.body().front().getNumArguments() != 2)
return allReduce.emitError("expected two region arguments");
for (auto argument : allReduce.body().front().getArguments()) {
- if (argument->getType() != allReduce.getType())
+ if (argument.getType() != allReduce.getType())
return allReduce.emitError("incorrect region argument type");
}
unsigned yieldCount = 0;
@@ -145,7 +145,7 @@ static LogicalResult verifyAllReduce(gpu::AllReduceOp allReduce) {
if (auto yield = dyn_cast<gpu::YieldOp>(block.getTerminator())) {
if (yield.getNumOperands() != 1)
return allReduce.emitError("expected one gpu.yield operand");
- if (yield.getOperand(0)->getType() != allReduce.getType())
+ if (yield.getOperand(0).getType() != allReduce.getType())
return allReduce.emitError("incorrect gpu.yield type");
++yieldCount;
}
@@ -157,8 +157,8 @@ static LogicalResult verifyAllReduce(gpu::AllReduceOp allReduce) {
}
static LogicalResult verifyShuffleOp(gpu::ShuffleOp shuffleOp) {
- auto type = shuffleOp.value()->getType();
- if (shuffleOp.result()->getType() != type) {
+ auto type = shuffleOp.value().getType();
+ if (shuffleOp.result().getType() != type) {
return shuffleOp.emitOpError()
<< "requires the same type for value operand and result";
}
@@ -170,10 +170,8 @@ static LogicalResult verifyShuffleOp(gpu::ShuffleOp shuffleOp) {
}
static void printShuffleOp(OpAsmPrinter &p, ShuffleOp op) {
- p << ShuffleOp::getOperationName() << ' ';
- p.printOperands(op.getOperands());
- p << ' ' << op.mode() << " : ";
- p.printType(op.value()->getType());
+ p << ShuffleOp::getOperationName() << ' ' << op.getOperands() << ' '
+ << op.mode() << " : " << op.value().getType();
}
static ParseResult parseShuffleOp(OpAsmParser &parser, OperationState &state) {
@@ -201,14 +199,6 @@ static ParseResult parseShuffleOp(OpAsmParser &parser, OperationState &state) {
// LaunchOp
//===----------------------------------------------------------------------===//
-static SmallVector<Type, 4> getValueTypes(ValueRange values) {
- SmallVector<Type, 4> types;
- types.reserve(values.size());
- for (Value v : values)
- types.push_back(v->getType());
- return types;
-}
-
void LaunchOp::build(Builder *builder, OperationState &result, Value gridSizeX,
Value gridSizeY, Value gridSizeZ, Value blockSizeX,
Value blockSizeY, Value blockSizeZ, ValueRange operands) {
@@ -224,7 +214,7 @@ void LaunchOp::build(Builder *builder, OperationState &result, Value gridSizeX,
Block *body = new Block();
body->addArguments(
std::vector<Type>(kNumConfigRegionAttributes, builder->getIndexType()));
- body->addArguments(getValueTypes(operands));
+ body->addArguments(llvm::to_vector<4>(operands.getTypes()));
kernelRegion->push_back(body);
}
@@ -309,10 +299,10 @@ LogicalResult verify(LaunchOp op) {
// where %size-* and %iter-* will correspond to the body region arguments.
static void printSizeAssignment(OpAsmPrinter &p, KernelDim3 size,
ValueRange operands, KernelDim3 ids) {
- p << '(' << *ids.x << ", " << *ids.y << ", " << *ids.z << ") in (";
- p << *size.x << " = " << *operands[0] << ", ";
- p << *size.y << " = " << *operands[1] << ", ";
- p << *size.z << " = " << *operands[2] << ')';
+ p << '(' << ids.x << ", " << ids.y << ", " << ids.z << ") in (";
+ p << size.x << " = " << operands[0] << ", ";
+ p << size.y << " = " << operands[1] << ", ";
+ p << size.z << " = " << operands[2] << ')';
}
void printLaunchOp(OpAsmPrinter &p, LaunchOp op) {
@@ -335,8 +325,8 @@ void printLaunchOp(OpAsmPrinter &p, LaunchOp op) {
p << ' ' << op.getArgsKeyword() << '(';
Block *entryBlock = &op.body().front();
interleaveComma(llvm::seq<int>(0, operands.size()), p, [&](int i) {
- p << *entryBlock->getArgument(LaunchOp::kNumConfigRegionAttributes + i)
- << " = " << *operands[i];
+ p << entryBlock->getArgument(LaunchOp::kNumConfigRegionAttributes + i)
+ << " = " << operands[i];
});
p << ") ";
}
@@ -486,14 +476,14 @@ class PropagateConstantBounds : public OpRewritePattern<LaunchOp> {
for (unsigned i = operands.size(); i > 0; --i) {
unsigned index = i - 1;
Value operand = operands[index];
- if (!isa_and_nonnull<ConstantOp>(operand->getDefiningOp()))
+ if (!isa_and_nonnull<ConstantOp>(operand.getDefiningOp()))
continue;
found = true;
Value internalConstant =
- rewriter.clone(*operand->getDefiningOp())->getResult(0);
+ rewriter.clone(*operand.getDefiningOp())->getResult(0);
Value kernelArg = *std::next(kernelArgs.begin(), index);
- kernelArg->replaceAllUsesWith(internalConstant);
+ kernelArg.replaceAllUsesWith(internalConstant);
launchOp.eraseKernelArgument(index);
}
@@ -740,7 +730,7 @@ static void printAttributions(OpAsmPrinter &p, StringRef keyword,
p << ' ' << keyword << '(';
interleaveComma(values, p,
- [&p](BlockArgument v) { p << *v << " : " << v->getType(); });
+ [&p](BlockArgument v) { p << v << " : " << v.getType(); });
p << ')';
}
@@ -790,7 +780,7 @@ static LogicalResult verifyAttributions(Operation *op,
ArrayRef<BlockArgument> attributions,
unsigned memorySpace) {
for (Value v : attributions) {
- auto type = v->getType().dyn_cast<MemRefType>();
+ auto type = v.getType().dyn_cast<MemRefType>();
if (!type)
return op->emitOpError() << "expected memref type in attribution";
@@ -814,7 +804,7 @@ LogicalResult GPUFuncOp::verifyBody() {
ArrayRef<Type> funcArgTypes = getType().getInputs();
for (unsigned i = 0; i < numFuncArguments; ++i) {
- Type blockArgType = front().getArgument(i)->getType();
+ Type blockArgType = front().getArgument(i).getType();
if (funcArgTypes[i] != blockArgType)
return emitOpError() << "expected body region argument #" << i
<< " to be of type " << funcArgTypes[i] << ", got "
OpenPOWER on IntegriCloud