Skip to content

Commit a2dbc53

Browse files
authored
Integrate llvm-project@bb1f32ded0b7 (#20494)
The changes are caused by: * llvm/llvm-project#134206 Reverts: * llvm/llvm-project#125883. This breaks the RISC-V test: `e2e/math/math_ops_llvm-cpu.mlir`. --------- Signed-off-by: Jakub Kuderski <[email protected]>
1 parent 967810b commit a2dbc53

File tree

9 files changed

+35
-30
lines changed

9 files changed

+35
-30
lines changed

compiler/src/iree/compiler/Codegen/Common/FlattenMemRefSubspanPass.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -616,8 +616,8 @@ struct LinearizeTransferWriteIndices final
616616
}
617617

618618
rewriter.replaceOpWithNewOp<vector::TransferWriteOp>(
619-
transferWriteOp, adaptor.getVector(), adaptor.getSource(), linearIndex,
620-
AffineMapAttr::get(rewriter.getDimIdentityMap()),
619+
transferWriteOp, adaptor.getValueToStore(), adaptor.getSource(),
620+
linearIndex, AffineMapAttr::get(rewriter.getDimIdentityMap()),
621621
transferWriteOp.getInBoundsAttr());
622622
return success();
623623
}

compiler/src/iree/compiler/Codegen/Common/GPU/GPUNestedLayoutDistributionPatterns.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -403,7 +403,7 @@ struct DistributeTransferWrite final
403403
DistributionSignature &signature,
404404
PatternRewriter &rewriter) const override {
405405
NestedLayoutAttr vectorLayout =
406-
dyn_cast<NestedLayoutAttr>(signature[writeOp.getVector()]);
406+
dyn_cast<NestedLayoutAttr>(signature[writeOp.getValueToStore()]);
407407
if (!vectorLayout) {
408408
return rewriter.notifyMatchFailure(writeOp,
409409
"non-nested transfer_write layout");
@@ -439,7 +439,7 @@ struct DistributeTransferWrite final
439439
}
440440

441441
Value distributedVector =
442-
getDistributed(rewriter, writeOp.getVector(), vectorLayout);
442+
getDistributed(rewriter, writeOp.getValueToStore(), vectorLayout);
443443

444444
ValueRange indices = writeOp.getIndices();
445445
AffineMap permMap = writeOp.getPermutationMap();

compiler/src/iree/compiler/Codegen/Common/GPU/VectorReductionToGPU.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ struct InsertToBroadcast final : OpRewritePattern<vector::InsertOp> {
158158
if (insertOp.getDestVectorType().getNumElements() != 1)
159159
return failure();
160160
rewriter.replaceOpWithNewOp<vector::BroadcastOp>(
161-
insertOp, insertOp.getDestVectorType(), insertOp.getSource());
161+
insertOp, insertOp.getDestVectorType(), insertOp.getValueToStore());
162162
return success();
163163
}
164164
};

