@@ -253,9 +253,9 @@ LiveVariables::FindLastPartialDef(Register Reg,
253253// / implicit defs to a machine instruction if there was an earlier def of its
254254// / super-register.
255255void LiveVariables::HandlePhysRegUse (Register Reg, MachineInstr &MI) {
256- MachineInstr *LastDef = PhysRegDef[Reg];
256+ MachineInstr *LastDef = PhysRegDef[Reg. id () ];
257257 // If there was a previous use or a "full" def all is well.
258- if (!LastDef && !PhysRegUse[Reg]) {
258+ if (!LastDef && !PhysRegUse[Reg. id () ]) {
259259 // Otherwise, the last sub-register def implicitly defines this register.
260260 // e.g.
261261 // AH =
@@ -270,7 +270,7 @@ void LiveVariables::HandlePhysRegUse(Register Reg, MachineInstr &MI) {
270270 if (LastPartialDef) {
271271 LastPartialDef->addOperand (MachineOperand::CreateReg (Reg, true /* IsDef*/ ,
272272 true /* IsImp*/ ));
273- PhysRegDef[Reg] = LastPartialDef;
273+ PhysRegDef[Reg. id () ] = LastPartialDef;
274274 SmallSet<MCPhysReg, 8 > Processed;
275275 for (MCPhysReg SubReg : TRI->subregs (Reg)) {
276276 if (Processed.count (SubReg))
@@ -287,7 +287,7 @@ void LiveVariables::HandlePhysRegUse(Register Reg, MachineInstr &MI) {
287287 Processed.insert (SS);
288288 }
289289 }
290- } else if (LastDef && !PhysRegUse[Reg] &&
290+ } else if (LastDef && !PhysRegUse[Reg. id () ] &&
291291 !LastDef->findRegisterDefOperand (Reg, /* TRI=*/ nullptr ))
292292 // Last def defines the super register, add an implicit def of reg.
293293 LastDef->addOperand (MachineOperand::CreateReg (Reg, true /* IsDef*/ ,
@@ -301,8 +301,8 @@ void LiveVariables::HandlePhysRegUse(Register Reg, MachineInstr &MI) {
301301// / FindLastRefOrPartRef - Return the last reference or partial reference of
302302// / the specified register.
303303MachineInstr *LiveVariables::FindLastRefOrPartRef (Register Reg) {
304- MachineInstr *LastDef = PhysRegDef[Reg];
305- MachineInstr *LastUse = PhysRegUse[Reg];
304+ MachineInstr *LastDef = PhysRegDef[Reg. id () ];
305+ MachineInstr *LastUse = PhysRegUse[Reg. id () ];
306306 if (!LastDef && !LastUse)
307307 return nullptr ;
308308
@@ -330,8 +330,8 @@ MachineInstr *LiveVariables::FindLastRefOrPartRef(Register Reg) {
330330}
331331
332332bool LiveVariables::HandlePhysRegKill (Register Reg, MachineInstr *MI) {
333- MachineInstr *LastDef = PhysRegDef[Reg];
334- MachineInstr *LastUse = PhysRegUse[Reg];
333+ MachineInstr *LastDef = PhysRegDef[Reg. id () ];
334+ MachineInstr *LastUse = PhysRegUse[Reg. id () ];
335335 if (!LastDef && !LastUse)
336336 return false ;
337337
@@ -380,27 +380,27 @@ bool LiveVariables::HandlePhysRegKill(Register Reg, MachineInstr *MI) {
380380 }
381381 }
382382
383- if (!PhysRegUse[Reg]) {
383+ if (!PhysRegUse[Reg. id () ]) {
384384 // Partial uses. Mark register def dead and add implicit def of
385385 // sub-registers which are used.
386386 // dead EAX = op implicit-def AL
387387 // That is, EAX def is dead but AL def extends pass it.
388- PhysRegDef[Reg]->addRegisterDead (Reg, TRI, true );
388+ PhysRegDef[Reg. id () ]->addRegisterDead (Reg, TRI, true );
389389 for (MCPhysReg SubReg : TRI->subregs (Reg)) {
390390 if (!PartUses.count (SubReg))
391391 continue ;
392392 bool NeedDef = true ;
393- if (PhysRegDef[Reg] == PhysRegDef[SubReg]) {
394- MachineOperand *MO =
395- PhysRegDef[Reg]-> findRegisterDefOperand ( SubReg, /* TRI=*/ nullptr );
393+ if (PhysRegDef[Reg. id () ] == PhysRegDef[SubReg]) {
394+ MachineOperand *MO = PhysRegDef[Reg. id ()]-> findRegisterDefOperand (
395+ SubReg, /* TRI=*/ nullptr );
396396 if (MO) {
397397 NeedDef = false ;
398398 assert (!MO->isDead ());
399399 }
400400 }
401401 if (NeedDef)
402- PhysRegDef[Reg]->addOperand (MachineOperand::CreateReg (SubReg,
403- true /* IsDef*/ , true /* IsImp*/ ));
402+ PhysRegDef[Reg. id () ]->addOperand (
403+ MachineOperand::CreateReg (SubReg, true /* IsDef*/ , true /* IsImp*/ ));
404404 MachineInstr *LastSubRef = FindLastRefOrPartRef (SubReg);
405405 if (LastSubRef)
406406 LastSubRef->addRegisterKilled (SubReg, TRI, true );
@@ -412,7 +412,8 @@ bool LiveVariables::HandlePhysRegKill(Register Reg, MachineInstr *MI) {
412412 for (MCPhysReg SS : TRI->subregs (SubReg))
413413 PartUses.erase (SS);
414414 }
415- } else if (LastRefOrPartRef == PhysRegDef[Reg] && LastRefOrPartRef != MI) {
415+ } else if (LastRefOrPartRef == PhysRegDef[Reg.id ()] &&
416+ LastRefOrPartRef != MI) {
416417 if (LastPartDef)
417418 // The last partial def kills the register.
418419 LastPartDef->addOperand (MachineOperand::CreateReg (Reg, false /* IsDef*/ ,
@@ -463,7 +464,7 @@ void LiveVariables::HandlePhysRegDef(Register Reg, MachineInstr *MI,
463464 SmallVectorImpl<Register> &Defs) {
464465 // What parts of the register are previously defined?
465466 SmallSet<unsigned , 32 > Live;
466- if (PhysRegDef[Reg] || PhysRegUse[Reg]) {
467+ if (PhysRegDef[Reg. id () ] || PhysRegUse[Reg. id () ]) {
467468 for (MCPhysReg SubReg : TRI->subregs_inclusive (Reg))
468469 Live.insert (SubReg);
469470 } else {
0 commit comments