mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-23 22:00:13 +01:00
freedreno/ir3: extend liverange of arrays
Use livein state of other blocks to extend liverange of arrays when they are still needed by successor blocks. Signed-off-by: Rob Clark <robdclark@gmail.com>
This commit is contained in:
parent
ac459a6f7f
commit
1b658533e1
1 changed files with 11 additions and 0 deletions
|
|
@ -946,6 +946,17 @@ ra_add_interference(struct ir3_ra_ctx *ctx)
|
|||
ctx->use[i] = MAX2(ctx->use[i], block->end_ip);
|
||||
}
|
||||
}
|
||||
|
||||
list_for_each_entry (struct ir3_array, arr, &ctx->ir->array_list, node) {
|
||||
for (unsigned i = 0; i < arr->length; i++) {
|
||||
if (BITSET_TEST(bd->livein, i + arr->base)) {
|
||||
arr->start_ip = MIN2(arr->start_ip, block->start_ip);
|
||||
}
|
||||
if (BITSET_TEST(bd->livein, i + arr->base)) {
|
||||
arr->end_ip = MAX2(arr->end_ip, block->end_ip);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* need to fix things up to keep outputs live: */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue