diff options
author | Kenneth Graunke <[email protected]> | 2014-02-21 19:31:44 -0800 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2014-03-18 10:15:23 -0700 |
commit | 8d856c3937c790da626ef754622df91d562d8507 (patch) | |
tree | c522cd63087d0de5f587842da00c56c6d4e3bae3 /src/mesa/program/register_allocate.c | |
parent | 786a6472450b50977e6906e27d5f481e00b05d73 (diff) |
ra: Create a reg_belongs_to_class() helper function.
This is a little easier to read.
Signed-off-by: Kenneth Graunke <[email protected]>
Reviewed-by: Matt Turner <[email protected]>
Reviewed-by: Brian Paul <[email protected]>
Reviewed-by: Christoph Brill <[email protected]>
Diffstat (limited to 'src/mesa/program/register_allocate.c')
-rw-r--r-- | src/mesa/program/register_allocate.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/mesa/program/register_allocate.c b/src/mesa/program/register_allocate.c index edde7309c7f..c763b9602da 100644 --- a/src/mesa/program/register_allocate.c +++ b/src/mesa/program/register_allocate.c @@ -284,6 +284,15 @@ ra_class_add_reg(struct ra_regs *regs, unsigned int c, unsigned int r) } /** + * Returns true if the register belongs to the given class. + */ +static bool +reg_belongs_to_class(unsigned int r, struct ra_class *c) +{ + return c->regs[r]; +} + +/** * Must be called after all conflicts and register classes have been * set up and before the register set is used for allocation. * To avoid costly q value computation, use the q_values paramater @@ -319,7 +328,7 @@ ra_set_finalize(struct ra_regs *regs, unsigned int **q_values) int conflicts = 0; int i; - if (!regs->classes[c]->regs[rc]) + if (!reg_belongs_to_class(rc, regs->classes[c])) continue; for (i = 0; i < regs->regs[rc].num_conflicts; i++) { @@ -479,7 +488,7 @@ ra_select(struct ra_graph *g) */ for (ri = 0; ri < g->regs->count; ri++) { r = (start_search_reg + ri) % g->regs->count; - if (!c->regs[r]) + if (!reg_belongs_to_class(r, c)) continue; /* Check if any of our neighbors conflict with this register choice. */ |