This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH][iab merge] Merge missing bits of struct-aliasing with arrays


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]