unsigned CodeGenSchedModels::findSchedClassIdx(Record *ItinClassDef,
ArrayRef<unsigned> Writes,
ArrayRef<unsigned> Reads) const {
- for (SchedClassIter I = schedClassBegin(), E = schedClassEnd(); I != E; ++I) {
- if (I->ItinClassDef == ItinClassDef && makeArrayRef(I->Writes) == Writes &&
- makeArrayRef(I->Reads) == Reads) {
+ for (SchedClassIter I = schedClassBegin(), E = schedClassEnd(); I != E; ++I)
+ if (I->isKeyEqual(ItinClassDef, Writes, Reads))
return I - schedClassBegin();
- }
- }
return 0;
}
CodeGenSchedClass(): Index(0), ItinClassDef(nullptr) {}
- bool isKeyEqual(Record *IC, ArrayRef<unsigned> W, ArrayRef<unsigned> R) {
+ bool isKeyEqual(Record *IC, ArrayRef<unsigned> W,
+ ArrayRef<unsigned> R) const {
return ItinClassDef == IC && makeArrayRef(Writes) == W &&
makeArrayRef(Reads) == R;
}