@@ -83,32 +83,32 @@ AArch64RegisterBankInfo::AArch64RegisterBankInfo(const TargetRegisterInfo &TRI)
83
83
84
84
// Check that the TableGen'ed like file is in sync we our expectations.
85
85
// First, the Idx.
86
- assert (AArch64::PartialMappingIdx::GPR32 ==
87
- AArch64::PartialMappingIdx::FirstGPR &&
86
+ assert (AArch64::PartialMappingIdx::PMI_GPR32 ==
87
+ AArch64::PartialMappingIdx::PMI_FirstGPR &&
88
88
" GPR32 index not first in the GPR list" );
89
- assert (AArch64::PartialMappingIdx::GPR64 ==
90
- AArch64::PartialMappingIdx::LastGPR &&
89
+ assert (AArch64::PartialMappingIdx::PMI_GPR64 ==
90
+ AArch64::PartialMappingIdx::PMI_LastGPR &&
91
91
" GPR64 index not last in the GPR list" );
92
- assert (AArch64::PartialMappingIdx::FirstGPR <=
93
- AArch64::PartialMappingIdx::LastGPR &&
92
+ assert (AArch64::PartialMappingIdx::PMI_FirstGPR <=
93
+ AArch64::PartialMappingIdx::PMI_LastGPR &&
94
94
" GPR list is backward" );
95
- assert (AArch64::PartialMappingIdx::FPR32 ==
96
- AArch64::PartialMappingIdx::FirstFPR &&
95
+ assert (AArch64::PartialMappingIdx::PMI_FPR32 ==
96
+ AArch64::PartialMappingIdx::PMI_FirstFPR &&
97
97
" FPR32 index not first in the FPR list" );
98
- assert (AArch64::PartialMappingIdx::FPR512 ==
99
- AArch64::PartialMappingIdx::LastFPR &&
98
+ assert (AArch64::PartialMappingIdx::PMI_FPR512 ==
99
+ AArch64::PartialMappingIdx::PMI_LastFPR &&
100
100
" FPR512 index not last in the FPR list" );
101
- assert (AArch64::PartialMappingIdx::FirstFPR <=
102
- AArch64::PartialMappingIdx::LastFPR &&
101
+ assert (AArch64::PartialMappingIdx::PMI_FirstFPR <=
102
+ AArch64::PartialMappingIdx::PMI_LastFPR &&
103
103
" FPR list is backward" );
104
- assert (AArch64::PartialMappingIdx::FPR32 + 1 ==
105
- AArch64::PartialMappingIdx::FPR64 &&
106
- AArch64::PartialMappingIdx::FPR64 + 1 ==
107
- AArch64::PartialMappingIdx::FPR128 &&
108
- AArch64::PartialMappingIdx::FPR128 + 1 ==
109
- AArch64::PartialMappingIdx::FPR256 &&
110
- AArch64::PartialMappingIdx::FPR256 + 1 ==
111
- AArch64::PartialMappingIdx::FPR512 &&
104
+ assert (AArch64::PartialMappingIdx::PMI_FPR32 + 1 ==
105
+ AArch64::PartialMappingIdx::PMI_FPR64 &&
106
+ AArch64::PartialMappingIdx::PMI_FPR64 + 1 ==
107
+ AArch64::PartialMappingIdx::PMI_FPR128 &&
108
+ AArch64::PartialMappingIdx::PMI_FPR128 + 1 ==
109
+ AArch64::PartialMappingIdx::PMI_FPR256 &&
110
+ AArch64::PartialMappingIdx::PMI_FPR256 + 1 ==
111
+ AArch64::PartialMappingIdx::PMI_FPR512 &&
112
112
" FPR indices not properly ordered" );
113
113
// Now, the content.
114
114
// Check partial mapping.
@@ -121,22 +121,22 @@ AArch64RegisterBankInfo::AArch64RegisterBankInfo(const TargetRegisterInfo &TRI)
121
121
Map.RegBank == &RB && #Idx " is incorrectly initialized" ); \
122
122
} while (0 )
123
123
124
- CHECK_PARTIALMAP (GPR32 , 0 , 32 , RBGPR);
125
- CHECK_PARTIALMAP (GPR64 , 0 , 64 , RBGPR);
126
- CHECK_PARTIALMAP (FPR32 , 0 , 32 , RBFPR);
127
- CHECK_PARTIALMAP (FPR64 , 0 , 64 , RBFPR);
128
- CHECK_PARTIALMAP (FPR128 , 0 , 128 , RBFPR);
129
- CHECK_PARTIALMAP (FPR256 , 0 , 256 , RBFPR);
130
- CHECK_PARTIALMAP (FPR512 , 0 , 512 , RBFPR);
124
+ CHECK_PARTIALMAP (PMI_GPR32 , 0 , 32 , RBGPR);
125
+ CHECK_PARTIALMAP (PMI_GPR64 , 0 , 64 , RBGPR);
126
+ CHECK_PARTIALMAP (PMI_FPR32 , 0 , 32 , RBFPR);
127
+ CHECK_PARTIALMAP (PMI_FPR64 , 0 , 64 , RBFPR);
128
+ CHECK_PARTIALMAP (PMI_FPR128 , 0 , 128 , RBFPR);
129
+ CHECK_PARTIALMAP (PMI_FPR256 , 0 , 256 , RBFPR);
130
+ CHECK_PARTIALMAP (PMI_FPR512 , 0 , 512 , RBFPR);
131
131
132
132
// Check value mapping.
133
133
#define CHECK_VALUEMAP_IMPL (RBName, Size, Offset ) \
134
134
do { \
135
135
AArch64::PartialMappingIdx PartialMapBaseIdx = \
136
- AArch64::PartialMappingIdx::RBName##Size; \
136
+ AArch64::PartialMappingIdx::PMI_## RBName##Size; \
137
137
(void ) PartialMapBaseIdx; \
138
138
const ValueMapping &Map = \
139
- AArch64::getValueMapping (AArch64::First ##RBName, Size)[Offset]; \
139
+ AArch64::getValueMapping (AArch64::PMI_First ##RBName, Size)[Offset]; \
140
140
(void ) Map; \
141
141
assert (Map.BreakDown == &AArch64::PartMappings[PartialMapBaseIdx] && \
142
142
Map.NumBreakDowns == 1 && #RBName #Size \
@@ -173,14 +173,14 @@ AArch64RegisterBankInfo::AArch64RegisterBankInfo(const TargetRegisterInfo &TRI)
173
173
#define CHECK_VALUEMAP_CROSSREGCPY (RBNameDst, RBNameSrc, Size ) \
174
174
do { \
175
175
AArch64::PartialMappingIdx PartialMapDstIdx = \
176
- AArch64::PartialMappingIdx::RBNameDst##Size; \
176
+ AArch64::PartialMappingIdx::PMI_## RBNameDst##Size; \
177
177
AArch64::PartialMappingIdx PartialMapSrcIdx = \
178
- AArch64::PartialMappingIdx::RBNameSrc##Size; \
178
+ AArch64::PartialMappingIdx::PMI_## RBNameSrc##Size; \
179
179
(void ) PartialMapDstIdx; \
180
180
(void ) PartialMapSrcIdx; \
181
181
const ValueMapping *Map = AArch64::getCopyMapping ( \
182
- AArch64::First ##RBNameDst == AArch64::FirstGPR, \
183
- AArch64::First ##RBNameSrc == AArch64::FirstGPR , Size); \
182
+ AArch64::PMI_First ##RBNameDst == AArch64::PMI_FirstGPR, \
183
+ AArch64::PMI_First ##RBNameSrc == AArch64::PMI_FirstGPR , Size); \
184
184
(void ) Map; \
185
185
assert (Map[0 ].BreakDown == &AArch64::PartMappings[PartialMapDstIdx] && \
186
186
Map[0 ].NumBreakDowns == 1 && #RBNameDst #Size \
@@ -283,10 +283,12 @@ AArch64RegisterBankInfo::getInstrAlternativeMappings(
283
283
break ;
284
284
InstructionMappings AltMappings;
285
285
InstructionMapping GPRMapping (
286
- /* ID*/ 1 , /* Cost*/ 1 , AArch64::getValueMapping (AArch64::FirstGPR, Size),
286
+ /* ID*/ 1 , /* Cost*/ 1 ,
287
+ AArch64::getValueMapping (AArch64::PMI_FirstGPR, Size),
287
288
/* NumOperands*/ 3 );
288
289
InstructionMapping FPRMapping (
289
- /* ID*/ 2 , /* Cost*/ 1 , AArch64::getValueMapping (AArch64::FirstFPR, Size),
290
+ /* ID*/ 2 , /* Cost*/ 1 ,
291
+ AArch64::getValueMapping (AArch64::PMI_FirstFPR, Size),
290
292
/* NumOperands*/ 3 );
291
293
292
294
AltMappings.emplace_back (std::move (GPRMapping));
@@ -342,15 +344,17 @@ AArch64RegisterBankInfo::getInstrAlternativeMappings(
342
344
InstructionMappings AltMappings;
343
345
InstructionMapping GPRMapping (
344
346
/* ID*/ 1 , /* Cost*/ 1 ,
345
- getOperandsMapping ({AArch64::getValueMapping (AArch64::FirstGPR, Size),
346
- // Addresses are GPR 64-bit.
347
- AArch64::getValueMapping (AArch64::FirstGPR, 64 )}),
347
+ getOperandsMapping (
348
+ {AArch64::getValueMapping (AArch64::PMI_FirstGPR, Size),
349
+ // Addresses are GPR 64-bit.
350
+ AArch64::getValueMapping (AArch64::PMI_FirstGPR, 64 )}),
348
351
/* NumOperands*/ 2 );
349
352
InstructionMapping FPRMapping (
350
353
/* ID*/ 2 , /* Cost*/ 1 ,
351
- getOperandsMapping ({AArch64::getValueMapping (AArch64::FirstFPR, Size),
352
- // Addresses are GPR 64-bit.
353
- AArch64::getValueMapping (AArch64::FirstGPR, 64 )}),
354
+ getOperandsMapping (
355
+ {AArch64::getValueMapping (AArch64::PMI_FirstFPR, Size),
356
+ // Addresses are GPR 64-bit.
357
+ AArch64::getValueMapping (AArch64::PMI_FirstGPR, 64 )}),
354
358
/* NumOperands*/ 2 );
355
359
356
360
AltMappings.emplace_back (std::move (GPRMapping));
@@ -431,7 +435,7 @@ AArch64RegisterBankInfo::getSameKindOfOperandsMapping(const MachineInstr &MI) {
431
435
#endif // End NDEBUG.
432
436
433
437
AArch64::PartialMappingIdx RBIdx =
434
- IsFPR ? AArch64::FirstFPR : AArch64::FirstGPR ;
438
+ IsFPR ? AArch64::PMI_FirstFPR : AArch64::PMI_FirstGPR ;
435
439
436
440
return InstructionMapping{DefaultMappingID, 1 ,
437
441
AArch64::getValueMapping (RBIdx, Size), NumOperands};
@@ -508,9 +512,9 @@ AArch64RegisterBankInfo::getInstrMapping(const MachineInstr &MI) const {
508
512
// As a top-level guess, vectors go in FPRs, scalars and pointers in GPRs.
509
513
// For floating-point instructions, scalars go in FPRs.
510
514
if (Ty.isVector () || isPreISelGenericFloatingPointOpcode (Opc))
511
- OpRegBankIdx[Idx] = AArch64::FirstFPR ;
515
+ OpRegBankIdx[Idx] = AArch64::PMI_FirstFPR ;
512
516
else
513
- OpRegBankIdx[Idx] = AArch64::FirstGPR ;
517
+ OpRegBankIdx[Idx] = AArch64::PMI_FirstGPR ;
514
518
}
515
519
516
520
unsigned Cost = 1 ;
@@ -519,18 +523,18 @@ AArch64RegisterBankInfo::getInstrMapping(const MachineInstr &MI) const {
519
523
switch (Opc) {
520
524
case TargetOpcode::G_SITOFP:
521
525
case TargetOpcode::G_UITOFP: {
522
- OpRegBankIdx = {AArch64::FirstFPR , AArch64::FirstGPR };
526
+ OpRegBankIdx = {AArch64::PMI_FirstFPR , AArch64::PMI_FirstGPR };
523
527
break ;
524
528
}
525
529
case TargetOpcode::G_FPTOSI:
526
530
case TargetOpcode::G_FPTOUI: {
527
- OpRegBankIdx = {AArch64::FirstGPR , AArch64::FirstFPR };
531
+ OpRegBankIdx = {AArch64::PMI_FirstGPR , AArch64::PMI_FirstFPR };
528
532
break ;
529
533
}
530
534
case TargetOpcode::G_FCMP: {
531
- OpRegBankIdx = {AArch64::FirstGPR ,
532
- /* Predicate */ AArch64::PartialMappingIdx::None ,
533
- AArch64::FirstFPR, AArch64::FirstFPR };
535
+ OpRegBankIdx = {AArch64::PMI_FirstGPR ,
536
+ /* Predicate */ AArch64::PMI_None, AArch64::PMI_FirstFPR ,
537
+ AArch64::PMI_FirstFPR };
534
538
break ;
535
539
}
536
540
case TargetOpcode::G_BITCAST: {
@@ -548,7 +552,7 @@ AArch64RegisterBankInfo::getInstrMapping(const MachineInstr &MI) const {
548
552
// for the greedy mode the cost of the cross bank copy will
549
553
// offset this number.
550
554
// FIXME: Should be derived from the scheduling model.
551
- if (OpRegBankIdx[0 ] >= AArch64::FirstFPR )
555
+ if (OpRegBankIdx[0 ] >= AArch64::PMI_FirstFPR )
552
556
Cost = 2 ;
553
557
}
554
558
}
0 commit comments