TableGen subtarget parser: Add getProcResourcesIdx().
authorAndrew Trick <atrick@apple.com>
Mon, 17 Sep 2012 22:18:43 +0000 (22:18 +0000)
committerAndrew Trick <atrick@apple.com>
Mon, 17 Sep 2012 22:18:43 +0000 (22:18 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164057 91177308-0d34-0410-b5e6-96231b3b80d8

utils/TableGen/CodeGenSchedule.cpp

index 3c6298da93362e6eb565a09a52fecedb51fc8c8b..0babda3c4f566f8a24964697ad519a2fdf90aaa2 100644 (file)
@@ -1274,6 +1274,16 @@ void CodeGenSchedModels::addReadAdvance(Record *ProcReadAdvanceDef,
   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 << " "