Skip to content

Commit 10fe531

Browse files
committed
[GlobalISel] Add and use an Opcode variable and update match-table-cxx.td checks. NFC
1 parent 1125934 commit 10fe531

File tree

2 files changed

+25
-24
lines changed

2 files changed

+25
-24
lines changed

llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2523,7 +2523,8 @@ LegalizerHelper::widenScalarMulo(MachineInstr &MI, unsigned TypeIdx,
25232523

25242524
LegalizerHelper::LegalizeResult
25252525
LegalizerHelper::widenScalar(MachineInstr &MI, unsigned TypeIdx, LLT WideTy) {
2526-
switch (MI.getOpcode()) {
2526+
unsigned Opcode = MI.getOpcode();
2527+
switch (Opcode) {
25272528
default:
25282529
return UnableToLegalize;
25292530
case TargetOpcode::G_ATOMICRMW_XCHG:
@@ -2607,13 +2608,13 @@ LegalizerHelper::widenScalar(MachineInstr &MI, unsigned TypeIdx, LLT WideTy) {
26072608
Register SrcReg = MI.getOperand(1).getReg();
26082609

26092610
// First extend the input.
2610-
unsigned ExtOpc = MI.getOpcode() == TargetOpcode::G_CTTZ ||
2611-
MI.getOpcode() == TargetOpcode::G_CTTZ_ZERO_UNDEF
2611+
unsigned ExtOpc = Opcode == TargetOpcode::G_CTTZ ||
2612+
Opcode == TargetOpcode::G_CTTZ_ZERO_UNDEF
26122613
? TargetOpcode::G_ANYEXT
26132614
: TargetOpcode::G_ZEXT;
26142615
auto MIBSrc = MIRBuilder.buildInstr(ExtOpc, {WideTy}, {SrcReg});
26152616
LLT CurTy = MRI.getType(SrcReg);
2616-
unsigned NewOpc = MI.getOpcode();
2617+
unsigned NewOpc = Opcode;
26172618
if (NewOpc == TargetOpcode::G_CTTZ) {
26182619
// The count is the same in the larger type except if the original
26192620
// value was zero. This can be handled by setting the bit just off
@@ -2628,7 +2629,7 @@ LegalizerHelper::widenScalar(MachineInstr &MI, unsigned TypeIdx, LLT WideTy) {
26282629

26292630
unsigned SizeDiff = WideTy.getSizeInBits() - CurTy.getSizeInBits();
26302631

2631-
if (MI.getOpcode() == TargetOpcode::G_CTLZ_ZERO_UNDEF) {
2632+
if (Opcode == TargetOpcode::G_CTLZ_ZERO_UNDEF) {
26322633
// An optimization where the result is the CTLZ after the left shift by
26332634
// (Difference in widety and current ty), that is,
26342635
// MIBSrc = MIBSrc << (sizeinbits(WideTy) - sizeinbits(CurTy))
@@ -2640,7 +2641,7 @@ LegalizerHelper::widenScalar(MachineInstr &MI, unsigned TypeIdx, LLT WideTy) {
26402641
// Perform the operation at the larger size.
26412642
auto MIBNewOp = MIRBuilder.buildInstr(NewOpc, {WideTy}, {MIBSrc});
26422643
// This is already the correct result for CTPOP and CTTZs
2643-
if (MI.getOpcode() == TargetOpcode::G_CTLZ) {
2644+
if (Opcode == TargetOpcode::G_CTLZ) {
26442645
// The correct result is NewOp - (Difference in widety and current ty).
26452646
MIBNewOp = MIRBuilder.buildSub(
26462647
WideTy, MIBNewOp, MIRBuilder.buildConstant(WideTy, SizeDiff));
@@ -2788,8 +2789,8 @@ LegalizerHelper::widenScalar(MachineInstr &MI, unsigned TypeIdx, LLT WideTy) {
27882789
Observer.changingInstr(MI);
27892790

27902791
if (TypeIdx == 0) {
2791-
unsigned CvtOp = MI.getOpcode() == TargetOpcode::G_ASHR ?
2792-
TargetOpcode::G_SEXT : TargetOpcode::G_ZEXT;
2792+
unsigned CvtOp = Opcode == TargetOpcode::G_ASHR ? TargetOpcode::G_SEXT
2793+
: TargetOpcode::G_ZEXT;
27932794

27942795
widenScalarSrc(MI, WideTy, 1, CvtOp);
27952796
widenScalarDst(MI, WideTy);
@@ -3101,7 +3102,7 @@ LegalizerHelper::widenScalar(MachineInstr &MI, unsigned TypeIdx, LLT WideTy) {
31013102
case TargetOpcode::G_FLDEXP:
31023103
case TargetOpcode::G_STRICT_FLDEXP: {
31033104
if (TypeIdx == 0) {
3104-
if (MI.getOpcode() == TargetOpcode::G_STRICT_FLDEXP)
3105+
if (Opcode == TargetOpcode::G_STRICT_FLDEXP)
31053106
return UnableToLegalize;
31063107

31073108
Observer.changingInstr(MI);

llvm/test/TableGen/GlobalISelCombinerEmitter/match-table-cxx.td

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -86,12 +86,12 @@ def MyCombiner: GICombiner<"GenMyCombiner", [
8686
// CHECK: const uint8_t *GenMyCombiner::getMatchTable() const {
8787
// CHECK-NEXT: constexpr static uint8_t MatchTable0[] = {
8888
// CHECK-NEXT: GIM_SwitchOpcode, /*MI*/0, /*[*/GIMT_Encode2([[#LOWER:]]), GIMT_Encode2([[#UPPER:]]), /*)*//*default:*//*Label 4*/ GIMT_Encode4([[#DEFAULT:]]),
89-
// CHECK-NEXT: /*TargetOpcode::G_STORE*//*Label 0*/ GIMT_Encode4(418), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
90-
// CHECK-NEXT: /*TargetOpcode::G_SEXT*//*Label 1*/ GIMT_Encode4(436), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
91-
// CHECK-NEXT: /*TargetOpcode::G_FNEG*//*Label 2*/ GIMT_Encode4(448), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
92-
// CHECK-NEXT: /*TargetOpcode::G_FABS*//*Label 3*/ GIMT_Encode4(460),
89+
// CHECK-NEXT: /*TargetOpcode::G_STORE*//*Label 0*/ GIMT_Encode4([[L418:[0-9]+]]), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
90+
// CHECK-NEXT: /*TargetOpcode::G_SEXT*//*Label 1*/ GIMT_Encode4([[L436:[0-9]+]]), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
91+
// CHECK-NEXT: /*TargetOpcode::G_FNEG*//*Label 2*/ GIMT_Encode4([[L448:[0-9]+]]), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0), GIMT_Encode4(0),
92+
// CHECK-NEXT: /*TargetOpcode::G_FABS*//*Label 3*/ GIMT_Encode4([[L460:[0-9]+]]),
9393
// CHECK-NEXT: // Label 0: @[[#%u, mul(UPPER-LOWER, 4) + 10]]
94-
// CHECK-NEXT: GIM_Try, /*On fail goto*//*Label 5*/ GIMT_Encode4(435), // Rule ID 2 //
94+
// CHECK-NEXT: GIM_Try, /*On fail goto*//*Label 5*/ GIMT_Encode4([[L435:[0-9]+]]), // Rule ID 2 //
9595
// CHECK-NEXT: GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule2Enabled),
9696
// CHECK-NEXT: // MIs[0] x
9797
// CHECK-NEXT: // No operand predicates
@@ -101,40 +101,40 @@ def MyCombiner: GICombiner<"GenMyCombiner", [
101101
// CHECK-NEXT: GIM_CheckCxxInsnPredicate, /*MI*/0, /*FnId*/GIMT_Encode2(GICXXPred_MI_Predicate_GICombiner1),
102102
// CHECK-NEXT: // Combiner Rule #2: TwoMatchNoApply
103103
// CHECK-NEXT: GIR_EraseRootFromParent_Done,
104-
// CHECK-NEXT: // Label 5: @435
104+
// CHECK-NEXT: // Label 5: @[[L435]]
105105
// CHECK-NEXT: GIM_Reject,
106-
// CHECK-NEXT: // Label 1: @436
107-
// CHECK-NEXT: GIM_Try, /*On fail goto*//*Label 6*/ GIMT_Encode4(447), // Rule ID 3 //
106+
// CHECK-NEXT: // Label 1: @[[L436]]
107+
// CHECK-NEXT: GIM_Try, /*On fail goto*//*Label 6*/ GIMT_Encode4([[L447:[0-9]+]]), // Rule ID 3 //
108108
// CHECK-NEXT: GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule3Enabled),
109109
// CHECK-NEXT: // MIs[0] a
110110
// CHECK-NEXT: // No operand predicates
111111
// CHECK-NEXT: // MIs[0] y
112112
// CHECK-NEXT: // No operand predicates
113113
// CHECK-NEXT: // Combiner Rule #3: NoMatchTwoApply
114114
// CHECK-NEXT: GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner2),
115-
// CHECK-NEXT: // Label 6: @447
115+
// CHECK-NEXT: // Label 6: @[[L447]]
116116
// CHECK-NEXT: GIM_Reject,
117-
// CHECK-NEXT: // Label 2: @448
118-
// CHECK-NEXT: GIM_Try, /*On fail goto*//*Label 7*/ GIMT_Encode4(459), // Rule ID 1 //
117+
// CHECK-NEXT: // Label 2: @[[L448]]
118+
// CHECK-NEXT: GIM_Try, /*On fail goto*//*Label 7*/ GIMT_Encode4([[L459:[0-9]+]]), // Rule ID 1 //
119119
// CHECK-NEXT: GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule1Enabled),
120120
// CHECK-NEXT: // MIs[0] a
121121
// CHECK-NEXT: // No operand predicates
122122
// CHECK-NEXT: // MIs[0] b
123123
// CHECK-NEXT: // No operand predicates
124124
// CHECK-NEXT: // Combiner Rule #1: TwoMatchTwoApply
125125
// CHECK-NEXT: GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner1),
126-
// CHECK-NEXT: // Label 7: @459
126+
// CHECK-NEXT: // Label 7: @[[L459]]
127127
// CHECK-NEXT: GIM_Reject,
128-
// CHECK-NEXT: // Label 3: @460
129-
// CHECK-NEXT: GIM_Try, /*On fail goto*//*Label 8*/ GIMT_Encode4(471), // Rule ID 0 //
128+
// CHECK-NEXT: // Label 3: @[[L460]]
129+
// CHECK-NEXT: GIM_Try, /*On fail goto*//*Label 8*/ GIMT_Encode4([[L471:[0-9]+]]), // Rule ID 0 //
130130
// CHECK-NEXT: GIM_CheckSimplePredicate, GIMT_Encode2(GICXXPred_Simple_IsRule0Enabled),
131131
// CHECK-NEXT: // MIs[0] a
132132
// CHECK-NEXT: // No operand predicates
133133
// CHECK-NEXT: // MIs[0] b
134134
// CHECK-NEXT: // No operand predicates
135135
// CHECK-NEXT: // Combiner Rule #0: OneMatchOneApply
136136
// CHECK-NEXT: GIR_DoneWithCustomAction, /*Fn*/GIMT_Encode2(GICXXCustomAction_GICombiner0),
137-
// CHECK-NEXT: // Label 8: @471
137+
// CHECK-NEXT: // Label 8: @[[L471]]
138138
// CHECK-NEXT: GIM_Reject,
139139
// CHECK-NEXT: // Label 4: @[[#%u, DEFAULT]]
140140
// CHECK-NEXT: GIM_Reject,

0 commit comments

Comments
 (0)