This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH][alias-improvements] VOP safety net during early-optimizations
- From: Diego Novillo <dnovillo at google dot com>
- To: Richard Guenther <rguenther at suse dot de>
- Cc: gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Mon, 24 Nov 2008 07:37:16 -0500
- Subject: Re: [PATCH][alias-improvements] VOP safety net during early-optimizations
- References: <alpine.LNX.2.00.0811241109320.5167@zhemvz.fhfr.qr>
2008/11/24 Richard Guenther <rguenther@suse.de>:
> This makes the virtual operands safety-net available as soon as we go
> into SSA. Which means we can get rid of the hack of setting volatile-ops
> on memory statements during early optimizations. It also means that any
> pass should just work during early optimizations. The only difference
> to full alias information is the lack of points-to information (which
> is at the moment not used at all on the branch).
Nice! Thanks for doing ths.
> ===================================================================
> *** gcc/tree-into-ssa.c.orig 2008-11-23 20:35:41.000000000 +0100
> --- gcc/tree-into-ssa.c 2008-11-23 22:15:45.000000000 +0100
> *************** set_livein_block (tree var, basic_block
> *** 585,590 ****
> --- 585,597 ----
> static inline bool
> symbol_marked_for_renaming (tree sym)
> {
> + if (sym == gimple_vop (cfun)
> + && cfun->gimple_df->vop_needs_renaming)
> + return true;
Why treat it as a special case, though? Why not add it to
SYMS_TO_RENAME? You have extra code to handle it differently in a few
other places. Seems unnecessary.
> ===================================================================
> *** gcc/ipa-cp.c.orig 2008-11-23 20:40:40.000000000 +0100
> --- gcc/ipa-cp.c 2008-11-23 21:44:30.000000000 +0100
> *************** ipcp_update_callgraph (void)
> *** 972,977 ****
> --- 972,981 ----
> gsi = gsi_for_stmt (cs->call_stmt);
> gsi_replace (&gsi, new_stmt, true);
> cgraph_set_call_stmt (cs, new_stmt);
> + /* ??? We loose pure/const or clobber information during
s/loose/lose/
> *** gcc/tree-call-cdce.c.orig 2008-11-23 20:35:41.000000000 +0100
> --- gcc/tree-call-cdce.c 2008-11-23 21:44:30.000000000 +0100
> *************** tree_call_cdce (void)
> *** 906,911 ****
> --- 906,914 ----
> {
> free_dominance_info (CDI_DOMINATORS);
> free_dominance_info (CDI_POST_DOMINATORS);
> + /* As we introduced new control-flow we need to insert PHI-nodes
> + for the call-clobbers of the remaining call. */
> + mark_sym_for_renaming (gimple_vop (cfun));
The comment does not really explain why we mark gimple_vop for
renaming.
Diego.