This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH][iab merge] Merge missing bits of struct-aliasing with arrays
- From: Diego Novillo <dnovillo at redhat dot com>
- To: gcc-patches at gcc dot gnu dot org
- Cc: Richard Guenther <rguenther at suse dot de>
- Date: Thu, 5 Jan 2006 08:56:52 -0500
- Subject: Re: [PATCH][iab merge] Merge missing bits of struct-aliasing with arrays
- References: <Pine.LNX.4.63.0601051156570.6210@t148.fhfr.qr>
On Thursday 05 January 2006 05:59, Richard Guenther wrote:
> + if (!none)
> + flags |= opf_no_vops;
> }
> ! /* Even if we found subvars above we need to ensure to see
> ! immediate uses for d in s.a[d]. In case of s.a having
> ! a subvar we'd miss it otherwise. */
> ! get_expr_operands (stmt, &TREE_OPERAND (expr, 0),
> ! flags & ~opf_kill_def);
>
Vertical spacing.
> if (code == COMPONENT_REF)
> {
> Index: tree-ssa-loop-ivopts.c
> ===================================================================
> *** tree-ssa-loop-ivopts.c (revision 109376)
> --- tree-ssa-loop-ivopts.c (working copy)
> *************** rewrite_use (struct ivopts_data *data,
> *** 5826,5831 ****
> --- 5826,5832 ----
> gcc_unreachable ();
> }
> update_stmt (use->stmt);
> + mark_new_vars_to_rename (use->stmt);
> }
>
No. You have to remove the call to update_stmt if you want
mark_new_vars_to_rename to find anything. If you update_stmt before
scanning for stale SSA names, you may miss VOPs to rename.
I see PRE is also doing this. This happens to work if the stmt didn't have
any stale VOPs. But will fail otherwise. Also, mark_new_vars_to_rename
calls update_stmt, so it's not necessary to do it twice.
Could you change the calls in PRE while your at it?
The rest looks fine.