const MCInstrDesc &InstInfo = Info->get(Inst.getOpcode());
- const MCPhysReg *ImplicitDefs = InstInfo.getImplicitDefs();
- for (unsigned I = 0, E = InstInfo.getNumImplicitDefs(); I != E; ++I)
- Regs |= getAliases(ImplicitDefs[I], /*OnlySmaller=*/false);
+ for (MCPhysReg ImplicitDef : InstInfo.implicit_defs())
+ Regs |= getAliases(ImplicitDef, /*OnlySmaller=*/false);
for (unsigned I = 0, E = InstInfo.getNumDefs(); I != E; ++I) {
const MCOperand &Operand = Inst.getOperand(I);
const MCInstrDesc &InstInfo = Info->get(Inst.getOpcode());
- const MCPhysReg *ImplicitDefs = InstInfo.getImplicitDefs();
- for (unsigned I = 0, E = InstInfo.getNumImplicitDefs(); I != E; ++I)
- Regs |= getAliases(ImplicitDefs[I], /*OnlySmaller=*/false);
- const MCPhysReg *ImplicitUses = InstInfo.getImplicitUses();
- for (unsigned I = 0, E = InstInfo.getNumImplicitUses(); I != E; ++I)
- Regs |= getAliases(ImplicitUses[I], /*OnlySmaller=*/false);
+ for (MCPhysReg ImplicitDef : InstInfo.implicit_defs())
+ Regs |= getAliases(ImplicitDef, /*OnlySmaller=*/false);
+ for (MCPhysReg ImplicitUse : InstInfo.implicit_uses())
+ Regs |= getAliases(ImplicitUse, /*OnlySmaller=*/false);
for (unsigned I = 0, E = Inst.getNumOperands(); I != E; ++I) {
if (!Inst.getOperand(I).isReg())
const MCInstrDesc &InstInfo = Info->get(Inst.getOpcode());
- const MCPhysReg *ImplicitDefs = InstInfo.getImplicitDefs();
- for (unsigned I = 0, E = InstInfo.getNumImplicitDefs(); I != E; ++I)
- Regs |= getAliases(ImplicitDefs[I], /*OnlySmaller=*/true);
+ for (MCPhysReg ImplicitDef : InstInfo.implicit_defs())
+ Regs |= getAliases(ImplicitDef, /*OnlySmaller=*/true);
for (unsigned I = 0, E = InstInfo.getNumDefs(); I != E; ++I) {
const MCOperand &Operand = Inst.getOperand(I);
const MCInstrDesc &InstInfo = Info->get(Inst.getOpcode());
- const MCPhysReg *ImplicitUses = InstInfo.getImplicitUses();
- for (unsigned I = 0, E = InstInfo.getNumImplicitUses(); I != E; ++I)
- Regs |= getAliases(ImplicitUses[I], /*OnlySmaller=*/true);
+ for (MCPhysReg ImplicitUse : InstInfo.implicit_uses())
+ Regs |= getAliases(ImplicitUse, /*OnlySmaller=*/true);
for (unsigned I = 0, E = Inst.getNumOperands(); I != E; ++I) {
if (!Inst.getOperand(I).isReg())
const MCInstrDesc &InstInfo = Info->get(Inst.getOpcode());
- const MCPhysReg *ImplicitUses = InstInfo.getImplicitUses();
- for (unsigned I = 0, E = InstInfo.getNumImplicitUses(); I != E; ++I)
- Regs |= getAliases(ImplicitUses[I], /*OnlySmaller=*/true);
+ for (MCPhysReg ImplicitUse : InstInfo.implicit_uses())
+ Regs |= getAliases(ImplicitUse, /*OnlySmaller=*/true);
for (unsigned I = InstInfo.getNumDefs(), E = InstInfo.getNumOperands();
I != E; ++I) {
if (MI.getOperand(I).isReg() &&
RegInfo->isSubRegisterEq(Reg, MI.getOperand(I).getReg()))
return true;
- if (const uint16_t *ImpUses = InstInfo.ImplicitUses) {
- for (; *ImpUses; ++ImpUses)
- if (*ImpUses == Reg || RegInfo->isSubRegister(Reg, *ImpUses))
- return true;
+ for (MCPhysReg ImplicitUse : InstInfo.implicit_uses()) {
+ if (ImplicitUse == Reg || RegInfo->isSubRegister(Reg, ImplicitUse))
+ return true;
}
return false;
}
const MCInstrDesc &Desc = BC.MII->get(Inst.getOpcode());
// Disallow substituitions involving regs in implicit uses lists
- const MCPhysReg *ImplicitUses = Desc.getImplicitUses();
- while (ImplicitUses && *ImplicitUses) {
+ for (MCPhysReg ImplicitUse : Desc.implicit_uses()) {
const size_t RegEC =
- BC.MIB->getAliases(*ImplicitUses, false).find_first();
+ BC.MIB->getAliases(ImplicitUse, false).find_first();
RegScore[RegEC] =
std::numeric_limits<decltype(RegScore)::value_type>::min();
- ++ImplicitUses;
}
// Disallow substituitions involving regs in implicit defs lists
- const MCPhysReg *ImplicitDefs = Desc.getImplicitDefs();
- while (ImplicitDefs && *ImplicitDefs) {
+ for (MCPhysReg ImplicitDef : Desc.implicit_defs()) {
const size_t RegEC =
- BC.MIB->getAliases(*ImplicitDefs, false).find_first();
+ BC.MIB->getAliases(ImplicitDef, false).find_first();
RegScore[RegEC] =
std::numeric_limits<decltype(RegScore)::value_type>::min();
- ++ImplicitDefs;
}
for (int I = 0, E = MCPlus::getNumPrimeOperands(Inst); I != E; ++I) {