summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorConnor Abbott <[email protected]>2014-07-31 18:57:20 -0700
committerKenneth Graunke <[email protected]>2014-08-13 11:43:05 -0700
commit9a0b52e7c1c0d7668e1acd7bb806432bb449a9c7 (patch)
tree0700c2e5e02864cd055f4c91827106b21940e49d
parentd72d67832bd7a5f2aa0c402333a7de6804ad35ef (diff)
ra: cleanup the public API
Previously, there were 3 entrypoints into parts of the actual allocator, and an API called ra_allocate_no_spills() that called all 3. Nobody would ever want to call any of the 3 entrypoints by themselves, so everybody just used ra_allocate_no_spills(). So just make them static functions, and while we're at it rename ra_allocate_no_spills() to ra_allocate() since there's no equivalent "with spills," because the backend is supposed to handle spilling. Signed-off-by: Connor Abbott <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
-rw-r--r--src/gallium/drivers/r300/compiler/radeon_pair_regalloc.c2
-rw-r--r--src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp2
-rw-r--r--src/mesa/drivers/dri/i965/brw_vec4_reg_allocate.cpp2
-rw-r--r--src/mesa/program/register_allocate.c12
-rw-r--r--src/mesa/program/register_allocate.h5
5 files changed, 10 insertions, 13 deletions
diff --git a/src/gallium/drivers/r300/compiler/radeon_pair_regalloc.c b/src/gallium/drivers/r300/compiler/radeon_pair_regalloc.c
index 7b02e53a482..936c88db92c 100644
--- a/src/gallium/drivers/r300/compiler/radeon_pair_regalloc.c
+++ b/src/gallium/drivers/r300/compiler/radeon_pair_regalloc.c
@@ -617,7 +617,7 @@ static void do_advanced_regalloc(struct regalloc_state * s)
input_node++;
}
- if (!ra_allocate_no_spills(graph)) {
+ if (!ra_allocate(graph)) {
rc_error(s->C, "Ran out of hardware temporaries\n");
return;
}
diff --git a/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp b/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp
index d62627153c2..fb77b925b1a 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp
@@ -486,7 +486,7 @@ fs_visitor::assign_regs(bool allow_spilling)
}
}
- if (!ra_allocate_no_spills(g)) {
+ if (!ra_allocate(g)) {
/* Failed to allocate registers. Spill a reg, and the caller will
* loop back into here to try again.
*/
diff --git a/src/mesa/drivers/dri/i965/brw_vec4_reg_allocate.cpp b/src/mesa/drivers/dri/i965/brw_vec4_reg_allocate.cpp
index 1caf5ab22f6..ddab342ddc7 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4_reg_allocate.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4_reg_allocate.cpp
@@ -207,7 +207,7 @@ vec4_visitor::reg_allocate()
setup_payload_interference(g, first_payload_node, node_count);
- if (!ra_allocate_no_spills(g)) {
+ if (!ra_allocate(g)) {
/* Failed to allocate registers. Spill a reg, and the caller will
* loop back into here to try again.
*/
diff --git a/src/mesa/program/register_allocate.c b/src/mesa/program/register_allocate.c
index 549154e8a93..e0f04cf6269 100644
--- a/src/mesa/program/register_allocate.c
+++ b/src/mesa/program/register_allocate.c
@@ -440,7 +440,7 @@ pq_test(struct ra_graph *g, unsigned int n)
* means that either spilling will be required, or optimistic coloring
* should be applied.
*/
-bool
+static bool
ra_simplify(struct ra_graph *g)
{
bool progress = true;
@@ -477,7 +477,7 @@ ra_simplify(struct ra_graph *g)
* If all nodes were trivially colorable, then this must succeed. If
* not (optimistic coloring), then it may return false;
*/
-bool
+static bool
ra_select(struct ra_graph *g)
{
int i;
@@ -530,7 +530,7 @@ ra_select(struct ra_graph *g)
* locally-colorable and the rest of the register allocation
* will succeed.
*/
-void
+static void
ra_optimistic_color(struct ra_graph *g)
{
unsigned int i;
@@ -547,7 +547,7 @@ ra_optimistic_color(struct ra_graph *g)
}
bool
-ra_allocate_no_spills(struct ra_graph *g)
+ra_allocate(struct ra_graph *g)
{
if (!ra_simplify(g)) {
ra_optimistic_color(g);
@@ -618,11 +618,11 @@ ra_get_best_spill_node(struct ra_graph *g)
/* For any registers not in the stack to be colored, consider them for
* spilling. This will mostly collect nodes that were being optimistally
- * colored as part of ra_allocate_no_spills() if we didn't successfully
+ * colored as part of ra_allocate() if we didn't successfully
* optimistically color.
*
* It also includes nodes not trivially colorable by ra_simplify() if it
- * was used directly instead of as part of ra_allocate_no_spills().
+ * was used directly instead of as part of ra_allocate().
*/
for (n = 0; n < g->count; n++) {
float cost = g->nodes[n].spill_cost;
diff --git a/src/mesa/program/register_allocate.h b/src/mesa/program/register_allocate.h
index 337dcf7099b..bfc9190dcbe 100644
--- a/src/mesa/program/register_allocate.h
+++ b/src/mesa/program/register_allocate.h
@@ -66,10 +66,7 @@ void ra_add_node_interference(struct ra_graph *g,
/** @} */
/** @{ Graph-coloring register allocation */
-bool ra_simplify(struct ra_graph *g);
-void ra_optimistic_color(struct ra_graph *g);
-bool ra_select(struct ra_graph *g);
-bool ra_allocate_no_spills(struct ra_graph *g);
+bool ra_allocate(struct ra_graph *g);
unsigned int ra_get_node_reg(struct ra_graph *g, unsigned int n);
void ra_set_node_reg(struct ra_graph * g, unsigned int n, unsigned int reg);