TableGen subtarget parser: Add getProcResourcesIdx().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164057 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/utils/TableGen/CodeGenSchedule.cpp b/utils/TableGen/CodeGenSchedule.cpp
index 3c6298d..0babda3 100644
--- a/utils/TableGen/CodeGenSchedule.cpp
+++ b/utils/TableGen/CodeGenSchedule.cpp
@@ -1274,6 +1274,16 @@
   RADefs.push_back(ProcReadAdvanceDef);
 }
 
+unsigned CodeGenProcModel::getProcResourceIdx(Record *PRDef) const {
+  RecIter PRPos = std::find(ProcResourceDefs.begin(), ProcResourceDefs.end(),
+                            PRDef);
+  if (PRPos == ProcResourceDefs.end())
+    throw TGError(PRDef->getLoc(), "ProcResource def is not included in "
+                  "the ProcResources list for " + ModelName);
+  // Idx=0 is reserved for invalid.
+  return 1 + PRPos - ProcResourceDefs.begin();
+}
+
 #ifndef NDEBUG
 void CodeGenProcModel::dump() const {
   dbgs() << Index << ": " << ModelName << " "