aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/PBQP/Heuristics/Briggs.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/CodeGen/PBQP/Heuristics/Briggs.h')
-rw-r--r--lib/CodeGen/PBQP/Heuristics/Briggs.h38
1 files changed, 18 insertions, 20 deletions
diff --git a/lib/CodeGen/PBQP/Heuristics/Briggs.h b/lib/CodeGen/PBQP/Heuristics/Briggs.h
index fd37f5cbb3..255ffef529 100644
--- a/lib/CodeGen/PBQP/Heuristics/Briggs.h
+++ b/lib/CodeGen/PBQP/Heuristics/Briggs.h
@@ -1,3 +1,20 @@
+//===-- Briggs.h --- Briggs Heuristic for PBQP -----------------*- C++ --*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This class implements the Briggs test for "allocability" of nodes in a
+// PBQP graph representing a register allocation problem. Nodes which can be
+// proven allocable (by a safe and relatively accurate test) are removed from
+// the PBQP graph first. If no provably allocable node is present in the graph
+// then the node with the minimal spill-cost to degree ratio is removed.
+//
+//===----------------------------------------------------------------------===//
+
#ifndef LLVM_CODEGEN_PBQP_HEURISTICS_BRIGGS_H
#define LLVM_CODEGEN_PBQP_HEURISTICS_BRIGGS_H
@@ -327,26 +344,7 @@ class Briggs {
}
void processRN() {
-
- /*
- std::cerr << "processRN():\n"
- << " rNAllocable = [ ";
- for (RNAllocableNodeListIterator nItr = rNAllocableBucket.begin(),
- nEnd = rNAllocableBucket.end();
- nItr != nEnd; ++nItr) {
- std::cerr << g->getNodeID(*nItr) << " (" << g->getNodeData(*nItr).getLinkDegree() << ") ";
- }
- std::cerr << "]\n"
- << " rNUnallocable = [ ";
- for (RNUnallocableNodeListIterator nItr = rNUnallocableBucket.begin(),
- nEnd = rNUnallocableBucket.end();
- nItr != nEnd; ++nItr) {
- float bCost = g->getNodeCosts(*nItr)[0] / g->getNodeData(*nItr).getLinkDegree();
- std::cerr << g->getNodeID(*nItr) << " (" << bCost << ") ";
- }
- std::cerr << "]\n";
- */
-
+
if (!rNAllocableBucket.empty()) {
GraphNodeIterator selectedNodeItr = *rNAllocableBucket.begin();
//std::cerr << "RN safely pushing " << g->getNodeID(selectedNodeItr) << "\n";