This is the mail archive of the gcc-bugs@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: linux-2.3.3 doesn't boot when compiled with egcs-2.93.22



  In message <19990524191645.A14388@fred.muc.de>you write:
  > What puzzles me is that the aliasing is not flushed on function borders.
Why should it be?  That would be totally silly, and rather difficult to
implement given's gcc's inlining implementation.

  > So I have to  modify everything so that it sees the union, instead of just
  > fixing a few isolated functions. 
Well, that's not my problem :-)  When you write code that is not standards
conforming you have to expect this kind of problem over time as compilers get
better.

It's not unlike volatile memory.  When compilers were lame you didn't need
volatile because compilers were too stupid to hold memory values in registers.
As compilers got better folks had to convert their code to use appropriate
volatiles (which was a huge task when I did it for 4.3BSD back in the late
80s).

  > Would this be very hard to implement with the current alias frame work? It 
  > would be definitely very helpful to get older code to play nice with the
  > new optimizer.
You'd have to talk with Mark.  He knows that code best.

  > I could imagine that the
  > Linux kernel is not the only big piece of code that has such problems.
Not really.  Most code I've seen doesn't play it fast and loose with this
stuff -- many programs started fixing this stuff years ago when vendor
compilers started performing type based alias analysis.

The typical stragglers I see are codes which talk to hardware and low level
code to manipulate FP values using integer operations (like in FP emulation
libraries).

jeff


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