Skip to content

Commit 2343938

Browse files
Added the register class for the phony registers. Also updated a number of tests.
1 parent f9b945f commit 2343938

14 files changed

+10
-537
lines changed

llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp

Lines changed: 1 addition & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -434,92 +434,7 @@ BitVector PPCRegisterInfo::getReservedRegs(const MachineFunction &MF) const {
434434
}
435435
}
436436
}
437-
438-
// Mark phony regsiters for the VSR high bits as reserved so that they are
439-
// not used.
440-
Reserved.set(PPC::FH0);
441-
Reserved.set(PPC::FH1);
442-
Reserved.set(PPC::FH2);
443-
Reserved.set(PPC::FH3);
444-
Reserved.set(PPC::FH4);
445-
Reserved.set(PPC::FH5);
446-
Reserved.set(PPC::FH6);
447-
Reserved.set(PPC::FH7);
448-
Reserved.set(PPC::FH8);
449-
Reserved.set(PPC::FH9);
450-
Reserved.set(PPC::FH10);
451-
Reserved.set(PPC::FH11);
452-
Reserved.set(PPC::FH12);
453-
Reserved.set(PPC::FH13);
454-
Reserved.set(PPC::FH14);
455-
Reserved.set(PPC::FH15);
456-
Reserved.set(PPC::FH16);
457-
Reserved.set(PPC::FH17);
458-
Reserved.set(PPC::FH18);
459-
Reserved.set(PPC::FH19);
460-
Reserved.set(PPC::FH20);
461-
Reserved.set(PPC::FH21);
462-
Reserved.set(PPC::FH22);
463-
Reserved.set(PPC::FH23);
464-
Reserved.set(PPC::FH24);
465-
Reserved.set(PPC::FH25);
466-
Reserved.set(PPC::FH26);
467-
Reserved.set(PPC::FH27);
468-
Reserved.set(PPC::FH28);
469-
Reserved.set(PPC::FH29);
470-
Reserved.set(PPC::FH30);
471-
Reserved.set(PPC::FH31);
472-
473-
Reserved.set(PPC::VFH0);
474-
Reserved.set(PPC::VFH1);
475-
Reserved.set(PPC::VFH2);
476-
Reserved.set(PPC::VFH3);
477-
Reserved.set(PPC::VFH4);
478-
Reserved.set(PPC::VFH5);
479-
Reserved.set(PPC::VFH6);
480-
Reserved.set(PPC::VFH7);
481-
Reserved.set(PPC::VFH8);
482-
Reserved.set(PPC::VFH9);
483-
Reserved.set(PPC::VFH10);
484-
Reserved.set(PPC::VFH11);
485-
Reserved.set(PPC::VFH12);
486-
Reserved.set(PPC::VFH13);
487-
Reserved.set(PPC::VFH14);
488-
Reserved.set(PPC::VFH15);
489-
Reserved.set(PPC::VFH16);
490-
Reserved.set(PPC::VFH17);
491-
Reserved.set(PPC::VFH18);
492-
Reserved.set(PPC::VFH19);
493-
Reserved.set(PPC::VFH20);
494-
Reserved.set(PPC::VFH21);
495-
Reserved.set(PPC::VFH22);
496-
Reserved.set(PPC::VFH23);
497-
Reserved.set(PPC::VFH24);
498-
Reserved.set(PPC::VFH25);
499-
Reserved.set(PPC::VFH26);
500-
Reserved.set(PPC::VFH27);
501-
Reserved.set(PPC::VFH28);
502-
Reserved.set(PPC::VFH29);
503-
Reserved.set(PPC::VFH30);
504-
Reserved.set(PPC::VFH31);
505-
506-
assert(checkAllSuperRegsMarked(Reserved,
507-
{PPC::FH0, PPC::FH1, PPC::FH2, PPC::FH3,
508-
PPC::FH4, PPC::FH5, PPC::FH6, PPC::FH7,
509-
PPC::FH8, PPC::FH9, PPC::FH10, PPC::FH11,
510-
PPC::FH12, PPC::FH13, PPC::FH14, PPC::FH15,
511-
PPC::FH16, PPC::FH17, PPC::FH18, PPC::FH19,
512-
PPC::FH20, PPC::FH21, PPC::FH22, PPC::FH23,
513-
PPC::FH24, PPC::FH25, PPC::FH26, PPC::FH27,
514-
PPC::FH28, PPC::FH29, PPC::FH30, PPC::FH31,
515-
PPC::VFH0, PPC::VFH1, PPC::VFH2, PPC::VFH3,
516-
PPC::VFH4, PPC::VFH5, PPC::VFH6, PPC::VFH7,
517-
PPC::VFH8, PPC::VFH9, PPC::VFH10, PPC::VFH11,
518-
PPC::VFH12, PPC::VFH13, PPC::VFH14, PPC::VFH15,
519-
PPC::VFH16, PPC::VFH17, PPC::VFH18, PPC::VFH19,
520-
PPC::VFH20, PPC::VFH21, PPC::VFH22, PPC::VFH23,
521-
PPC::VFH24, PPC::VFH25, PPC::VFH26, PPC::VFH27,
522-
PPC::VFH28, PPC::VFH29, PPC::VFH30, PPC::VFH31}));
437+
assert(checkAllSuperRegsMarked(Reserved));
523438
return Reserved;
524439
}
525440

