MVT::SimpleValueType VT = MVT::Other;
const CodeGenRegister *Reg = T.getRegBank().getReg(R);
- for (const auto *RC : T.getRegBank().getRegClasses()) {
- if (!RC->contains(Reg))
+ for (const auto &RC : T.getRegBank().getRegClasses()) {
+ if (!RC.contains(Reg))
continue;
if (!FoundRC) {
FoundRC = true;
- VT = RC->getValueTypeNum(0);
+ VT = RC.getValueTypeNum(0);
continue;
}
// If this occurs in multiple register classes, they all have to agree.
- assert(VT == RC->getValueTypeNum(0));
+ assert(VT == RC.getValueTypeNum(0));
}
return VT;
}
}
// An UnsetInit represents a named node without any constraints.
- if (N->getLeafValue() == UnsetInit::get()) {
+ if (isa<UnsetInit>(N->getLeafValue())) {
assert(N->hasName() && "Unnamed ? leaf");
return;
}
// We can't model ComplexPattern uses that don't have their name taken yet.
// The OPC_CheckComplexPattern operation implicitly records the results.
if (N->getName().empty()) {
- errs() << "We expect complex pattern uses to have names: " << *N << "\n";
- exit(1);
+ std::string S;
+ raw_string_ostream OS(S);
+ OS << "We expect complex pattern uses to have names: " << *N;
+ PrintFatalError(OS.str());
}
// Remember this ComplexPattern so that we can emit it after all the other