compiler/src/iree/compiler/Codegen/Common/HoistUnrolledVectorExtractInsertSlice.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -139,8 +139,10 @@ static scf::ForOp hoistVectorExtractInsertSlice(
139139
// computed iteratively but whose storage has become loop-invariant.
140140
NewYieldValuesFn yieldFn = [&](OpBuilder &b, Location loc,
141141
ArrayRef<BlockArgument> newBBArgs) {
142-
return llvm::map_to_vector(insertOps,
143-
[](auto v) -> Value { return v.getSource(); });
142+
return llvm::map_to_vector(
143+
insertOps, [](vector::InsertStridedSliceOp sliceOp) -> Value {
144+
return sliceOp.getValueToStore();
145+
});
144146
};
145147
SmallVector<Value> extractResults = llvm::map_to_vector(
146148
extractOps, [](auto v) -> Value { return v.getResult(); });
@@ -160,7 +162,7 @@ static scf::ForOp hoistVectorExtractInsertSlice(
160162
for (auto [idx, insertStridedSliceOp] : llvm::enumerate(insertOps)) {
161163
insertStridedSliceOp->moveAfter(newForOp);
162164
rewriter.startOpModification(insertStridedSliceOp);
163-
insertStridedSliceOp.getSourceMutable().assign(
165+
insertStridedSliceOp.getValueToStoreMutable().assign(
164166
newForOp.getResults()[initArgNumber + idx + 1]);
165167
insertStridedSliceOp.getDestMutable().assign(
166168
newForOp.getResults()[initArgNumber]);

compiler/src/iree/compiler/Codegen/Dialect/VectorExt/IR/VectorExtOps.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
66

77
#include "iree/compiler/Codegen/Dialect/VectorExt/IR/VectorExtOps.h"
8-
#include "iree/compiler/Codegen/Dialect/VectorExt/IR/VectorExtDialect.h"
98
#include "mlir/Dialect/Affine/IR/AffineOps.h"
109
#include "mlir/Dialect/Utils/IndexingUtils.h"
1110
#include "mlir/Dialect/Vector/IR/VectorOps.h"
@@ -44,6 +43,8 @@ OpFoldResult ToSIMTOp::fold(FoldAdaptor) {
4443
// TransferGatherOp
4544
//===----------------------------------------------------------------------===//
4645

46+
VectorType TransferGatherOp::getVectorType() { return getType(); }
47+
4748
Speculation::Speculatability TransferGatherOp::getSpeculatability() {
4849
if (isa<RankedTensorType>(getSource().getType())) {
4950
return Speculation::Speculatable;
@@ -143,7 +144,7 @@ void TransferGatherOp::print(OpAsmPrinter &p) {
143144
p << " : ";
144145
p << getShapedType() << ", ";
145146
llvm::interleaveComma(getIndexVecs().getType(), p);
146-
p << ", " << getVectorType();
147+
p << ", " << getType();
147148
}
148149

149150
static LogicalResult
@@ -263,7 +264,7 @@ static LogicalResult verifyPermutationMap(
263264
LogicalResult TransferGatherOp::verify() {
264265
// Consistency of elemental types in source and vector.
265266
ShapedType shapedType = getShapedType();
266-
VectorType vectorType = getVectorType();
267+
VectorType vectorType = getType();
267268
VectorType maskType = getMaskType();
268269
Type paddingType = getPadding().getType();
269270
AffineMap permutationMap = getPermutationMap();
@@ -642,7 +643,7 @@ struct FoldContigousGatherToTransferRead final
642643

643644
// Canonicalize to vector.transfer_read.
644645
rewriter.replaceOpWithNewOp<vector::TransferReadOp>(
645-
xferOp, xferOp.getVectorType(), xferOp.getSource(), xferOp.getIndices(),
646+
xferOp, xferOp.getType(), xferOp.getSource(), xferOp.getIndices(),
646647
xferOp.getPermutationMap(), xferOp.getPadding(), xferOp.getMask(),
647648
xferOp.getInBounds());
648649
return success();

compiler/src/iree/compiler/Codegen/Dialect/VectorExt/IR/VectorExtOps.td

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -119,17 +119,17 @@ def IREEVectorExt_TransferGatherOp : IREEVectorExt_PureOp<"transfer_gather", [
119119
DeclareOpInterfaceMethods<MemoryEffectsOpInterface>,
120120
DeclareOpInterfaceMethods<ConditionallySpeculatable>,
121121
AttrSizedOperandSegments
122-
]>,
123-
Arguments<(ins AnyShaped:$source,
124-
Variadic<Index>:$indices,
125-
Variadic<VectorOfAnyRankOf<[Index]>>:$index_vecs,
126-
BoolArrayAttr:$indexed,
127-
AffineMapArrayAttr:$indexed_maps,
128-
AffineMapAttr:$permutation_map,
129-
AnyType:$padding,
130-
Optional<VectorOfNonZeroRankOf<[I1]>>:$mask,
131-
BoolArrayAttr:$in_bounds)>,
132-
Results<(outs AnyVectorOfAnyRank:$vector)> {
122+
]> {
123+
let arguments = (ins AnyShaped:$source,
124+
Variadic<Index>:$indices,
125+
Variadic<VectorOfAnyRankOf<[Index]>>:$index_vecs,
126+
BoolArrayAttr:$indexed,
127+
AffineMapArrayAttr:$indexed_maps,
128+
AffineMapAttr:$permutation_map,
129+
AnyType:$padding,
130+
Optional<VectorOfNonZeroRankOf<[I1]>>:$mask,
131+
BoolArrayAttr:$in_bounds);
132+
let results = (outs AnyVectorOfAnyRank:$vector);
133133

134134
let summary = "Gathers a supervector from memory into an SSA vector value.";
135135

compiler/src/iree/compiler/Codegen/SPIRV/SPIRVInitialVectorLowering.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,9 +103,11 @@ Operation *stripElementBitPatternPreservingParents(Value op) {
103103
.Case<vector::ExtractOp, vector::ExtractElementOp,
104104
vector::ExtractStridedSliceOp>(
105105
[](auto extract) { return extract.getVector(); })
106-
.Case<vector::InsertOp, vector::InsertElementOp,
107-
vector::InsertStridedSliceOp>(
108-
[](auto insert) { return insert.getSource(); })
106+
.Case<vector::InsertElementOp>([](vector::InsertElementOp insert) {
107+
return insert.getSource();
108+
})
109+
.Case<vector::InsertOp, vector::InsertStridedSliceOp>(
110+
[](auto insert) { return insert.getValueToStore(); })
109111
.Case<vector::TransposeOp>([](vector::TransposeOp transpose) {
110112
return transpose.getVector();
111113
})

compiler/src/iree/compiler/Codegen/SPIRV/SPIRVVectorizeLoadStore.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -475,8 +475,8 @@ class ProcessTransferWrite final
475475
// If the transfer_write can be replaced by a store after vectorization cast
476476
// the original value and use StoreOp.
477477
if (*vectorMemrefElemSize == *writeVecSize) {
478-
Value data = rewriter.create<vector::BitCastOp>(loc, memrefVectorType,
479-
adaptor.getVector());
478+
Value data = rewriter.create<vector::BitCastOp>(
479+
loc, memrefVectorType, adaptor.getValueToStore());
480480
rewriter.replaceOpWithNewOp<memref::StoreOp>(
481481
write, data, adaptor.getSource(), indices.value());
482482
return success();
@@ -506,7 +506,7 @@ class ProcessTransferWrite final
506506
for (int i = 0; i < vectorCount; ++i) {
507507
offsets.back() = i * memrefVectorType.getNumElements();
508508
auto slice = rewriter.create<vector::ExtractStridedSliceOp>(
509-
loc, adaptor.getVector(), offsets, sizes, strides);
509+
loc, adaptor.getValueToStore(), offsets, sizes, strides);
510510
auto component =
511511
rewriter.create<vector::BitCastOp>(loc, memrefVectorType, slice);
512512
Value iVal = rewriter.create<arith::ConstantIndexOp>(loc, i);

third_party/llvm-project

Submodule llvm-project updated 415 files

0 commit comments

Comments
 (0)