Although this function currently only initializes the KILL set, it will soon initialize other data flow sets as well.
Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> --- src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp b/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp index a00dde4..7aff36b 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp @@ -76,7 +76,7 @@ public: fs_copy_prop_dataflow(void *mem_ctx, cfg_t *cfg, exec_list *out_acp[ACP_HASH_SIZE]); - void setup_kills(); + void setup_initial_values(); void run(); void *mem_ctx; @@ -128,16 +128,16 @@ fs_copy_prop_dataflow::fs_copy_prop_dataflow(void *mem_ctx, cfg_t *cfg, assert(next_acp == num_acp); - setup_kills(); + setup_initial_values(); run(); } /** - * Walk the set of instructions in the block, marking which entries in the acp - * are killed by the block. + * Set up initial values for each of the data flow sets, prior to running + * the fixed-point algorithm. */ void -fs_copy_prop_dataflow::setup_kills() +fs_copy_prop_dataflow::setup_initial_values() { for (int b = 0; b < cfg->num_blocks; b++) { bblock_t *block = cfg->blocks[b]; @@ -148,6 +148,7 @@ fs_copy_prop_dataflow::setup_kills() if (inst->dst.file != GRF) continue; + /* Mark ACP entries which are killed by this instruction. */ for (int i = 0; i < num_acp; i++) { if (inst != acp[i]->inst && (inst->overwrites_reg(acp[i]->dst) || -- 1.8.3.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev