aboutsummaryrefslogtreecommitdiff
path: root/mlir/lib/Conversion/MathToLibm/MathToLibm.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'mlir/lib/Conversion/MathToLibm/MathToLibm.cpp')
-rw-r--r--mlir/lib/Conversion/MathToLibm/MathToLibm.cpp21
1 files changed, 11 insertions, 10 deletions
diff --git a/mlir/lib/Conversion/MathToLibm/MathToLibm.cpp b/mlir/lib/Conversion/MathToLibm/MathToLibm.cpp
index a0ce7d3..f7c0d4f 100644
--- a/mlir/lib/Conversion/MathToLibm/MathToLibm.cpp
+++ b/mlir/lib/Conversion/MathToLibm/MathToLibm.cpp
@@ -84,20 +84,21 @@ VecOpToScalarOp<Op>::matchAndRewrite(Op op, PatternRewriter &rewriter) const {
auto shape = vecType.getShape();
int64_t numElements = vecType.getNumElements();
- Value result = rewriter.create<arith::ConstantOp>(
- loc, DenseElementsAttr::get(
- vecType, FloatAttr::get(vecType.getElementType(), 0.0)));
+ Value result = arith::ConstantOp::create(
+ rewriter, loc,
+ DenseElementsAttr::get(vecType,
+ FloatAttr::get(vecType.getElementType(), 0.0)));
SmallVector<int64_t> strides = computeStrides(shape);
for (auto linearIndex = 0; linearIndex < numElements; ++linearIndex) {
SmallVector<int64_t> positions = delinearize(linearIndex, strides);
SmallVector<Value> operands;
for (auto input : op->getOperands())
operands.push_back(
- rewriter.create<vector::ExtractOp>(loc, input, positions));
+ vector::ExtractOp::create(rewriter, loc, input, positions));
Value scalarOp =
- rewriter.create<Op>(loc, vecType.getElementType(), operands);
+ Op::create(rewriter, loc, vecType.getElementType(), operands);
result =
- rewriter.create<vector::InsertOp>(loc, scalarOp, result, positions);
+ vector::InsertOp::create(rewriter, loc, scalarOp, result, positions);
}
rewriter.replaceOp(op, {result});
return success();
@@ -114,9 +115,9 @@ PromoteOpToF32<Op>::matchAndRewrite(Op op, PatternRewriter &rewriter) const {
auto f32 = rewriter.getF32Type();
auto extendedOperands = llvm::to_vector(
llvm::map_range(op->getOperands(), [&](Value operand) -> Value {
- return rewriter.create<arith::ExtFOp>(loc, f32, operand);
+ return arith::ExtFOp::create(rewriter, loc, f32, operand);
}));
- auto newOp = rewriter.create<Op>(loc, f32, extendedOperands);
+ auto newOp = Op::create(rewriter, loc, f32, extendedOperands);
rewriter.replaceOpWithNewOp<arith::TruncFOp>(op, opType, newOp);
return success();
}
@@ -139,8 +140,8 @@ ScalarOpToLibmCall<Op>::matchAndRewrite(Op op,
rewriter.setInsertionPointToStart(&module->getRegion(0).front());
auto opFunctionTy = FunctionType::get(
rewriter.getContext(), op->getOperandTypes(), op->getResultTypes());
- opFunc = rewriter.create<func::FuncOp>(rewriter.getUnknownLoc(), name,
- opFunctionTy);
+ opFunc = func::FuncOp::create(rewriter, rewriter.getUnknownLoc(), name,
+ opFunctionTy);
opFunc.setPrivate();
// By definition Math dialect operations imply LLVM's "readnone"