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: GCC


"David O'Brien" <obrien@FreeBSD.org> writes:

> I think a much more accurate description would be Zack's "A Maintenance
> Programmer's View of GCC" from the Ottawa GCC Summit.  My last patch
> trying to add a "GCC_OPTIONS" environmental variable was for AMD and some
> very large ISV's benefit.  Didn't go in, and not for copyright assignment
> issues.

That's not a great example.  There was nothing technically wrong with
your patch; rather, people have convincing arguments that we don't
want that feature.  This is not normally going to happen to
target-specific optimization patches.

I would suggest the SPE and Altivec patchsets as better examples of
the problems in this area.  Those are features that no one objects to
in the abstract -- support for two different sets of vector
instructions, and the related intrinsics -- but Aldy had to do
tremendous amounts of work to get them to the point where they were
acceptable.  Part of the problem is that the backend API is a mess;
that's the stuff I talked about in my paper.  Work is ongoing to clean
that up.  I think we'll be in much better shape in a few years.

But the other part of the problem is that the features were designed
without consulting with people who knew what the C and C++ standards
have to say in this area, and so (for example) the original Altivec
patches had vector-initializer syntax that was considered
unacceptable, which makes GCC 3.x's Altivec incompatible with the
original Motorola compilers.  The only way that situation can improve
is if GCC maintainers are brought on board in the design stages of
such projects, and can point out the problems before they become
entrenched.

zw

p.s. I wonder if the GCC_OPTIONS patch would be more acceptable if it
were processed by the driver, so that the additional options showed up
in -v output.


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