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] rfa: fix problem with reassociating pointer additions


On Mon, Oct 04, 2004 at 09:09:00PM -0700, Eric Christopher wrote:
> On Mon, 2004-10-04 at 20:57, Daniel Jacobowitz wrote:
> > On Mon, Oct 04, 2004 at 11:27:02PM -0400, David Edelsohn wrote:
> > > 	GCC does not do it very intelligently, but reassociation can be an
> > > important optimization when one is trying to create address
> > > sub-expressions that match the offset addressing modes and auto-increments
> > > of a target architecture.  I am concerned about disabling this type of
> > > transformation instead of trying to make it smarter.
> > 
> > It sounds like we need to carry around the address-arithmetic-may-trap
> > property...  Why is MIPS using the trapping address operations anyway?
> > I think it has non-trapping versions of everything we'd need.
> 
> You'd think that, but the problem is in 64-bit processors with 32-bit
> addressing in kernel mode.
> 
> I kid you not.
> 
> MIPS64TM Architecture For Programmers Volume III, Section 4.9.

After much fightingwith the MIPS web site, that section is:
4.9 Special Behavior for the kseg3 Segment when DebugDM = 1

I don't think that's what you meant.  Do you mean 4.10, which says:
  prohibited from generating an effective address in which there is a
  carry-out of bit 31. If such an address is produced,
  the operation of the instruction generating such an address is
  UNPREDICTABLE.

If so, I don't see how that applies; the effective address produced
will be properly sign extended.

I would need to see a test case...


-- 
Daniel Jacobowitz


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