Skip to content

Commit 547ef8c

Browse files
committed
[TableGen] Fix regunit superset calculation
1 parent 0ace825 commit 547ef8c

File tree

7 files changed

+279
-345
lines changed

7 files changed

+279
-345
lines changed

lib/Target/AArch64/AArch64GenRegisterInfo.inc

Lines changed: 30 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1229,13 +1229,15 @@ enum RegisterPressureSets {
12291229
FPR128_0to7 = 13,
12301230
GPR64x8Class_with_x8sub_0_in_tcGPRx16x17_with_GPR64x8Class_with_x8sub_7_in_FIXED_REGS = 14,
12311231
PPRorPNR = 15,
1232-
GPR64x8Class_with_x8sub_6_in_tcGPRx16x17_with_GPR64x8Class_with_x8sub_0_in_tcGPRx16x17 = 16,
1233-
GPR64x8Class_with_x8sub_6_in_tcGPRx16x17 = 17,
1232+
GPR64x8Class_with_x8sub_0_in_tcGPRx16x17_with_FIXED_REGS_with_GPR64x8Class_with_x8sub_7_in_FIXED_REGS = 16,
1233+
GPR64x8Class_with_x8sub_2_in_tcGPRx16x17_with_GPR64x8Class_with_x8sub_6_in_tcGPRx16x17 = 17,
12341234
FPR16_lo = 18,
12351235
GPR64x8Class_with_x8sub_0_in_tcGPR64 = 19,
1236-
GPR64x8Class_with_x8sub_0_in_tcGPR64_with_GPR64x8Class_with_x8sub_7_in_FIXED_REGS = 20,
1237-
FPR8 = 21,
1238-
GPR32 = 22,
1236+
GPR64x8Class_with_x8sub_7_in_FIXED_REGS_with_GPR64x8Class_with_x8sub_6_in_tcGPRx16x17_with_GPR64x8Class_with_x8sub_0_in_tcGPRx16x17 = 20,
1237+
GPR64x8Class_with_x8sub_6_in_tcGPRx16x17_with_GPR64x8Class_with_x8sub_0_in_tcGPRx16x17_with_FIXED_REGS_with_GPR64x8Class_with_x8sub_7_in_FIXED_REGS = 21,
1238+
GPR64x8Class_with_x8sub_0_in_tcGPR64_with_GPR64x8Class_with_x8sub_7_in_FIXED_REGS = 22,
1239+
FPR8 = 23,
1240+
GPR32 = 24,
12391241
};
12401242
} // end namespace AArch64
12411243

