> Am 23.06.2023 um 18:10 schrieb Jan Hubicka via Gcc-patches 
> <gcc-patches@gcc.gnu.org>:
> 
> Hi,
> here is updated version with TODO_update_ssa_only_virtuals.
> bootstrapped/regtested x86_64-linux. OK?

Ok

Richard 

> gcc/ChangeLog:
> 
>    * tree-ssa-phiprop.cc (propagate_with_phi): Compute post dominators on
>    demand.
>    (pass_phiprop::execute): Do not compute it here; return
>    update_ssa_only_virtuals if something changed.
>    (pass_data_phiprop): Remove TODO_update_ssa from todos.
>    
> 
> diff --git a/gcc/tree-ssa-phiprop.cc b/gcc/tree-ssa-phiprop.cc
> index 8c9ce903472..b01ef4495c2 100644
> --- a/gcc/tree-ssa-phiprop.cc
> +++ b/gcc/tree-ssa-phiprop.cc
> @@ -340,6 +340,9 @@ propagate_with_phi (basic_block bb, gphi *phi, struct 
> phiprop_d *phivn,
>       gimple *def_stmt;
>       tree vuse;
> 
> +      if (!dom_info_available_p (cfun, CDI_POST_DOMINATORS))
> +    calculate_dominance_info (CDI_POST_DOMINATORS);
> +
>       /* Only replace loads in blocks that post-dominate the PHI node.  That
>          makes sure we don't end up speculating loads.  */
>       if (!dominated_by_p (CDI_POST_DOMINATORS,
> @@ -485,7 +488,7 @@ const pass_data pass_data_phiprop =
>   0, /* properties_provided */
>   0, /* properties_destroyed */
>   0, /* todo_flags_start */
> -  TODO_update_ssa, /* todo_flags_finish */
> +  0, /* todo_flags_finish */
> };
> 
> class pass_phiprop : public gimple_opt_pass
> @@ -513,7 +516,6 @@ pass_phiprop::execute (function *fun)
>   size_t n;
> 
>   calculate_dominance_info (CDI_DOMINATORS);
> -  calculate_dominance_info (CDI_POST_DOMINATORS);
> 
>   n = num_ssa_names;
>   phivn = XCNEWVEC (struct phiprop_d, n);
> @@ -539,7 +541,7 @@ pass_phiprop::execute (function *fun)
> 
>   free_dominance_info (CDI_POST_DOMINATORS);
> 
> -  return 0;
> +  return did_something ? TODO_update_ssa_only_virtuals : 0;
> }
> 
> } // anon namespace

Reply via email to