mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 21:40:08 +01:00
i965/fs: Move aeb list into opt_cse_local.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
0f679f0ab5
commit
bdbaa9ab5b
2 changed files with 7 additions and 7 deletions
|
|
@ -334,7 +334,7 @@ public:
|
|||
void calculate_register_pressure();
|
||||
bool opt_algebraic();
|
||||
bool opt_cse();
|
||||
bool opt_cse_local(bblock_t *block, exec_list *aeb);
|
||||
bool opt_cse_local(bblock_t *block);
|
||||
bool opt_copy_propagate();
|
||||
bool try_copy_propagate(fs_inst *inst, int arg, acp_entry *entry);
|
||||
bool opt_copy_propagate_local(void *mem_ctx, bblock_t *block,
|
||||
|
|
|
|||
|
|
@ -166,9 +166,10 @@ instructions_match(fs_inst *a, fs_inst *b)
|
|||
}
|
||||
|
||||
bool
|
||||
fs_visitor::opt_cse_local(bblock_t *block, exec_list *aeb)
|
||||
fs_visitor::opt_cse_local(bblock_t *block)
|
||||
{
|
||||
bool progress = false;
|
||||
exec_list aeb;
|
||||
|
||||
void *cse_ctx = ralloc_context(NULL);
|
||||
|
||||
|
|
@ -180,7 +181,7 @@ fs_visitor::opt_cse_local(bblock_t *block, exec_list *aeb)
|
|||
{
|
||||
bool found = false;
|
||||
|
||||
foreach_in_list_use_after(aeb_entry, entry, aeb) {
|
||||
foreach_in_list_use_after(aeb_entry, entry, &aeb) {
|
||||
/* Match current instruction's expression against those in AEB. */
|
||||
if (instructions_match(inst, entry->generator)) {
|
||||
found = true;
|
||||
|
|
@ -194,7 +195,7 @@ fs_visitor::opt_cse_local(bblock_t *block, exec_list *aeb)
|
|||
aeb_entry *entry = ralloc(cse_ctx, aeb_entry);
|
||||
entry->tmp = reg_undef;
|
||||
entry->generator = inst;
|
||||
aeb->push_tail(entry);
|
||||
aeb.push_tail(entry);
|
||||
} else {
|
||||
/* This is at least our second sighting of this expression.
|
||||
* If we don't have a temporary already, make one.
|
||||
|
|
@ -264,7 +265,7 @@ fs_visitor::opt_cse_local(bblock_t *block, exec_list *aeb)
|
|||
}
|
||||
}
|
||||
|
||||
foreach_in_list_safe(aeb_entry, entry, aeb) {
|
||||
foreach_in_list_safe(aeb_entry, entry, &aeb) {
|
||||
/* Kill all AEB entries that write a different value to or read from
|
||||
* the flag register if we just wrote it.
|
||||
*/
|
||||
|
|
@ -322,9 +323,8 @@ fs_visitor::opt_cse()
|
|||
|
||||
for (int b = 0; b < cfg.num_blocks; b++) {
|
||||
bblock_t *block = cfg.blocks[b];
|
||||
exec_list aeb;
|
||||
|
||||
progress = opt_cse_local(block, &aeb) || progress;
|
||||
progress = opt_cse_local(block) || progress;
|
||||
}
|
||||
|
||||
return progress;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue