Tablegen'd regpressure: emit the weighted pressure limit.
authorAndrew Trick <atrick@apple.com>
Wed, 11 Apr 2012 04:31:33 +0000 (04:31 +0000)
committerAndrew Trick <atrick@apple.com>
Wed, 11 Apr 2012 04:31:33 +0000 (04:31 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154477 91177308-0d34-0410-b5e6-96231b3b80d8

utils/TableGen/RegisterInfoEmitter.cpp

index ac89e258431168ffe970eeeea0f83f3188924046..8085955baf155454c2af25028f9a278a5c5fc1cb 100644 (file)
@@ -152,7 +152,13 @@ EmitRegUnitPressure(raw_ostream &OS, const CodeGenRegBank &RegBank,
      << "getRegPressureSetLimit(unsigned Idx) const {\n"
      << "  static const unsigned PressureLimitTable[] = {\n";
   for (unsigned i = 0; i < NumSets; ++i ) {
-    OS << "    " << RegBank.getRegPressureSet(i).Units.size()
+    const RegUnitSet &RegUnits = RegBank.getRegPressureSet(i);
+    unsigned Weight = 0;
+    for (RegUnitSet::iterator
+           I = RegUnits.Units.begin(), E = RegUnits.Units.end(); I != E; ++I) {
+      Weight += RegBank.getRegUnitWeight(*I);
+    }
+    OS << "    " << Weight
        << ",  \t// " << i << ": " << RegBank.getRegPressureSet(i).Name << "\n";
   }
   OS << "    0 };\n"