mesa: Add a convenience interface for register allocator conflicts setup.
This commit is contained in:
parent
e6c64800cc
commit
fa43477fa3
|
@ -200,6 +200,27 @@ ra_add_reg_conflict(struct ra_regs *regs, unsigned int r1, unsigned int r2)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds a conflict between base_reg and reg, and also between reg and
|
||||||
|
* anything that base_reg conflicts with.
|
||||||
|
*
|
||||||
|
* This can simplify code for setting up multiple register classes
|
||||||
|
* which are aggregates of some base hardware registers, compared to
|
||||||
|
* explicitly using ra_add_reg_conflict.
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
ra_add_transitive_reg_conflict(struct ra_regs *regs,
|
||||||
|
unsigned int base_reg, unsigned int reg)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
ra_add_reg_conflict(regs, reg, base_reg);
|
||||||
|
|
||||||
|
for (i = 0; i < regs->regs[base_reg].num_conflicts; i++) {
|
||||||
|
ra_add_reg_conflict(regs, reg, regs->regs[base_reg].conflict_list[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
unsigned int
|
unsigned int
|
||||||
ra_alloc_reg_class(struct ra_regs *regs)
|
ra_alloc_reg_class(struct ra_regs *regs)
|
||||||
{
|
{
|
||||||
|
|
|
@ -40,6 +40,8 @@ struct ra_regs *ra_alloc_reg_set(unsigned int count);
|
||||||
unsigned int ra_alloc_reg_class(struct ra_regs *regs);
|
unsigned int ra_alloc_reg_class(struct ra_regs *regs);
|
||||||
void ra_add_reg_conflict(struct ra_regs *regs,
|
void ra_add_reg_conflict(struct ra_regs *regs,
|
||||||
unsigned int r1, unsigned int r2);
|
unsigned int r1, unsigned int r2);
|
||||||
|
void ra_add_transitive_reg_conflict(struct ra_regs *regs,
|
||||||
|
unsigned int base_reg, unsigned int reg);
|
||||||
void ra_class_add_reg(struct ra_regs *regs, unsigned int c, unsigned int reg);
|
void ra_class_add_reg(struct ra_regs *regs, unsigned int c, unsigned int reg);
|
||||||
void ra_set_finalize(struct ra_regs *regs);
|
void ra_set_finalize(struct ra_regs *regs);
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
Loading…
Reference in New Issue