public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* Re: Of Bounties and Mercenaries
@ 2004-04-03 15:00 Richard Kenner
  2004-04-03 20:06 ` Mark Hahn
  0 siblings, 1 reply; 69+ messages in thread
From: Richard Kenner @ 2004-04-03 15:00 UTC (permalink / raw)
  To: sxanth; +Cc: gcc

    If gcc 3.5 is ten times slower compiling programs at -O2, that's a
    good thing: it means that it does more to procude better code. 

No.  Producing better code means producing better code.  Compiling slower
means compiling slower.  One would *hope that the latter means the former,
but that has to be shown, not just implied.

    A program is compiled once but executed 100000 times. 

True, but that's often not relevant to developers, who care about how
quickly they can compile their applications.

^ permalink raw reply	[flat|nested] 69+ messages in thread
* Re: Of Bounties and Mercenaries
@ 2004-04-06  5:32 Chris Lattner
  2004-04-06  9:19 ` Robert Dewar
  0 siblings, 1 reply; 69+ messages in thread
From: Chris Lattner @ 2004-04-06  5:32 UTC (permalink / raw)
  To: Andrew Pinski; +Cc: stl, gcc


Andrew Pinski wrote:
> The other problem with this is that "Modern" "Standard" C++ has the
> following problems:
> 1. Makes a mess out of simplifying code from the compiling when the
> compiler is being miscompiled itself.

Huh?

> 2. "Modern" means templates see 1.

Double huh?

> 3. "Standard" means that we have to do more workarounds that Boost does,
> see 1.

No, you just require a reasonable baseline compiler, like GCC 3.x.  :)  I
realize that this is not a wonderful solution with GCC now, but that's
primarily due to the fact that it's so hard to cross compile GCC to
certain architectures.  In LLVM, it's a simple matter of saying -march=x86
or -march=sparcv9 to select a backend, so retargetting is much simpler
than in GCC.

> 4. GC will be still there just in a slightly different form, see 2 and
> 1.

Not true at all.  In LLVM we have absolutely no GC, and no need or desire
for one.  With C++ ctor/dtors and a simple ownership model, there is no
need for a GC at all.  Note that this makes performance bugs dramatically
easier to understand.

> 5. The number of bug reports about the C++ is high and we get more
> invalid  bugs each day, so we will then get bug reports about GCC not
> compiling on some C++ compiler, see 3.

This seems to be the same point as #4 above.  Perhaps you are trying to
say that not as many people know C++ as know C?

> Now if we figure out a good GC in that only parts of the compiler uses
> it, we will no longer have all the issues we currently have because the
> part I am talking about RTL (which is the most memory bounded part) will
> move from being in the GC into being malloc'd and maybe pool alloced
> instead so it will be relatively close in memory.

Hrm, this has absolutely nothing to do with C++.  In fact, this is all
about having a clear ownership model for memory (which none of the GCC IRs
have).  If nothing else, the GC introduced in GCC 3.0 made the compiler
easier to work on and understand.  It seems like taking that away, would,
well, be a huge regression in terms of GCC maintenance.

-Chris

-- 
http://llvm.cs.uiuc.edu/
http://www.nondot.org/~sabre/Projects/


^ permalink raw reply	[flat|nested] 69+ messages in thread
* Re: Of Bounties and Mercenaries
@ 2004-04-06  5:24 Chris Lattner
  0 siblings, 0 replies; 69+ messages in thread
From: Chris Lattner @ 2004-04-06  5:24 UTC (permalink / raw)
  To: Stephan T. Lavavej; +Cc: gcc


Stephan T. Lavavej wrote:
>[Ben Elliston]
>> This should be a side goal of future GCC work: to develop it
>> in a way that makes it easier for the uninitiated to hack on
>> it.  This includes removing complicated cruft and generally
>> trying to keep the code base small and as simple as possible.

> How about writing gcc in Modern, Standard C++?

You might be interested in LLVM: http://llvm.cs.uiuc.edu/

We are doing basically that.  The other advantage is that you can also use
algorithms and data structures that make sense in the process.  In C++
it's much easier to not use linked-lists for every data structure in the
compiler. :)  Using C++ well has been a HUGE reason that LLVM has made as
much progress as it has in the time it has existed (it's only 3.5 years
old, basically the same "age" as tree-ssa).

Despite the fact that LLVM makes EXTENSIVE use of the STL and other modern
C++ features, it can already bootstrap itself.  It also has a large number
of aggressive intra- and inter- procedural optimizations, a JIT compiler,
profile-driven optimization support, aggressive alias analysis, ...

> You could do away with your crazy garbage-collected C (double ugh).

Exactly.  In LLVM, the ownership model for IR objects is trivial,
completely eliminating the need for a GC.  This and many other things
makes the optimizer *FAST*.

