diff options
| author | Roman Divacky <rdivacky@FreeBSD.org> | 2010-02-16 09:30:23 +0000 | 
|---|---|---|
| committer | Roman Divacky <rdivacky@FreeBSD.org> | 2010-02-16 09:30:23 +0000 | 
| commit | 6fe5c7aa327e188b7176daa5595bbf075a6b94df (patch) | |
| tree | 4cfca640904d1896e25032757a61f8959c066919 /lib/CodeGen/ProcessImplicitDefs.cpp | |
| parent | 989df958a10f0beb90b89ccadd8351cbe51d90b1 (diff) | |
Notes
Diffstat (limited to 'lib/CodeGen/ProcessImplicitDefs.cpp')
| -rw-r--r-- | lib/CodeGen/ProcessImplicitDefs.cpp | 21 | 
1 files changed, 10 insertions, 11 deletions
| diff --git a/lib/CodeGen/ProcessImplicitDefs.cpp b/lib/CodeGen/ProcessImplicitDefs.cpp index a00f4507af08..d7179b3e59c8 100644 --- a/lib/CodeGen/ProcessImplicitDefs.cpp +++ b/lib/CodeGen/ProcessImplicitDefs.cpp @@ -49,9 +49,9 @@ bool ProcessImplicitDefs::CanTurnIntoImplicitDef(MachineInstr *MI,        Reg == SrcReg)      return true; -  if (OpIdx == 2 && MI->getOpcode() == TargetInstrInfo::SUBREG_TO_REG) +  if (OpIdx == 2 && MI->isSubregToReg())      return true; -  if (OpIdx == 1 && MI->getOpcode() == TargetInstrInfo::EXTRACT_SUBREG) +  if (OpIdx == 1 && MI->isExtractSubreg())      return true;    return false;  } @@ -88,7 +88,7 @@ bool ProcessImplicitDefs::runOnMachineFunction(MachineFunction &fn) {           I != E; ) {        MachineInstr *MI = &*I;        ++I; -      if (MI->getOpcode() == TargetInstrInfo::IMPLICIT_DEF) { +      if (MI->isImplicitDef()) {          unsigned Reg = MI->getOperand(0).getReg();          ImpDefRegs.insert(Reg);          if (TargetRegisterInfo::isPhysicalRegister(Reg)) { @@ -99,7 +99,7 @@ bool ProcessImplicitDefs::runOnMachineFunction(MachineFunction &fn) {          continue;        } -      if (MI->getOpcode() == TargetInstrInfo::INSERT_SUBREG) { +      if (MI->isInsertSubreg()) {          MachineOperand &MO = MI->getOperand(2);          if (ImpDefRegs.count(MO.getReg())) {            // %reg1032<def> = INSERT_SUBREG %reg1032, undef, 2 @@ -127,7 +127,7 @@ bool ProcessImplicitDefs::runOnMachineFunction(MachineFunction &fn) {          // Use is a copy, just turn it into an implicit_def.          if (CanTurnIntoImplicitDef(MI, Reg, i, tii_)) {            bool isKill = MO.isKill(); -          MI->setDesc(tii_->get(TargetInstrInfo::IMPLICIT_DEF)); +          MI->setDesc(tii_->get(TargetOpcode::IMPLICIT_DEF));            for (int j = MI->getNumOperands() - 1, ee = 0; j > ee; --j)              MI->RemoveOperand(j);            if (isKill) { @@ -187,7 +187,7 @@ bool ProcessImplicitDefs::runOnMachineFunction(MachineFunction &fn) {        for (MachineRegisterInfo::def_iterator DI = mri_->def_begin(Reg),               DE = mri_->def_end(); DI != DE; ++DI) {          MachineInstr *DeadImpDef = &*DI; -        if (DeadImpDef->getOpcode() != TargetInstrInfo::IMPLICIT_DEF) { +        if (!DeadImpDef->isImplicitDef()) {            Skip = true;            break;          } @@ -205,10 +205,9 @@ bool ProcessImplicitDefs::runOnMachineFunction(MachineFunction &fn) {        // Process each use instruction once.        for (MachineRegisterInfo::use_iterator UI = mri_->use_begin(Reg),               UE = mri_->use_end(); UI != UE; ++UI) { -        MachineInstr *RMI = &*UI; -        MachineBasicBlock *RMBB = RMI->getParent(); -        if (RMBB == MBB) +        if (UI.getOperand().isUndef())            continue; +        MachineInstr *RMI = &*UI;          if (ModInsts.insert(RMI))            RUses.push_back(RMI);        } @@ -220,7 +219,7 @@ bool ProcessImplicitDefs::runOnMachineFunction(MachineFunction &fn) {          unsigned SrcReg, DstReg, SrcSubReg, DstSubReg;          if (tii_->isMoveInstr(*RMI, SrcReg, DstReg, SrcSubReg, DstSubReg) &&              Reg == SrcReg) { -          RMI->setDesc(tii_->get(TargetInstrInfo::IMPLICIT_DEF)); +          RMI->setDesc(tii_->get(TargetOpcode::IMPLICIT_DEF));            bool isKill = false;            SmallVector<unsigned, 4> Ops; @@ -264,8 +263,8 @@ bool ProcessImplicitDefs::runOnMachineFunction(MachineFunction &fn) {          }        }        RUses.clear(); +      ModInsts.clear();      } -    ModInsts.clear();      ImpDefRegs.clear();      ImpDefMIs.clear();    } | 
