[Mesa-dev] [PATCH 7/7] [RFC] i965/fs: fill allocated memory with zeros where needed

Ilia Mirkin imirkin at alum.mit.edu
Tue Jun 7 15:07:45 UTC 2016


On Tue, Jun 7, 2016 at 10:26 AM, Juha-Pekka Heikkila
<juhapekka.heikkila at gmail.com> wrote:
> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>
> ---
>  src/mesa/drivers/dri/i965/brw_fs.cpp                     | 2 +-
>  src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp    | 2 +-
>  src/mesa/drivers/dri/i965/brw_fs_dead_code_eliminate.cpp | 4 ++--
>  3 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
> index 4b29ee5..a04d464 100644
> --- a/src/mesa/drivers/dri/i965/brw_fs.cpp
> +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
> @@ -2225,7 +2225,7 @@ fs_visitor::assign_constant_locations()
>     /* As the uniforms are going to be reordered, take the data from a temporary
>      * copy of the original param[].
>      */
> -   gl_constant_value **param = ralloc_array(NULL, gl_constant_value*,
> +   gl_constant_value **param = rzalloc_array(NULL, gl_constant_value*,
>                                              stage_prog_data->nr_params);
>     memcpy(param, stage_prog_data->param,
>            sizeof(gl_constant_value*) * stage_prog_data->nr_params);

This immediately overwrites all of param with other data. Are you sure
it's necessary to rzalloc here?

> 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 438f681..11f8576 100644
> --- a/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp
> +++ b/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp
> @@ -822,7 +822,7 @@ fs_visitor::opt_copy_propagate_local(void *copy_prop_ctx, bblock_t *block,
>              int regs_written = effective_width *
>                 type_sz(inst->src[i].type) / REG_SIZE;
>              if (inst->src[i].file == VGRF) {
> -               acp_entry *entry = ralloc(copy_prop_ctx, acp_entry);
> +               acp_entry *entry = rzalloc(copy_prop_ctx, acp_entry);

Why is this necessary here but not above? For the entry->saturate? I
think it might make sense to just initialize that directly instead of
doing the zeroing.

>                 entry->dst = inst->dst;
>                 entry->dst.reg_offset += offset;
>                 entry->src = inst->src[i];
> diff --git a/src/mesa/drivers/dri/i965/brw_fs_dead_code_eliminate.cpp b/src/mesa/drivers/dri/i965/brw_fs_dead_code_eliminate.cpp
> index 45f5c5e..9fa259e 100644
> --- a/src/mesa/drivers/dri/i965/brw_fs_dead_code_eliminate.cpp
> +++ b/src/mesa/drivers/dri/i965/brw_fs_dead_code_eliminate.cpp
> @@ -42,8 +42,8 @@ fs_visitor::dead_code_eliminate()
>     calculate_live_intervals();
>
>     int num_vars = live_intervals->num_vars;
> -   BITSET_WORD *live = ralloc_array(NULL, BITSET_WORD, BITSET_WORDS(num_vars));
> -   BITSET_WORD *flag_live = ralloc_array(NULL, BITSET_WORD, 1);
> +   BITSET_WORD *live = rzalloc_array(NULL, BITSET_WORD, BITSET_WORDS(num_vars));
> +   BITSET_WORD *flag_live = rzalloc_array(NULL, BITSET_WORD, 1);
>
>     foreach_block_reverse_safe(block, cfg) {
>        memcpy(live, live_intervals->block_data[block->num].liveout,
> --
> 1.9.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list