Regression due to tree loop opt / expand weirdness

Ulrich Weigand weigand@i1.informatik.uni-erlangen.de
Sun Oct 3 22:38:00 GMT 2004


Richard Henderson wrote:
> On Sun, Oct 03, 2004 at 09:40:12PM +0200, Ulrich Weigand wrote:
> > Richard, I appears you've added the valid_pointer_mode check to 
> > expand_expr_addr_expr -- could you elaborate how the back-end is
> > supposed to handle this?
> 
> The reason to allow non-Pmode is that otherwise ilp32 on 64-bit targets
> breaks.  That's the narrowest condition I could find that keeps ia64-hpux
> working.  Computing symbol_ref in ptr_mode and not Pmode is not a new
> thing, it's been done for quite some time.

Well yes, but this is neither ptr_mode nor Pmode (both are DImode on s390x).

Would changing the test in expand_expr_addr_expr from 

  if (!target.valid_pointer_mode (tmode))

to

  if (tmode != Pmode && tmode != ptr_mode)

be OK with you?  This should cause no change to ia64 ...

Bye,
Ulrich

-- 
  Dr. Ulrich Weigand
  weigand@informatik.uni-erlangen.de



More information about the Gcc mailing list