llvm/lib/Target/PowerPC/PPCRegisterInfo.td

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -159,9 +159,15 @@ foreach Index = 0-31 in {
159159
let isArtificial = 1 in {
160160
foreach Index = 0-31 in {
161161
def FH#Index : FPR<-1, "">;
162+
def VFH#Index : VF<-1, "">;
162163
}
163164
}
164165

166+
let isAllocatable = 0, CopyCost = -1 in {
167+
def VFHRC : RegisterClass<"PPC", [f64], 64, (sequence "VFH%u", 0, 31)>;
168+
def FHRC : RegisterClass<"PPC", [f64], 64, (sequence "FH%u", 0, 31)>;
169+
}
170+
165171
// Floating-point pair registers
166172
foreach Index = { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 } in {
167173
def Fpair#Index : FPPair<"fp"#Index, Index>;
@@ -175,12 +181,6 @@ foreach Index = 0-31 in {
175181
DwarfRegNum<[!add(Index, 77), !add(Index, 77)]>;
176182
}
177183

178-
let isArtificial = 1 in {
179-
foreach Index = 0-31 in {
180-
def VFH#Index : VF<-1, "">;
181-
}
182-
}
183-
184184
let CoveredBySubRegs = 1 in {
185185
// Vector registers
186186
foreach Index = 0-31 in {

llvm/test/CodeGen/PowerPC/aix32-p8-scalar_vector_conversions.ll

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1099,7 +1099,6 @@ define double @getd1(<2 x double> %vd) {
10991099
; CHECK-LABEL: getd1:
11001100
; CHECK: # %bb.0: # %entry
11011101
; CHECK-NEXT: xxswapd 1, 34
1102-
; CHECK-NEXT: # kill: def $f1 killed $f1 killed $vsl1
11031102
; CHECK-NEXT: blr
11041103
entry:
11051104
%vecext = extractelement <2 x double> %vd, i32 1
@@ -1115,7 +1114,6 @@ define double @getveld(<2 x double> %vd, i32 signext %i) {
11151114
; CHECK-NEXT: lvsl 3, 0, 3
11161115
; CHECK-NEXT: vperm 2, 2, 2, 3
11171116
; CHECK-NEXT: xxlor 1, 34, 34
1118-
; CHECK-NEXT: # kill: def $f1 killed $f1 killed $vsl1
11191117
; CHECK-NEXT: blr
11201118
entry:
11211119
%vecext = extractelement <2 x double> %vd, i32 %i

0 commit comments

Comments
 (0)