[Mesa-dev] [PATCH 10/16] i965/fs: Eliminate null-dst instructions without side-effects.

Kenneth Graunke kenneth at whitecape.org
Tue Jan 20 00:53:39 PST 2015


On Monday, January 19, 2015 03:31:09 PM Matt Turner wrote:
> ---
>  src/mesa/drivers/dri/i965/brw_fs_dead_code_eliminate.cpp | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> 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 81be4de..d66808b 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
> @@ -85,6 +85,17 @@ fs_visitor::dead_code_eliminate()
>              }
>           }
>  
> +         if ((inst->opcode != BRW_OPCODE_IF &&
> +              inst->opcode != BRW_OPCODE_WHILE) &&
> +             inst->dst.is_null() &&
> +             !inst->has_side_effects() &&
> +             !inst->writes_flag() &&
> +             !inst->writes_accumulator) {
> +            inst->opcode = BRW_OPCODE_NOP;
> +            progress = true;
> +            continue;
> +         }
> +
>           if (inst->dst.file == GRF) {
>              if (!inst->is_partial_write()) {
>                 int var = live_intervals->var_from_reg(inst->dst);
> 

Seems like these should be handled too...

- BRW_OPCODE_ELSE
- FS_OPCODE_DISCARD_JUMP
- FS_OPCODE_PLACEHOLDER_HALT
- SHADER_OPCODE_SHADER_TIME_ADD
- SHADER_OPCODE_GEN4_SCRATCH_READ
- SHADER_OPCODE_GEN4_SCRATCH_WRITE
- SHADER_OPCODE_GEN7_SCRATCH_READ

Maybe some of these should be added to has_side_effects()?

I'm kind of surprised you didn't see regressions in Piglit...maybe I'm
missing something.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20150120/1fa15f5b/attachment.sig>


More information about the mesa-dev mailing list