@@ -114098,7 +114100,7 @@ getRegUnitWeight(unsigned RegUnit) const {
114098114100

114099114101
// Get the number of dimensions of register pressure.
114100114102
unsigned AArch64GenRegisterInfo::getNumRegPressureSets() const {
114101-
return 23;
114103+
return 25;
114102114104
}
114103114105

114104114106
// Get the name of this register unit pressure set.
@@ -114121,10 +114123,12 @@ getRegPressureSetName(unsigned Idx) const {
114121114123
"FPR128_0to7",
114122114124
"GPR64x8Class_with_x8sub_0_in_tcGPRx16x17_with_GPR64x8Class_with_x8sub_7_in_FIXED_REGS",
114123114125
"PPRorPNR",
114124-
"GPR64x8Class_with_x8sub_6_in_tcGPRx16x17_with_GPR64x8Class_with_x8sub_0_in_tcGPRx16x17",
114125-
"GPR64x8Class_with_x8sub_6_in_tcGPRx16x17",
114126+
"GPR64x8Class_with_x8sub_0_in_tcGPRx16x17_with_FIXED_REGS_with_GPR64x8Class_with_x8sub_7_in_FIXED_REGS",
114127+
"GPR64x8Class_with_x8sub_2_in_tcGPRx16x17_with_GPR64x8Class_with_x8sub_6_in_tcGPRx16x17",
114126114128
"FPR16_lo",
114127114129
"GPR64x8Class_with_x8sub_0_in_tcGPR64",
114130+
"GPR64x8Class_with_x8sub_7_in_FIXED_REGS_with_GPR64x8Class_with_x8sub_6_in_tcGPRx16x17_with_GPR64x8Class_with_x8sub_0_in_tcGPRx16x17",
114131+
"GPR64x8Class_with_x8sub_6_in_tcGPRx16x17_with_GPR64x8Class_with_x8sub_0_in_tcGPRx16x17_with_FIXED_REGS_with_GPR64x8Class_with_x8sub_7_in_FIXED_REGS",
114128114132
"GPR64x8Class_with_x8sub_0_in_tcGPR64_with_GPR64x8Class_with_x8sub_7_in_FIXED_REGS",
114129114133
"FPR8",
114130114134
"GPR32",
@@ -114153,13 +114157,15 @@ getRegPressureSetLimit(const MachineFunction &MF, unsigned Idx) const {
114153114157
14, // 13: FPR128_0to7
114154114158
14, // 14: GPR64x8Class_with_x8sub_0_in_tcGPRx16x17_with_GPR64x8Class_with_x8sub_7_in_FIXED_REGS
114155114159
16, // 15: PPRorPNR
114156-
16, // 16: GPR64x8Class_with_x8sub_6_in_tcGPRx16x17_with_GPR64x8Class_with_x8sub_0_in_tcGPRx16x17
114157-
18, // 17: GPR64x8Class_with_x8sub_6_in_tcGPRx16x17
114160+
17, // 16: GPR64x8Class_with_x8sub_0_in_tcGPRx16x17_with_FIXED_REGS_with_GPR64x8Class_with_x8sub_7_in_FIXED_REGS
114161+
20, // 17: GPR64x8Class_with_x8sub_2_in_tcGPRx16x17_with_GPR64x8Class_with_x8sub_6_in_tcGPRx16x17
114158114162
22, // 18: FPR16_lo
114159114163
26, // 19: GPR64x8Class_with_x8sub_0_in_tcGPR64
114160-
30, // 20: GPR64x8Class_with_x8sub_0_in_tcGPR64_with_GPR64x8Class_with_x8sub_7_in_FIXED_REGS
114161-
32, // 21: FPR8
114162-
35, // 22: GPR32
114164+
26, // 20: GPR64x8Class_with_x8sub_7_in_FIXED_REGS_with_GPR64x8Class_with_x8sub_6_in_tcGPRx16x17_with_GPR64x8Class_with_x8sub_0_in_tcGPRx16x17
114165+
29, // 21: GPR64x8Class_with_x8sub_6_in_tcGPRx16x17_with_GPR64x8Class_with_x8sub_0_in_tcGPRx16x17_with_FIXED_REGS_with_GPR64x8Class_with_x8sub_7_in_FIXED_REGS
114166+
30, // 22: GPR64x8Class_with_x8sub_0_in_tcGPR64_with_GPR64x8Class_with_x8sub_7_in_FIXED_REGS
114167+
32, // 23: FPR8
114168+
35, // 24: GPR32
114163114169
};
114164114170
return PressureLimitTable[Idx];
114165114171
}
@@ -114170,23 +114176,23 @@ static const int RCSetsTable[] = {
114170114176
/* 2 */ 10, 15, -1,
114171114177
/* 5 */ 1, 10, 11, 15, -1,
114172114178
/* 10 */ 2, 10, 11, 15, -1,
114173-
/* 15 */ 13, 18, 21, -1,
114174-
/* 19 */ 7, 12, 22, -1,
114175-
/* 23 */ 4, 7, 9, 12, 14, 20, 22, -1,
114176-
/* 31 */ 9, 12, 14, 19, 20, 22, -1,
114177-
/* 38 */ 8, 14, 16, 19, 20, 22, -1,
114178-
/* 45 */ 8, 9, 12, 14, 16, 19, 20, 22, -1,
114179-
/* 54 */ 5, 16, 17, 19, 20, 22, -1,
114180-
/* 61 */ 6, 16, 17, 19, 20, 22, -1,
114181-
/* 68 */ 3, 8, 14, 16, 17, 19, 20, 22, -1,
114179+
/* 15 */ 13, 18, 23, -1,
114180+
/* 19 */ 7, 12, 16, 21, 24, -1,
114181+
/* 25 */ 19, 22, 24, -1,
114182+
/* 29 */ 4, 7, 9, 12, 14, 16, 20, 21, 22, 24, -1,
114183+
/* 40 */ 9, 12, 14, 16, 19, 20, 21, 22, 24, -1,
114184+
/* 50 */ 5, 17, 19, 20, 21, 22, 24, -1,
114185+
/* 58 */ 6, 17, 19, 20, 21, 22, 24, -1,
114186+
/* 66 */ 3, 8, 14, 16, 17, 19, 20, 21, 22, 24, -1,
114187+
/* 77 */ 8, 9, 12, 14, 16, 17, 19, 20, 21, 22, 24, -1,
114182114188
};
114183114189

114184114190
/// Get the dimensions of register pressure impacted by this register class.
114185114191
/// Returns a -1 terminated array of pressure set IDs
114186114192
const int *AArch64GenRegisterInfo::
114187114193
getRegClassPressureSets(const TargetRegisterClass *RC) const {
114188114194
static const uint8_t RCSetStartTable[] = {
114189-
17,17,3,16,3,3,2,7,2,7,3,3,2,7,2,7,2,7,2,7,5,10,21,17,21,21,21,16,34,54,61,1,19,21,28,34,54,61,21,17,21,21,21,21,28,34,34,34,16,34,19,54,61,19,68,23,19,68,17,16,16,21,16,28,21,28,34,34,34,34,34,54,61,68,23,17,17,16,1,16,15,15,17,16,16,16,16,16,16,17,16,16,16,16,16,16,16,16,16,16,17,17,17,16,16,17,17,16,16,16,16,16,16,15,15,16,16,15,15,15,15,15,1,17,17,16,16,16,16,17,16,17,16,16,16,16,16,16,16,15,15,15,16,16,15,16,15,16,15,15,15,15,16,15,16,15,15,15,15,15,15,15,15,17,17,16,16,16,16,17,16,17,17,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,15,15,15,15,17,17,16,16,16,16,15,16,15,15,16,15,15,15,15,16,15,16,15,16,15,15,15,16,15,16,15,15,15,16,16,15,15,15,15,15,15,15,15,15,15,28,28,28,28,28,28,28,28,34,28,28,28,34,34,34,34,34,28,28,28,28,34,34,34,34,34,34,34,34,34,34,28,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,1,34,55,55,55,56,56,34,34,56,55,38,56,55,34,55,34,55,25,0,1,1,1,};
114195+
17,17,3,16,3,3,2,7,2,7,3,3,2,7,2,7,2,7,2,7,5,10,23,17,23,23,23,16,25,50,58,1,19,23,26,25,50,58,23,17,23,23,23,23,26,25,25,25,16,25,19,50,58,19,66,29,19,66,17,16,16,23,16,26,23,26,25,25,25,25,25,50,58,66,29,17,17,16,1,16,15,15,17,16,16,16,16,16,16,17,16,16,16,16,16,16,16,16,16,16,17,17,17,16,16,17,17,16,16,16,16,16,16,15,15,16,16,15,15,15,15,15,1,17,17,16,16,16,16,17,16,17,16,16,16,16,16,16,16,15,15,15,16,16,15,16,15,16,15,15,15,15,16,15,16,15,15,15,15,15,15,15,15,17,17,16,16,16,16,17,16,17,17,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,15,15,15,15,17,17,16,16,16,16,15,16,15,15,16,15,15,15,15,16,15,16,15,16,15,15,15,16,15,16,15,15,15,16,16,15,15,15,15,15,15,15,15,15,15,26,26,26,26,26,26,26,26,25,26,26,26,25,25,25,25,25,26,26,26,26,25,25,25,25,25,25,25,25,25,25,26,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,1,25,51,51,51,51,51,25,25,51,51,67,51,51,25,51,25,51,31,0,1,1,1,};
114190114196
return &RCSetsTable[RCSetStartTable[RC->getID()]];
114191114197
}
114192114198