-Chris

-- 
http://llvm.cs.uiuc.edu/
http://www.nondot.org/~sabre/Projects/

^ permalink raw reply	[flat|nested] 69+ messages in thread
* Re: Of Bounties and Mercenaries
@ 2004-04-06  3:09 Stephan T. Lavavej
  2004-04-06  3:13 ` Daniel Berlin
                   ` (4 more replies)
  0 siblings, 5 replies; 69+ messages in thread
From: Stephan T. Lavavej @ 2004-04-06  3:09 UTC (permalink / raw)
  To: GCC

[Ben Elliston]
> This should be a side goal of future GCC work: to develop it
> in a way that makes it easier for the uninitiated to hack on
> it.  This includes removing complicated cruft and generally
> trying to keep the code base small and as simple as possible.

How about writing gcc in Modern, Standard C++?  You could do away with your
crazy garbage-collected C (double ugh).

This inflammatory suggestion was brought to you by...

Stephan T. Lavavej
http://nuwen.net



^ permalink raw reply	[flat|nested] 69+ messages in thread
* Re: Of Bounties and Mercenaries
@ 2004-04-04 11:27 Robert Dewar
  0 siblings, 0 replies; 69+ messages in thread
From: Robert Dewar @ 2004-04-04 11:27 UTC (permalink / raw)
  To: aoliva, coyote; +Cc: gcc, sxanth

> I think the fallacy in the argument is a bit different.  The idea is
> that, if I were to build a program that I knew thousands of users
> would run thousands of times, and having it run a bit faster would
> make a significant difference in how happy my users would be such that
> they'd be willing to pay more for the package, for support, whatever,
> it would make sense to squeeze as much performance as possible out of
> the compiler into the application.  From the POV of the users of my
> application, it doesn't matter if I spend hours or days building the
> application, or even tuning the compiler to find the optimal flags to
> build it: they'll be happier the faster the thing runs.

If you have days to spend, they are probably better spent profiling
your application and analyzing its speed. if there really is an inner
loop that is eating time, optimize it by hand.

^ permalink raw reply	[flat|nested] 69+ messages in thread
* Re: Of Bounties and Mercenaries
@ 2004-04-04  7:43 Stephan T. Lavavej
  0 siblings, 0 replies; 69+ messages in thread
From: Stephan T. Lavavej @ 2004-04-04  7:43 UTC (permalink / raw)
  To: GCC

[Nathanael Nerode]
> My need was for a compiler which built in a sane manner
> which could be understood (and upgradided) by anyone, rather
> than a black box of untouchable black magic where mortals
> feared to tread.

Speaking of that, want to take a look at http://gcc.gnu.org/PR14666 and
http://gcc.gnu.org/PR14601 ?  It's all black magic to me...

I can provide the exact files needed to reproduce 14666 on GNU/Linux
(PR14601 needs a Windows system with MSYS).  :->

Adding the ability at configure time to build in given library and include
file search paths would solve 14601 and part of 14666.  But that would just
be a way to cover up the real problems.

Stephan T. Lavavej
http://nuwen.net



^ permalink raw reply	[flat|nested] 69+ messages in thread
* Re: Of Bounties and Mercenaries
@ 2004-04-04  6:53 Nathanael Nerode
  0 siblings, 0 replies; 69+ messages in thread
From: Nathanael Nerode @ 2004-04-04  6:53 UTC (permalink / raw)
  To: gcc

Joe Buck wrote:
>Motivated individuals who feel that their needs aren't being addressed are
>welcome to educate themselves enough to become GCC contributors themselves.

I guess I did. :-)  My need was for a compiler which built in a sane manner
which could be understood (and upgradided) by anyone, rather than a black box
of untouchable black magic where mortals feared to tread.

I hope I've made some progress on that front (eliminating Cygnus configure
from the tree, updating stuff to autoconf 2.5x, adding comments to configure
and make scripts, reorganizing them, eliminating the exotic fixincludes
scripts, getting libada into its own directory, etc.)

I'm quite sure this qualifies as an infrastructure improvement which
benefits everyone but which most companies won't dedicate specific money
or people to, which was one of the categories people were talking about,
no?

-- 
Make sure your vote will count.
http://www.verifiedvoting.org/

^ permalink raw reply	[flat|nested] 69+ messages in thread
* Re: Of Bounties and Mercenaries
@ 2004-04-03 18:37 Dan Kegel
  0 siblings, 0 replies; 69+ messages in thread
From: Dan Kegel @ 2004-04-03 18:37 UTC (permalink / raw)
  To: gcc

Ian wrote:
 > ... What Scott is talking about is how to balance the needs of the
 > free software community and the needs of the commercial interests.

I don't see any need for increased 'balance'.  The commercial
contributions increase the quality of gcc.  What's not to like
about that?  The free software community gets nothing but benefit
from them.

Joe Buck wrote:
 > Motivated individuals who feel that their needs aren't being addressed
 > are welcome to educate themselves enough to become GCC contributors
 > themselves.

Indeed.  The whole idea behind the free software community is
that if enough people want something, they can make it happen.
And more often than not, a sufficiently motivated person
can get excellent help from the community, and really make
progress.

Case in point.  I was fed up with how hard it was to build
gcc and glibc cross-toolchains, and how many bugs there were
in the ppc405 and sh4 support.  Did I whine and kvetch?
Yes, for about a year.  But since that didn't help much, and
since I really needed it, I sat down and worked on a solution
of sorts.   The evolving result is http://kegel.com/crosstool,
which actually does make it kind of easy to build many combinations
of (binutils, gcc, glibc, target CPU) targeting Linux
on any Posix-compatible workstation, and incorporates many
semi-carefully documented patches solving various problems on
particular older versions of tools or for odd platforms.
I wouldn't have been able to do it without a good search
engine, and without help from dozens of experts who patiently
answered the questions I couldn't just google or solve myself.

So Scott, relax.
No need to try to make things happen faster by adding
voting, bounties, or some mythical matchmaking service.
Anyone who wants something bad enough can already help make it
happen.
- Dan

^ permalink raw reply	[flat|nested] 69+ messages in thread
* Re: Of Bounties and Mercenaries
@ 2004-04-03 15:33 Bud Davis
  0 siblings, 0 replies; 69+ messages in thread
From: Bud Davis @ 2004-04-03 15:33 UTC (permalink / raw)
  To: gcc

> Stelios Xanthakis wrote:
> Compiler speed *should not* be an issue. If gcc 3.5 is ten times
> slower compiling programs at -O2, that's a good thing: it means
> that it does more to procude better code. 

Wow, I was preparing a long winded reply about large work groups, 
large source trees, phased integration, and how a compile time 
increase of a few hours is a big deal...when I realized !!

Great Troll !!  Got me !!


--bud davis

^ permalink raw reply	[flat|nested] 69+ messages in thread
* Re: Of Bounties and Mercenaries
@ 2004-04-02 16:21 Richard Kenner
  2004-04-02 16:32 ` Daniel Berlin
                   ` (3 more replies)
  0 siblings, 4 replies; 69+ messages in thread
From: Richard Kenner @ 2004-04-02 16:21 UTC (permalink / raw)
  To: coyote; +Cc: gcc

    I made a serious (with tongue a tad in cheek) set of suggestions 
    specific to GCC, and in response to comments made herein by others. 
    There is a sincere need to address these issues, which are very 
    GCC-specific; few other packages have the breadth and depth of GCC, 
    across platforms and users. Therefore, this seems to be an appropriate 
    venue.

You are totally ignoring the fact that there are many people who *are* paying
to have GCC maintained and a number of companies very happy to receive
such payments.  But the point remains that the issues you are raising are
financial and political and this is a *technical* list.

^ permalink raw reply	[flat|nested] 69+ messages in thread
* Of Bounties and Mercenaries
@ 2004-04-02 15:37 Scott Robert Ladd
  2004-04-02 16:03 ` Michael Matz
  2004-04-02 16:14 ` Ian Lance Taylor
  0 siblings, 2 replies; 69+ messages in thread
From: Scott Robert Ladd @ 2004-04-02 15:37 UTC (permalink / raw)
  To: gcc mailing list

What to do, what to do: On one hand, we have a user community that needs 
improvements in GCC, but who is not paying anyone to do such work. On 
the other hand, we have the GCC developers who often lament the number 
of bugs and regressions that go unpatched.

Shall the twain ever meet?

It seems to me that both sides have the same problem: They want 
something done, but no one is paying for it. So GCC continues to have 
serious bugs, and many users are unhappy, and some unfaithful have begun 
having concourse with -- dare I say it? -- commercial compilers that 
satisfy their needs.

While I would prefer an altruistic world, I have family and animals to 
feed; my teenage daughters devour whole pizzas in a single gulp, while 
my iguana alone eats an entire produce section every week. I'm certain 
we all have our little obligations for rent, power, and other such 
"necessities."

So in whose vested interest is it to make GCC even better? Who will pay 
to make it better, stronger, and faster?

Perhaps we should vote with our pocketbooks. Bugs and feature requests 
could be tracked by value, as defined by the amount of money people 
commit on behalf of such requests. Users could "weight" their vote with 
cold, hard cash to attract the proper mercenary mindset.

Of course, such a model *does* cut out those people who have great need 
but little cash or small markets. If I develop for an embedded system, 
for example, I might offer $100 to request repair of some bug that 
annoys me -- but if a thousand people pay $10 each to fix something for 
the ia32, my poor embedded system will be out-of-luck, I think.

