PowerPCInstrInfo has gone away, PPC32 and PPC64 share opcodes.
[oota-llvm.git] / lib / Target / TargetSchedInfo.cpp
index f33223c43a6805817896838ac75c8a70a7c61570..b123326e63fec650d45a280dd8dcf453e4c03168 100644 (file)
 
 #include "llvm/Target/TargetSchedInfo.h"
 #include "llvm/Target/TargetMachine.h"
+#include <iostream>
+using namespace llvm;
 
-namespace llvm {
+resourceId_t llvm::CPUResource::nextId = 0;
+static std::vector<CPUResource*> *CPUResourceMap = 0;
+  
+CPUResource::CPUResource(const std::string& resourceName, int maxUsers)
+    : rname(resourceName), rid(nextId++), maxNumUsers(maxUsers) {
+  if(!CPUResourceMap)
+    CPUResourceMap = new std::vector<CPUResource*>;
 
-resourceId_t MachineResource::nextId = 0;
+  //Put Resource in the map
+  CPUResourceMap->push_back(this);
+}
+
+///Get CPUResource if you only have the resource ID
+CPUResource* CPUResource::getCPUResource(resourceId_t id) {
+  return (*CPUResourceMap)[id];
+}
 
 // Check if fromRVec and toRVec have *any* common entries.
 // Assume the vectors are sorted in increasing order.
@@ -86,7 +101,7 @@ TargetSchedInfo::TargetSchedInfo(const TargetMachine&    tgt,
                                  unsigned NumUsageDeltas,
                                  unsigned NumIssueDeltas)
   : target(tgt),
-    numSchedClasses(NumSchedClasses), mii(tgt.getInstrInfo()),
+    numSchedClasses(NumSchedClasses), mii(tgt.getInstrInfo()),
     classRUsages(ClassRUsages), usageDeltas(UsageDeltas),
     issueDeltas(IssueDeltas), numUsageDeltas(NumUsageDeltas),
     numIssueDeltas(NumIssueDeltas)
@@ -119,7 +134,7 @@ void
 TargetSchedInfo::computeInstrResources(const std::vector<InstrRUsage>&
                                        instrRUForClasses)
 {
-  int numOpCodes =  mii->getNumRealOpCodes();
+  int numOpCodes =  mii->getNumOpcodes();
   instrRUsages.resize(numOpCodes);
   
   // First get the resource usage information from the class resource usages.
@@ -149,7 +164,7 @@ void
 TargetSchedInfo::computeIssueGaps(const std::vector<InstrRUsage>&
                                   instrRUForClasses)
 {
-  int numOpCodes =  mii->getNumRealOpCodes();
+  int numOpCodes =  mii->getNumOpcodes();
   issueGaps.resize(numOpCodes);
   conflictLists.resize(numOpCodes);
 
@@ -251,5 +266,3 @@ void InstrRUsage::addUsageDelta(const InstrRUsageDelta &delta) {
       assert(r >= 0 && "Resource to remove was unused in cycle c!");
     }
 }
-
-} // End llvm namespace