This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [patch] remove PENDING_STMT hijack
- From: "Diego Novillo" <dnovillo at google dot com>
- To: "Aldy Hernandez" <aldyh at redhat dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Tue, 9 Oct 2007 18:22:45 -0400
- Subject: Re: [patch] remove PENDING_STMT hijack
- References: <20071009204359.GA4930@redhat.com>
On 10/9/07, Aldy Hernandez <aldyh@redhat.com> wrote:
> * cfg.c: Include tree-flow.h.
> (remove_edge_raw): Call redirect_edge_var_map_clear.
> (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
> * tree-flow-inline.h (redirect_edge_var_map_def): New.
> (redirect_edge_var_map_result): New.
> * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
> PENDING_STMT use with redirect_edge_var_map_*.
> * tree-ssa.c (edge_var_maps): New definition.
> (redirect_edge_var_map_add): New.
> (redirect_edge_var_map_clear): New.
> (redirect_edge_var_map_dup): New.
> (redirect_edge_var_map_vector): New.
> (redirect_edge_var_map_destroy): New.
> (ssa_redirect_edge): Replace PENDING_STMT use with
> redirect_edge_var_map_*.
> (flush_pending_stmts): Same.
> (delete_tree_ssa): Destroy edge var map.
> * tree-flow.h (struct _edge_var_map): New.
> Define edge_var_map vector type.
> Declare redirect_edge_var_map_* prototypes.
> * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
> * tree-cfg.c (reinstall_phi_args): Replace
> PENDING_STMT use with redirect_edge_var_map_*.
OK for trunk after we go back to stage 1. OK for tuples branch.
Thanks for fixing this! One nit:
> +/* Duplicate the redirected var mappings in OLDE in NEWE.
> +
> + Since we can't remove a mapping, let's just duplicate it. This assumes a
> + pointer_map can have multiple edges mapping to the same var_map (many to one
> + mapping), since we don't remove the previous mappings.
> +*/
Closing comment in previous line.