mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-07 00:00:12 +01:00
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 <connor.abbott@intel.com> Reviewed-by: Eric Anholt <eric@anholt.net> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
d72d67832b
commit
9a0b52e7c1
5 changed files with 10 additions and 13 deletions
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue