On Thu, 19 Nov 2009, Jeff Law wrote: > On 11/19/09 15:43, Steven Rostedt wrote: > > On Thu, 2009-11-19 at 14:25 -0700, Jeff Law wrote: > > > > > > > Having said all that, I don't expect to personally be looking at the > > > problem, given the list of other codegen issues that need to be looked > > > at (reload in particular), profiling/stack interactions would be around > > > 87 millionth on my list. > > > > > Is there someone else that can look at it? > > > > > Unsure at the moment... Like everyone else, GCC developers are busy and this > probably isn't going to be a high priority item for anyone. > > > > Or at the very least, could you point us to where that code is, and one > > of us tracing folks could take a crack at switching hats to be a > > compiler writer (with the obvious prerequisite of drinking a lot of beer > > first, or is there a better drug to cope with the pain of writing gcc?). > > > It _might_ be as easy as defining PROFILE_BEFORE_PROLOGUE in > gcc-<someversion>gcc/config/i386/linux.h & rebuilding GCC. > > Based on comments elsewhere, the sun386i support may have used > PROFILE_BEFORE_PROLOGUE in the past and thus the x86 backend may not need > further adjustment. That is obviously the ideal case. > > If that appears to work for your needs, I'll volunteer to test it more > thoroughly and assuming those tests look good shepherd it into the source > tree.
We definitely want to see that ASAP. While testing various kernel configs we found out that the problem comes and goes. Finally I started to compare the gcc command line options and after some fiddling it turned out that the following minimal deltas change the code generator behaviour: Bad: -march=pentium-mmx -Wa,-mtune=generic32 Good: -march=i686 -mtune=generic -Wa,-mtune=generic32 Good: -march=pentium-mmx -mtune-generic -Wa,-mtune=generic32 I'm not supposed to understand the logic behind that, right ? Thanks, tglx