summaryrefslogtreecommitdiffstats
path: root/mlir/lib/Dialect/FxpMathOps/Transforms/LowerUniformRealMath.cpp
diff options
context:
space:
mode:
authorRiver Riddle <riverriddle@google.com>2019-12-22 21:59:55 -0800
committerA. Unique TensorFlower <gardener@tensorflow.org>2019-12-22 22:00:23 -0800
commit35807bc4c5c9d8abc31ba0b2f955a82abf276e12 (patch)
treed083d37d993a774239081509a50e3e6c65366421 /mlir/lib/Dialect/FxpMathOps/Transforms/LowerUniformRealMath.cpp
parent22954a0e408afde1d8686dffb3a3dcab107a2cd3 (diff)
downloadbcm5719-llvm-35807bc4c5c9d8abc31ba0b2f955a82abf276e12.tar.gz
bcm5719-llvm-35807bc4c5c9d8abc31ba0b2f955a82abf276e12.zip
NFC: Introduce new ValuePtr/ValueRef typedefs to simplify the transition to Value being value-typed.
This is an initial step to refactoring the representation of OpResult as proposed in: https://groups.google.com/a/tensorflow.org/g/mlir/c/XXzzKhqqF_0/m/v6bKb08WCgAJ This change will make it much simpler to incrementally transition all of the existing code to use value-typed semantics. PiperOrigin-RevId: 286844725
Diffstat (limited to 'mlir/lib/Dialect/FxpMathOps/Transforms/LowerUniformRealMath.cpp')
-rw-r--r--mlir/lib/Dialect/FxpMathOps/Transforms/LowerUniformRealMath.cpp64
1 files changed, 32 insertions, 32 deletions
diff --git a/mlir/lib/Dialect/FxpMathOps/Transforms/LowerUniformRealMath.cpp b/mlir/lib/Dialect/FxpMathOps/Transforms/LowerUniformRealMath.cpp
index 3982a6a4713..e1951ff900b 100644
--- a/mlir/lib/Dialect/FxpMathOps/Transforms/LowerUniformRealMath.cpp
+++ b/mlir/lib/Dialect/FxpMathOps/Transforms/LowerUniformRealMath.cpp
@@ -46,9 +46,9 @@ struct LowerUniformCastsPass : public FunctionPass<LowerUniformCastsPass> {
// Dequantize
//===----------------------------------------------------------------------===//
-static Value *emitUniformPerLayerDequantize(Location loc, Value *input,
- UniformQuantizedType elementType,
- PatternRewriter &rewriter) {
+static ValuePtr emitUniformPerLayerDequantize(Location loc, ValuePtr input,
+ UniformQuantizedType elementType,
+ PatternRewriter &rewriter) {
// Pre-conditions.
if (!elementType.isSigned()) {
// TODO: Support unsigned storage type.
@@ -71,7 +71,7 @@ static Value *emitUniformPerLayerDequantize(Location loc, Value *input,
// Apply zero-point offset.
if (elementType.getZeroPoint() != 0) {
- Value *negZeroPointConst = rewriter.create<ConstantOp>(
+ ValuePtr negZeroPointConst = rewriter.create<ConstantOp>(
loc, broadcastScalarConstIntValue(intermediateType,
-elementType.getZeroPoint()));
input = rewriter.create<AddIOp>(loc, input, negZeroPointConst);
@@ -81,14 +81,14 @@ static Value *emitUniformPerLayerDequantize(Location loc, Value *input,
input = rewriter.create<ConvertISToFOp>(loc, realType, input);
// Mul by scale.
- Value *scaleConst = rewriter.create<ConstantOp>(
+ ValuePtr scaleConst = rewriter.create<ConstantOp>(
loc, broadcastScalarConstFloatValue(realType,
APFloat(elementType.getScale())));
return rewriter.create<MulFOp>(loc, input, scaleConst);
}
-static Value *
-emitUniformPerAxisDequantize(Location loc, Value *input,
+static ValuePtr
+emitUniformPerAxisDequantize(Location loc, ValuePtr input,
UniformQuantizedPerAxisType elementType,
PatternRewriter &rewriter) {
// TODO: Support per-axis dequantize.
@@ -97,8 +97,8 @@ emitUniformPerAxisDequantize(Location loc, Value *input,
return nullptr;
}
-static Value *emitDequantize(Location loc, Value *input,
- PatternRewriter &rewriter) {
+static ValuePtr emitDequantize(Location loc, ValuePtr input,
+ PatternRewriter &rewriter) {
Type inputType = input->getType();
QuantizedType qElementType =
QuantizedType::getQuantizedElementType(inputType);
@@ -133,7 +133,7 @@ struct UniformDequantizePattern : public OpRewritePattern<DequantizeCastOp> {
return matchFailure();
}
- Value *dequantizedValue = emitDequantize(op.getLoc(), op.arg(), rewriter);
+ ValuePtr dequantizedValue = emitDequantize(op.getLoc(), op.arg(), rewriter);
if (!dequantizedValue) {
return matchFailure();
}
@@ -170,14 +170,14 @@ tryRewriteAffineAddEwIsomorphicSigned(const UniformBinaryOpInfo &info,
castElementType(info.resultStorageType, intermediateElementType);
// Cast operands to storage type.
- Value *lhsValue = rewriter
- .create<StorageCastOp>(info.op->getLoc(),
- info.lhsStorageType, info.lhs)
- .getResult();
- Value *rhsValue = rewriter
- .create<StorageCastOp>(info.op->getLoc(),
- info.rhsStorageType, info.rhs)
- .getResult();
+ ValuePtr lhsValue = rewriter
+ .create<StorageCastOp>(info.op->getLoc(),
+ info.lhsStorageType, info.lhs)
+ .getResult();
+ ValuePtr rhsValue = rewriter
+ .create<StorageCastOp>(info.op->getLoc(),
+ info.rhsStorageType, info.rhs)
+ .getResult();
// Cast to the intermediate sized type.
lhsValue = rewriter.create<ConvertISOp>(info.op->getLoc(), intermediateType,
@@ -186,7 +186,7 @@ tryRewriteAffineAddEwIsomorphicSigned(const UniformBinaryOpInfo &info,
rhsValue);
// Add.
- Value *resultValue =
+ ValuePtr resultValue =
rewriter.create<AddIOp>(info.op->getLoc(), lhsValue, rhsValue);
// Zero point offset adjustment.
@@ -194,7 +194,7 @@ tryRewriteAffineAddEwIsomorphicSigned(const UniformBinaryOpInfo &info,
// zpOffset = -zp
int zpOffset = -1 * info.resultType.getZeroPoint();
if (zpOffset != 0) {
- Value *zpOffsetConst = rewriter.create<ConstantOp>(
+ ValuePtr zpOffsetConst = rewriter.create<ConstantOp>(
info.op->getLoc(),
broadcastScalarConstIntValue(intermediateType, zpOffset));
resultValue =
@@ -246,14 +246,14 @@ tryRewriteAffineMulEwSigned(const UniformBinaryOpInfo &info,
castElementType(info.resultStorageType, intermediateElementType);
// Cast operands to storage type.
- Value *lhsValue = rewriter
- .create<StorageCastOp>(info.op->getLoc(),
- info.lhsStorageType, info.lhs)
- .getResult();
- Value *rhsValue = rewriter
- .create<StorageCastOp>(info.op->getLoc(),
- info.rhsStorageType, info.rhs)
- .getResult();
+ ValuePtr lhsValue = rewriter
+ .create<StorageCastOp>(info.op->getLoc(),
+ info.lhsStorageType, info.lhs)
+ .getResult();
+ ValuePtr rhsValue = rewriter
+ .create<StorageCastOp>(info.op->getLoc(),
+ info.rhsStorageType, info.rhs)
+ .getResult();
// Cast to the intermediate sized type.
lhsValue = rewriter.create<ConvertISOp>(info.op->getLoc(), intermediateType,
@@ -263,7 +263,7 @@ tryRewriteAffineMulEwSigned(const UniformBinaryOpInfo &info,
// Apply argument zeroPoints.
if (info.lhsType.getZeroPoint() != 0) {
- Value *zpOffsetConst = rewriter.create<ConstantOp>(
+ ValuePtr zpOffsetConst = rewriter.create<ConstantOp>(
info.op->getLoc(), broadcastScalarConstIntValue(
intermediateType, -info.lhsType.getZeroPoint()));
lhsValue =
@@ -271,7 +271,7 @@ tryRewriteAffineMulEwSigned(const UniformBinaryOpInfo &info,
}
if (info.rhsType.getZeroPoint() != 0) {
- Value *zpOffsetConst = rewriter.create<ConstantOp>(
+ ValuePtr zpOffsetConst = rewriter.create<ConstantOp>(
info.op->getLoc(), broadcastScalarConstIntValue(
intermediateType, -info.rhsType.getZeroPoint()));
rhsValue =
@@ -279,7 +279,7 @@ tryRewriteAffineMulEwSigned(const UniformBinaryOpInfo &info,
}
// Mul.
- Value *resultValue =
+ ValuePtr resultValue =
rewriter.create<MulIOp>(info.op->getLoc(), lhsValue, rhsValue);
// Scale output.
@@ -293,7 +293,7 @@ tryRewriteAffineMulEwSigned(const UniformBinaryOpInfo &info,
// Zero point offset adjustment.
if (info.resultType.getZeroPoint() != 0) {
- Value *zpOffsetConst = rewriter.create<ConstantOp>(
+ ValuePtr zpOffsetConst = rewriter.create<ConstantOp>(
info.op->getLoc(),
broadcastScalarConstIntValue(intermediateType,
info.resultType.getZeroPoint()));
OpenPOWER on IntegriCloud