Caio Marcelo de Oliveira Filho <caio.olive...@intel.com> writes:

> Separate higher level logic of visiting instructions and chosing when
> to store and use new copy data from the datastructure holding the copy
> propagation information. This will also make easier later patches that
> change the structure.
> ---
>  .../glsl/opt_copy_propagation_elements.cpp    | 269 ++++++++++--------
>  1 file changed, 143 insertions(+), 126 deletions(-)
>
> diff --git a/src/compiler/glsl/opt_copy_propagation_elements.cpp 
> b/src/compiler/glsl/opt_copy_propagation_elements.cpp
> index 8975e727522..5d3664a503b 100644
> --- a/src/compiler/glsl/opt_copy_propagation_elements.cpp
> +++ b/src/compiler/glsl/opt_copy_propagation_elements.cpp
> @@ -89,6 +89,121 @@ public:
>     acp_ref rhs_node;
>  };
>  
> +class copy_propagation_state {

Since this copy_propagation_state covers just the acp and not the kills
list (whcih is still part of the copy propagation state in the visitor
class), could we call it "acp"?

> @@ -191,26 +283,21 @@ 
> ir_copy_propagation_elements_visitor::visit_enter(ir_function_signature *ir)
>     exec_list *orig_kills = this->kills;
>     bool orig_killed_all = this->killed_all;
>  
> -   hash_table *orig_lhs_ht = lhs_ht;
> -   hash_table *orig_rhs_ht = rhs_ht;
> -
>     this->kills = new(mem_ctx) exec_list;
>     this->killed_all = false;
>  
> -   create_acp();
> +   copy_propagation_state *orig_state = state;
> +   this->state = new(mem_ctx) copy_propagation_state(mem_ctx, lin_ctx);
>  
>     visit_list_elements(this, &ir->body);
>  
> -   ralloc_free(this->kills);
> -
> -   destroy_acp();
> +   delete this->state;
> +   this->state = orig_state;

Don't you want destroy_acp()'s body in ~copy_propagation_state()?

Other than that, it looks good.

Attachment: signature.asc
Description: PGP signature

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to