@@ -114196,7 +114202,7 @@ const int *AArch64GenRegisterInfo::
114196114202
getRegUnitPressureSets(unsigned RegUnit) const {
114197114203
assert(RegUnit < 103 && "invalid register unit");
114198114204
static const uint8_t RUSetStartTable[] = {
114199-
19,23,1,1,21,1,19,19,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,15,15,15,15,15,15,15,15,15,15,15,16,16,16,16,16,16,16,16,17,17,17,17,17,17,17,17,17,17,15,15,15,10,2,2,2,2,2,2,5,5,7,7,7,7,7,7,10,34,34,34,34,56,56,56,56,61,61,61,61,54,54,54,54,68,68,69,69,69,69,45,45,31,31,25,25,23,0,};
114205+
19,29,1,1,23,1,19,19,23,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,15,15,15,15,15,15,15,15,15,15,15,16,16,16,16,16,16,16,16,17,17,17,17,17,17,17,17,17,17,15,15,15,10,2,2,2,2,2,2,5,5,7,7,7,7,7,7,10,25,25,25,25,51,51,51,51,58,58,58,58,50,50,50,50,66,66,67,67,67,67,77,77,40,40,31,31,29,0,};
114200114206
return &RCSetsTable[RUSetStartTable[RegUnit]];
114201114207
}
114202114208

0 commit comments

Comments
 (0)