Ah, but no one really cares about those "fringe" systems, when the 
majority of people (the only really *important* ones) use Intel and AMD 
processors running Linux. And if no one's paying (for example) to 
improve floating-point speed and accuracy, it must not be important, eh? 
Anything important *must* have a dollar value attached, according to 
some GCC developers.

Perhaps we could invoke quotas -- for every "popular" bug fixed, the GCC 
developers would have to fix some other, less popular bug. Affirmative 
action for less-popular platforms, bugs, and requests!

How to make a buck and still take care of minority needs? An age old 
question, to be certain.

-- 
Scott Robert Ladd
Coyote Gulch Productions (http://www.coyotegulch.com)
Software Invention for High-Performance Computing

^ permalink raw reply	[flat|nested] 69+ messages in thread

end of thread, other threads:[~2004-04-10 10:52 UTC | newest]

Thread overview: 69+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-04-03 15:00 Of Bounties and Mercenaries Richard Kenner
2004-04-03 20:06 ` Mark Hahn
2004-04-04 16:47   ` Kai Henningsen
  -- strict thread matches above, loose matches on Subject: below --
2004-04-06  5:32 Chris Lattner
2004-04-06  9:19 ` Robert Dewar
2004-04-06 14:04   ` Chris Lattner
2004-04-06 14:15     ` Daniel Jacobowitz
2004-04-06 15:03       ` Chris Lattner
2004-04-07  6:56     ` Bernd Jendrissek
2004-04-07 19:32       ` Tom Lord
2004-04-07 19:58         ` Joe Buck
2004-04-07 20:25           ` Tom Lord
2004-04-07 20:29             ` Joe Buck
2004-04-07 20:40               ` Tom Lord
2004-04-07 20:55                 ` Joe Buck
2004-04-07 21:05                   ` Phil Edwards
2004-04-08  5:16                     ` Tom Lord
2004-04-08 14:54                       ` Phil Edwards
2004-04-08  5:13                   ` Tom Lord
2004-04-08 16:43                     ` Joe Buck
2004-04-06  5:24 Chris Lattner
2004-04-06  3:09 Stephan T. Lavavej
2004-04-06  3:13 ` Daniel Berlin
2004-04-07 23:41   ` Gabriel Dos Reis
2004-04-08 17:22     ` Joe Buck
2004-04-08 19:45       ` Gabriel Dos Reis
2004-04-08 20:27         ` Joe Buck
2004-04-08 20:34           ` Gabriel Dos Reis
2004-04-06  3:18 ` Tom Lord
2004-04-06  3:23 ` Andrew Pinski
2004-04-06  4:03 ` Scott Robert Ladd
2004-04-06  4:12   ` Stephan T. Lavavej
2004-04-06 12:29     ` Scott Robert Ladd
2004-04-10 16:18     ` Toon Moene
2004-04-06  5:06 ` Alexandre Oliva
2004-04-06  5:24   ` Stephan T. Lavavej
2004-04-06  8:21     ` Alexandre Oliva
2004-04-06  8:27       ` Stephan T. Lavavej
2004-04-04 11:27 Robert Dewar
2004-04-04  7:43 Stephan T. Lavavej
2004-04-04  6:53 Nathanael Nerode
2004-04-03 18:37 Dan Kegel
2004-04-03 15:33 Bud Davis
2004-04-02 16:21 Richard Kenner
2004-04-02 16:32 ` Daniel Berlin
2004-04-02 16:40 ` Scott Robert Ladd
2004-04-02 17:50   ` Tom Lord
2004-04-03  0:49     ` Scott Robert Ladd
2004-04-03  1:56       ` Joe Buck
2004-04-03 13:53       ` Stelios Xanthakis
2004-04-03 14:15         ` Toon Moene
2004-04-03 14:29           ` Robert Dewar
2004-04-03 14:27         ` Robert Dewar
2004-04-03 15:33           ` Scott Robert Ladd
2004-04-03 15:24         ` Scott Robert Ladd
2004-04-04 11:18           ` Alexandre Oliva
2004-04-06  6:32             ` Ben Elliston
2004-04-05 20:46         ` Mike Stump
2004-04-03 16:50       ` Tom Lord
2004-04-02 16:47 ` Dave Korn
2004-04-02 16:48 ` Ian Lance Taylor
2004-04-02 15:37 Scott Robert Ladd
2004-04-02 16:03 ` Michael Matz
2004-04-02 16:12   ` Scott Robert Ladd
2004-04-02 19:47     ` Toon Moene
2004-04-03  0:52       ` Scott Robert Ladd
2004-04-02 16:14 ` Ian Lance Taylor
2004-04-02 16:37   ` Scott Robert Ladd
2004-04-06  2:48     ` Ben Elliston

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).