Skip to content

Commit 0afcfd6

Browse files
Apply reviews
1 parent c1403f1 commit 0afcfd6

File tree

2 files changed

+10
-10
lines changed

2 files changed

+10
-10
lines changed

clang/lib/CIR/Dialect/Transforms/CIRSimplify.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ struct SimplifySwitch : public OpRewritePattern<SwitchOp> {
197197
PatternRewriter &rewriter) const override {
198198

199199
LogicalResult changed = mlir::failure();
200-
llvm::SmallVector<CaseOp, 8> cases;
200+
SmallVector<CaseOp, 8> cases;
201201
SmallVector<CaseOp, 4> cascadingCases;
202202
SmallVector<mlir::Attribute, 4> cascadingCaseValues;
203203

@@ -228,7 +228,6 @@ struct SimplifySwitch : public OpRewritePattern<SwitchOp> {
228228
// If the case contains only a YieldOp, collect it for cascading merge
229229
cascadingCases.push_back(c);
230230
cascadingCaseValues.push_back(c.getValue()[0]);
231-
232231
} else if (kind == cir::CaseOpKind::Equal && !cascadingCases.empty()) {
233232
// merge previously collected cascading cases
234233
cascadingCaseValues.push_back(c.getValue()[0]);
@@ -237,6 +236,8 @@ struct SimplifySwitch : public OpRewritePattern<SwitchOp> {
237236
} else if (kind != cir::CaseOpKind::Equal && cascadingCases.size() > 1) {
238237
// If a Default, Anyof or Range case is found and there are previous
239238
// cascading cases, merge all of them into the last cascading case.
239+
// We don't currently fold case range statements with other case statements.
240+
assert(!cir::MissingFeatures::foldRangeCase());
240241
CaseOp lastCascadingCase = cascadingCases.back();
241242
mergeCascadingInto(lastCascadingCase);
242243
cascadingCases.pop_back();
@@ -254,8 +255,7 @@ struct SimplifySwitch : public OpRewritePattern<SwitchOp> {
254255
cascadingCases.pop_back();
255256
flushMergedOps();
256257
}
257-
// We don't currently fold case range statements with other case statements.
258-
assert(!cir::MissingFeatures::foldRangeCase());
258+
259259
return changed;
260260
}
261261
};

clang/test/CIR/Transforms/switch-fold.cir

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,16 +45,16 @@ module {
4545
cir.case(equal, [#cir.int<0> : !s32i]) {
4646
cir.yield
4747
}
48-
cir.case(equal, [#cir.int<1> : !s32i]) {
48+
cir.case(equal, [#cir.int<2> : !s32i]) {
4949
cir.yield
5050
}
51-
cir.case(equal, [#cir.int<2> : !s32i]) {
51+
cir.case(equal, [#cir.int<4> : !s32i]) {
5252
cir.break
5353
}
54-
cir.case(equal, [#cir.int<3> : !s32i]) {
54+
cir.case(equal, [#cir.int<1> : !s32i]) {
5555
cir.yield
5656
}
57-
cir.case(equal, [#cir.int<4> : !s32i]) {
57+
cir.case(equal, [#cir.int<3> : !s32i]) {
5858
cir.yield
5959
}
6060
cir.case(equal, [#cir.int<5> : !s32i]) {
@@ -67,10 +67,10 @@ module {
6767
}
6868
//CHECK: @foldCascade2
6969
//CHECK: cir.switch (%[[COND2:.*]] : !s32i) {
70-
//CHECK: cir.case(anyof, [#cir.int<0> : !s32i, #cir.int<1> : !s32i, #cir.int<2> : !s32i]) {
70+
//CHECK: cir.case(anyof, [#cir.int<0> : !s32i, #cir.int<2> : !s32i, #cir.int<4> : !s32i]) {
7171
//CHECK: cir.break
7272
//cehck: }
73-
//CHECK: cir.case(anyof, [#cir.int<3> : !s32i, #cir.int<4> : !s32i, #cir.int<5> : !s32i]) {
73+
//CHECK: cir.case(anyof, [#cir.int<1> : !s32i, #cir.int<3> : !s32i, #cir.int<5> : !s32i]) {
7474
//CHECK: cir.break
7575
//CHECK: }
7676
//CHECK: cir.yield

0 commit comments

Comments
 (0)