diff options
author | River Riddle <riverriddle@google.com> | 2019-12-23 14:45:01 -0800 |
---|---|---|
committer | A. Unique TensorFlower <gardener@tensorflow.org> | 2019-12-23 16:36:53 -0800 |
commit | e62a69561fb9d7b1013d2853da68d79a7907fead (patch) | |
tree | 0dd059094cbfb8d904513abcdc1fbe8cfa89bb09 /mlir/lib/Dialect/Linalg/Transforms/LinalgToLoops.cpp | |
parent | 5d5bd2e1da29d976cb125dbb3cd097a5e42b2be4 (diff) | |
download | bcm5719-llvm-e62a69561fb9d7b1013d2853da68d79a7907fead.tar.gz bcm5719-llvm-e62a69561fb9d7b1013d2853da68d79a7907fead.zip |
NFC: Replace ValuePtr with Value and remove it now that Value is value-typed.
ValuePtr was a temporary typedef during the transition to a value-typed Value.
PiperOrigin-RevId: 286945714
Diffstat (limited to 'mlir/lib/Dialect/Linalg/Transforms/LinalgToLoops.cpp')
-rw-r--r-- | mlir/lib/Dialect/Linalg/Transforms/LinalgToLoops.cpp | 46 |
1 files changed, 21 insertions, 25 deletions
diff --git a/mlir/lib/Dialect/Linalg/Transforms/LinalgToLoops.cpp b/mlir/lib/Dialect/Linalg/Transforms/LinalgToLoops.cpp index 0f333791dd7..d7cc4a86d21 100644 --- a/mlir/lib/Dialect/Linalg/Transforms/LinalgToLoops.cpp +++ b/mlir/lib/Dialect/Linalg/Transforms/LinalgToLoops.cpp @@ -40,7 +40,7 @@ using edsc::op::operator==; static SmallVector<ValueHandle, 8> makeCanonicalAffineApplies(OpBuilder &b, Location loc, AffineMap map, - ArrayRef<ValuePtr> vals) { + ArrayRef<Value> vals) { assert(map.getNumSymbols() == 0); assert(map.getNumInputs() == vals.size()); SmallVector<ValueHandle, 8> res; @@ -48,35 +48,34 @@ makeCanonicalAffineApplies(OpBuilder &b, Location loc, AffineMap map, auto dims = map.getNumDims(); for (auto e : map.getResults()) { auto exprMap = AffineMap::get(dims, 0, e); - SmallVector<ValuePtr, 4> operands(vals.begin(), vals.end()); + SmallVector<Value, 4> operands(vals.begin(), vals.end()); canonicalizeMapAndOperands(&exprMap, &operands); res.push_back(affine_apply(exprMap, operands)); } return res; } -static SmallVector<ValuePtr, 4> permuteIvs(ArrayRef<ValuePtr> ivs, - Optional<AffineMap> permutation) { +static SmallVector<Value, 4> permuteIvs(ArrayRef<Value> ivs, + Optional<AffineMap> permutation) { return permutation ? applyMapToValues(ScopedContext::getBuilder(), ScopedContext::getLocation(), permutation.getValue(), ivs) - : SmallVector<ValuePtr, 4>(ivs.begin(), ivs.end()); + : SmallVector<Value, 4>(ivs.begin(), ivs.end()); } // Creates a number of ranges equal to the number of results in `map`. // The returned ranges correspond to the loop ranges, in the proper order, for // which new loops will be created. -static SmallVector<ValuePtr, 4> emitLoopRanges(OpBuilder &b, Location loc, - AffineMap map, - ArrayRef<ValuePtr> allViewSizes); -SmallVector<ValuePtr, 4> emitLoopRanges(OpBuilder &b, Location loc, - AffineMap map, - ArrayRef<ValuePtr> allViewSizes) { +static SmallVector<Value, 4> emitLoopRanges(OpBuilder &b, Location loc, + AffineMap map, + ArrayRef<Value> allViewSizes); +SmallVector<Value, 4> emitLoopRanges(OpBuilder &b, Location loc, AffineMap map, + ArrayRef<Value> allViewSizes) { // Apply `map` to get view sizes in loop order. auto sizes = applyMapToValues(b, loc, map, allViewSizes); // Create a new range with the applied tile sizes. ScopedContext scope(b, loc); - SmallVector<ValuePtr, 4> res; + SmallVector<Value, 4> res; for (unsigned idx = 0, e = map.getNumResults(); idx < e; ++idx) { res.push_back(range(constant_index(0), sizes[idx], constant_index(1))); } @@ -89,8 +88,7 @@ class LinalgScopedEmitter {}; template <typename IndexedValueType> class LinalgScopedEmitter<IndexedValueType, CopyOp> { public: - static void emitScalarImplementation(ArrayRef<ValuePtr> allIvs, - CopyOp copyOp) { + static void emitScalarImplementation(ArrayRef<Value> allIvs, CopyOp copyOp) { auto nPar = copyOp.getNumParallelLoops(); assert(nPar == allIvs.size()); auto inputIvs = @@ -112,8 +110,7 @@ public: template <typename IndexedValueType> class LinalgScopedEmitter<IndexedValueType, FillOp> { public: - static void emitScalarImplementation(ArrayRef<ValuePtr> allIvs, - FillOp fillOp) { + static void emitScalarImplementation(ArrayRef<Value> allIvs, FillOp fillOp) { auto nPar = fillOp.getNumParallelLoops(); assert(nPar == allIvs.size()); auto ivs = @@ -129,7 +126,7 @@ public: template <typename IndexedValueType> class LinalgScopedEmitter<IndexedValueType, DotOp> { public: - static void emitScalarImplementation(ArrayRef<ValuePtr> allIvs, DotOp dotOp) { + static void emitScalarImplementation(ArrayRef<Value> allIvs, DotOp dotOp) { assert(allIvs.size() == 1); IndexHandle r_i(allIvs[0]); IndexedValueType A(dotOp.getInput(0)), B(dotOp.getInput(1)), @@ -142,7 +139,7 @@ public: template <typename IndexedValueType> class LinalgScopedEmitter<IndexedValueType, MatvecOp> { public: - static void emitScalarImplementation(ArrayRef<ValuePtr> allIvs, + static void emitScalarImplementation(ArrayRef<Value> allIvs, MatvecOp matvecOp) { assert(allIvs.size() == 2); IndexHandle i(allIvs[0]), r_j(allIvs[1]); @@ -156,7 +153,7 @@ public: template <typename IndexedValueType> class LinalgScopedEmitter<IndexedValueType, MatmulOp> { public: - static void emitScalarImplementation(ArrayRef<ValuePtr> allIvs, + static void emitScalarImplementation(ArrayRef<Value> allIvs, MatmulOp matmulOp) { assert(allIvs.size() == 3); IndexHandle i(allIvs[0]), j(allIvs[1]), r_k(allIvs[2]); @@ -170,8 +167,7 @@ public: template <typename IndexedValueType> class LinalgScopedEmitter<IndexedValueType, ConvOp> { public: - static void emitScalarImplementation(ArrayRef<ValuePtr> allIvs, - ConvOp convOp) { + static void emitScalarImplementation(ArrayRef<Value> allIvs, ConvOp convOp) { auto b = ScopedContext::getBuilder(); auto loc = ScopedContext::getLocation(); auto maps = loopToOperandRangesMaps(convOp); @@ -220,14 +216,14 @@ public: template <typename IndexedValueType> class LinalgScopedEmitter<IndexedValueType, GenericOp> { public: - static void emitScalarImplementation(ArrayRef<ValuePtr> allIvs, + static void emitScalarImplementation(ArrayRef<Value> allIvs, GenericOp genericOp) { auto b = ScopedContext::getBuilder(); auto loc = ScopedContext::getLocation(); using edsc::intrinsics::detail::ValueHandleArray; unsigned nInputs = genericOp.getNumInputs(); unsigned nOutputs = genericOp.getNumOutputs(); - SmallVector<ValuePtr, 4> indexedValues(nInputs + nOutputs); + SmallVector<Value, 4> indexedValues(nInputs + nOutputs); // 1.a. Emit std_load from input views. for (unsigned i = 0; i < nInputs; ++i) { @@ -315,7 +311,7 @@ public: template <typename IndexedValueType> class LinalgScopedEmitter<IndexedValueType, IndexedGenericOp> { public: - static void emitScalarImplementation(ArrayRef<ValuePtr> allIvs, + static void emitScalarImplementation(ArrayRef<Value> allIvs, IndexedGenericOp indexedGenericOp) { auto b = ScopedContext::getBuilder(); auto loc = ScopedContext::getLocation(); @@ -323,7 +319,7 @@ public: unsigned nInputs = indexedGenericOp.getNumInputs(); unsigned nOutputs = indexedGenericOp.getNumOutputs(); unsigned nLoops = allIvs.size(); - SmallVector<ValuePtr, 4> indexedValues(nLoops + nInputs + nOutputs); + SmallVector<Value, 4> indexedValues(nLoops + nInputs + nOutputs); for (unsigned i = 0; i < nLoops; ++i) { indexedValues[i] = allIvs[i]; |