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] Crossjumping corrupts alias info


On Wed, Mar 03, 2004 at 04:23:30PM +0100, Andreas Krebbel wrote:
> 	* rtl.h (mem_expr_equal_p): Function prototype added.
> 	* cfgcleanup.c (merge_memattrs): New function.
> 	(flow_find_cross_jump): Call merge_memattrs for matching insns.
> 	* emit-rtl.c (mem_expr_equal_p): New function.

Nearly ok.

> + 	  if ((MEM_OFFSET (x) != MEM_OFFSET (y))
> + 	      || ! mem_expr_equal_p (MEM_EXPR (x), MEM_EXPR (y)))

MEM_OFFSET should be compared (and cleared) independently of MEM_EXPR.

> + 	  if (MEM_SIZE (x) != MEM_SIZE (y))
> + 	  if (MEM_ALIGN (x) != MEM_ALIGN (y))

Use minimum.


r~


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