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]

Re: alpha alias tweeks




  In message <19980923134659.A9025@dot.cygnus.com>you write:
  > Here's a little bit to try and reduce the conflicts produced
  > by subword references, which use an AND on ev5 and earlier.
  > 
  > There are some remaining problems wrt alias sets, in that we
  > cannot use alias sets with AND at all at the moment -- the
  > early exit based on differing alias sets happens before any
  > tests for the additional global variable aliasing created by
  > the AND.  This primarily affects HImode, since QImode must 
  > always be considered to alias.  I'm not sure if it is worth
  > slowing down other ports for this one case.
  > 
  > On a related topic to the alias set thing, one thing I could
  > use down here is knowledge of how large the types or objects
  > involved.  For instance, 
  > 
  > 	int i; short s;
  > 	s = 1;
  > 	i = 1;
  > 
  > may alias, but
  > 
  > 	int i; short s[10];
  > 	s[4] = 1;
  > 	i = 1;
  > 
  > cannot.  It would also be nice if I could limit the additional
  > AND aliasing to global symbols.  Things allocated from the heap
  > and stack are always sufficiently aligned not to incurr such
  > additional aliasing.
  > 
  > Anyone have any objections to his patch?
  > 
  > 
  > r~
  > 
  > 
  > 	* alias.c (base_alias_check): Accept new args for the modes of the
  > 	two references.  Use them to determine if an AND can overlap.  Update
  > 	all callers.  
  > 	(memrefs_conflict_p): Assume sizes are aligned, and uses them
  > 	to determine if an AND can overlap.
Looks reasonable to me.
jeff


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