This is the mail archive of the gcc@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: removal of -mflat in GCC 4.0 (sparc)


> The reason this particular register model is important to me is that I
> use GCC on the microSPARC-IIep (actually, a SoC variant produced by
> Infineon called the "copernicus") to build firmware for Sun Ray
> appliances (ultra-thin client).  These SparcV8 processors only have two
> register windows, so the -mflat option is required for performance.
> (The Sun Ray kernel also doesn't have a handler for register window
> over/underflow traps.)  The register windows are used exclusively for
> entry into the interrupt handler.
>
> [...]
>
> Note also that these parts (Copernicus at least) are real, currently
> shipping products.  This is *not* a legacy product, and active new
> development is continuing on this stuff.

OK, there appears to be a real niche.

> I do realize (and am very grateful) that GCC is a free project, and that
> the needs of the many may outweigh the needs of the few.  (I am also
> asking my company to make a donation to the FSF in support of GCC,
> independent of the decision about -mflat.  Whether such a donation is
> made or not depends on management though, so I can't promise anything.)

Thanks for doing that.

> But I also thought it was a real possibility that the GCC team might not
> be aware of anyone who had a real requirement for the -mflat option.  I
> certainly appreciate the value of trimming support for defunct
> architectures and such from a product to reduce code size and
> complexity.  However, in this case such a trim does potentially impact
> otherwise happy GCC users.

The -mflat support code in the SPARC back-end was identified as an 
absolescent, untested and unmaintained code.  I personally gave it a whirl 
in the 3.4 timeframe and the testsuite results were abysmal (a few fixes 
were added as a result, so 3.4.x is supposed to be less broken than earlier 
compilers).  We basically had 0 bugreport in years.  Moreover, it was in the 
way of a major technical transition for the SPARC back-end.  It was, 
therefore, advertised as deprecated in 3.4.x:
  http://gcc.gnu.org/gcc-3.4/changes.html
and its support code was immediately removed when 4.x development started, 
one year ago.

> I'd be grateful if the team could consider reversing the decision on
> -mflat.  While I can continue to use older versions of GCC, I'd like the
> ability to update to new compilers later if possible.  (It certainly
> seems like some of the new optimizations in GCC 4.0 might be very useful
> to us.)

Because of the aforementioned technical transition, -mflat cannot be simply 
reinstated in 4.x.  It must be rewritten from scratch.  It's definitely too 
late to do that for 4.0, so the compiler will be released without -mflat 
support.

But it is not too late for the next release cycle, 4.1, whose development 
just started.  There is probably a 6-month window for the -mflat support to 
be reimplemented in the back-end and be released with 4.1.  The amount of 
work is not overwhelming but, as GCC is a volunteer project, your company 
might consider hiring someone to do the work if it deems the feature a 
requirement for 4.1.

-- 
Eric Botcazou



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