Skip to content

Commit 40fcd35

Browse files
authored
Integrate llvm-project@587d6fcbb685e3a57 (#20948)
Carrying revert: - iree-org/llvm-project@1485df6 Cherry-pick: - iree-org/llvm-project@1b7547d (Mirror of llvm/llvm-project#142025) The revision also pathes torch-mlir for getBackwardSlice changes: iree-org/torch-mlir@05a9860 The changes in IREE are for llvm/llvm-project@6a8dde0 Closes #20928 --------- Signed-off-by: hanhanW <hanhan0912@gmail.com>
1 parent 5deb614 commit 40fcd35

File tree

17 files changed

+66
-24
lines changed

17 files changed

+66
-24
lines changed

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,9 @@ static LogicalResult captureUsedOperationsAndBlockArguements(
4545
auto yieldOp = cast<linalg::YieldOp>(linalgOp.getBlock()->getTerminator());
4646
Value result = yieldOp.getOperand(resultNumber);
4747

48-
getBackwardSlice(result, &usedOperations, options);
48+
[[maybe_unused]] LogicalResult ret =
49+
getBackwardSlice(result, &usedOperations, options);
50+
assert(ret.succeeded());
4951

5052
// Get all block arguments used by the operations. If any of the arguments
5153
// used is a dpsInit argument other than resultNumber, return failure.

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,12 @@ combineValueBarrierPair(RewriterBase &rewriter,
137137
bOptions.filter = sliceFilterBackward;
138138
SetVector<Operation *> backwardSliceA;
139139
SetVector<Operation *> backwardSliceB;
140-
getBackwardSlice(barrierA, &backwardSliceA, bOptions);
141-
getBackwardSlice(barrierB, &backwardSliceB, bOptions);
140+
[[maybe_unused]] LogicalResult resultA =
141+
getBackwardSlice(barrierA, &backwardSliceA, bOptions);
142+
assert(resultA.succeeded());
143+
[[maybe_unused]] LogicalResult resultB =
144+
getBackwardSlice(barrierB, &backwardSliceB, bOptions);
145+
assert(resultB.succeeded());
142146
backwardSliceA.insert(backwardSliceB.begin(), backwardSliceB.end());
143147
// If the first barrier is contained in the combined backward slice of both
144148
// barriers, the barriers form a chain and cannot be combined.

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,9 @@ static void applyFastSlowPathConversion(mlir::FunctionOpInterface funcOp) {
8484
SmallVector<Value> eqZeroCmpVals;
8585
for (OpFoldResult pad : llvm::concat<OpFoldResult>(lowPads, highPads)) {
8686
if (auto padValue = dyn_cast<Value>(pad)) {
87-
getBackwardSlice(padValue, &padSizeOps, options);
87+
[[maybe_unused]] LogicalResult result =
88+
getBackwardSlice(padValue, &padSizeOps, options);
89+
assert(result.succeeded());
8890
padSizeOps.insert(padValue.getDefiningOp());
8991
}
9092
if (!isZero(pad)) {

compiler/src/iree/compiler/Codegen/LLVMGPU/KernelConfig.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -604,7 +604,9 @@ checkDispatchForVectorDistribution(mlir::FunctionOpInterface entryPoint) {
604604
SetVector<Operation *> slice;
605605

606606
for (Operation *op : storeOps) {
607-
getBackwardSlice(op, &slice, sliceOptions);
607+
[[maybe_unused]] LogicalResult result =
608+
getBackwardSlice(op, &slice, sliceOptions);
609+
assert(result.succeeded());
608610
}
609611

610612
SetVector<linalg::LinalgOp> computeOps;
@@ -3177,7 +3179,9 @@ LogicalResult initGPULaunchConfig(FunctionOpInterface funcOp) {
31773179
BackwardSliceOptions options;
31783180
options.inclusive = true;
31793181
SetVector<Operation *> slices;
3180-
getBackwardSlice(indices, &slices, options);
3182+
[[maybe_unused]] LogicalResult result =
3183+
getBackwardSlice(indices, &slices, options);
3184+
assert(result.succeeded());
31813185
genericToSkip.insert(slices.begin(), slices.end());
31823186
}
31833187
}

compiler/src/iree/compiler/Codegen/LLVMGPU/ROCDLConfigureBufferInstructions.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,9 @@ static bool isDefinitelyWorkgroupUniform(Value arg) {
5252
}
5353
// Note: this is a bit conservative, in that it will traverse all the
5454
// arguments to a util.assume.int that isn't the immediate parent of val.
55-
mlir::getBackwardSlice(arg, &dependencies, opts);
55+
[[maybe_unused]] LogicalResult result =
56+
getBackwardSlice(arg, &dependencies, opts);
57+
assert(result.succeeded());
5658
return llvm::all_of(dependencies, [&](Operation *op) {
5759
if (matchPattern(op, m_Constant()))
5860
return true;

compiler/src/iree/compiler/Codegen/Transforms/Transforms.cpp

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,9 @@ static SliceAndDynamicDims cloneOffsetsSizesAndStridesImpl(
6363
return sliceFilter(op, nonIndexComputationOperands, baseOp);
6464
};
6565
SetVector<Operation *> slice;
66-
getBackwardSlice(baseOp, &slice, options);
66+
[[maybe_unused]] LogicalResult ret =
67+
getBackwardSlice(baseOp, &slice, options);
68+
assert(ret.succeeded());
6769
IRMapping bvm;
6870
for (auto origOp : slice) {
6971
builder.clone(*origOp, bvm);
@@ -364,7 +366,9 @@ LogicalResult lowerWorkgroupCountFromSliceOp(
364366
llvm::SetVector<Operation *> slice;
365367
for (auto ofr : workgroupCount) {
366368
if (auto val = dyn_cast<Value>(ofr)) {
367-
mlir::getBackwardSlice(val, &slice, options);
369+
[[maybe_unused]] LogicalResult result =
370+
getBackwardSlice(val, &slice, options);
371+
assert(result.succeeded());
368372
}
369373
}
370374
// Since there are more than one slices, sort the operations again.
@@ -1848,7 +1852,9 @@ struct HoistForallFromFor : public OpRewritePattern<scf::ForOp> {
18481852
}
18491853
}
18501854
SetVector<Operation *> tmpBackwardSlice;
1851-
getBackwardSlice(operand, &tmpBackwardSlice, backwardOptions);
1855+
[[maybe_unused]] LogicalResult result =
1856+
getBackwardSlice(operand, &tmpBackwardSlice, backwardOptions);
1857+
assert(result.succeeded());
18521858
slice.set_union(tmpBackwardSlice);
18531859
}
18541860
}

compiler/src/iree/compiler/Codegen/Utils/Utils.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1604,7 +1604,9 @@ bool hasFusedLeadingOp(linalg::LinalgOp rootOp) {
16041604
SetVector<Operation *> backwardSlice;
16051605
for (OpOperand *operand : rootOp.getDpsInputOperands()) {
16061606
SetVector<Operation *> tmpBackwardSlice;
1607-
getBackwardSlice(operand->get(), &tmpBackwardSlice, options);
1607+
[[maybe_unused]] LogicalResult result =
1608+
getBackwardSlice(operand->get(), &tmpBackwardSlice, options);
1609+
assert(result.succeeded());
16081610
backwardSlice.set_union(tmpBackwardSlice);
16091611
}
16101612

compiler/src/iree/compiler/Dialect/Flow/Conversion/TensorToFlow/Utils.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,9 @@ static bool producedByValueExtract(OpFoldResult index) {
6161

6262
// Get the backward slice of the index.
6363
SetVector<Operation *> backwardSlice;
64-
getBackwardSlice(indexVal, &backwardSlice, options);
64+
[[maybe_unused]] LogicalResult result =
65+
getBackwardSlice(indexVal, &backwardSlice, options);
66+
assert(result.succeeded());
6567
return hasExtract;
6668
}
6769

compiler/src/iree/compiler/Dialect/Flow/Transforms/RegionOpUtils.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,9 @@ static bool checkShapeIsDataDependant(Operation *op) {
187187
};
188188
llvm::SetVector<Operation *> slice;
189189
for (Value initOperand : linalgOp.getDpsInits()) {
190-
mlir::getBackwardSlice(initOperand, &slice, options);
190+
[[maybe_unused]] LogicalResult result =
191+
getBackwardSlice(initOperand, &slice, options);
192+
assert(result.succeeded());
191193
}
192194
return llvm::any_of(slice, llvm::IsaPred<tensor::ExtractOp>);
193195
}

compiler/src/iree/compiler/Dialect/LinalgExt/Utils/Utils.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -384,7 +384,9 @@ bool isGatherlikeOp(Operation *op) {
384384
}
385385
return currOp->getBlock() == genericOp.getBody();
386386
};
387-
mlir::getBackwardSlice(yieldOp.getOperand(0), &sliceOps, options);
387+
[[maybe_unused]] LogicalResult result =
388+
getBackwardSlice(yieldOp.getOperand(0), &sliceOps, options);
389+
assert(result.succeeded());
388390
return hasTensorExtract;
389391
}
390392

compiler/src/iree/compiler/DispatchCreation/CollapseDimensions.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -629,7 +629,9 @@ hoistTensorReshapesOutOfDispatchRegion(
629629
return op->getParentOfType<IREE::Flow::DispatchRegionOp>();
630630
};
631631
SetVector<Operation *> slice;
632-
getBackwardSlice(returnOp, &slice, sliceOptions);
632+
[[maybe_unused]] LogicalResult ret =
633+
getBackwardSlice(returnOp, &slice, sliceOptions);
634+
assert(ret.succeeded());
633635

634636
// 2. Get the leaf operations that are `tensor.collapse_shape` and
635637
// `tensor_expand_shape` ops.
@@ -889,7 +891,9 @@ collapseDimensionsForDispatch(IRRewriter &rewriter,
889891
return isEligibleForCollapse(op) && parentOp == regionOp;
890892
};
891893
SetVector<Operation *> slice;
892-
getBackwardSlice(rootOp.value(), &slice, sliceOptions);
894+
[[maybe_unused]] LogicalResult ret =
895+
getBackwardSlice(rootOp.value(), &slice, sliceOptions);
896+
assert(ret.succeeded());
893897

894898
// Step 3. Populate each op's info with a maximally collapsable reassociation
895899
// indicies

compiler/src/iree/compiler/DispatchCreation/FormScalarDispatches.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,9 @@ llvm::SetVector<Operation *> computeSliceToMoveIntoDispatch(
121121
};
122122
options.omitBlockArguments = true;
123123
llvm::SetVector<Operation *> slice;
124-
getBackwardSlice(rootOp, &slice, options);
124+
[[maybe_unused]] LogicalResult result =
125+
getBackwardSlice(rootOp, &slice, options);
126+
assert(result.succeeded());
125127
return slice;
126128
}
127129

compiler/src/iree/compiler/DispatchCreation/FuseHorizontalContractions.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,8 @@ static bool isHorizontalToGroup(Operation *op,
240240
return !dominanceInfo.properlyDominates(op, seedOp);
241241
};
242242
llvm::SetVector<Operation *> slice;
243-
getBackwardSlice(op, &slice, options);
243+
[[maybe_unused]] LogicalResult result = getBackwardSlice(op, &slice, options);
244+
assert(result.succeeded());
244245
return !llvm::any_of(currGroup, [&](Operation *groupedOp) {
245246
return slice.contains(groupedOp);
246247
});

compiler/src/iree/compiler/DispatchCreation/FusionUtils.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,9 @@ LogicalResult moveOperandDefs(RewriterBase &rewriter,
120120
llvm::SetVector<Operation *> slice;
121121
for (auto op : operations) {
122122
for (auto operand : op->getOperands()) {
123-
getBackwardSlice(operand, &slice, options);
123+
[[maybe_unused]] LogicalResult result =
124+
getBackwardSlice(operand, &slice, options);
125+
assert(result.succeeded());
124126
}
125127
auto regions = op->getRegions();
126128
if (regions.empty()) {
@@ -129,7 +131,9 @@ LogicalResult moveOperandDefs(RewriterBase &rewriter,
129131
llvm::SetVector<Value> capturedVals;
130132
mlir::getUsedValuesDefinedAbove(regions, capturedVals);
131133
for (auto value : capturedVals) {
132-
getBackwardSlice(value, &slice, options);
134+
[[maybe_unused]] LogicalResult result =
135+
getBackwardSlice(value, &slice, options);
136+
assert(result.succeeded());
133137
}
134138
}
135139

compiler/src/iree/compiler/Preprocessing/Common/MakeSingleDispatchForFunction.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,9 @@ void MakeSingleDispatchForFunctionPass::runOnOperation() {
6464
// Filter returns true for any dialect not allowed.
6565
firstSliceOptions.filter = [&](Operation *op) { return !whitelistedOps(op); };
6666
llvm::SetVector<Operation *> firstSlice;
67-
mlir::getBackwardSlice(block.getTerminator(), &firstSlice, firstSliceOptions);
67+
[[maybe_unused]] LogicalResult ret =
68+
getBackwardSlice(block.getTerminator(), &firstSlice, firstSliceOptions);
69+
assert(ret.succeeded());
6870

6971
// 2. Do the second slice starting from the first slice to remove any ABI
7072
// related operations on the argument.
@@ -75,7 +77,8 @@ void MakeSingleDispatchForFunctionPass::runOnOperation() {
7577
llvm::SetVector<Operation *> secondSlice;
7678
for (Operation *op : firstSlice) {
7779
for (Value operand : op->getOperands()) {
78-
mlir::getBackwardSlice(operand, &secondSlice, secondSliceOptions);
80+
ret = getBackwardSlice(operand, &secondSlice, secondSliceOptions);
81+
assert(ret.succeeded());
7982
}
8083
}
8184
if (secondSlice.empty()) {

third_party/llvm-project

Submodule llvm-project updated 300 files

0 commit comments

Comments
 (0)