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: Great example of why "everything is a tree" sucks


On 13/11/13 17:32, Jeff Law wrote:
On 11/13/13 03:15, Richard Biener wrote:

You know - 'tree's were a design decision (well, just my guess - I wasn't
around 25 years ago ...).  They are a perfect match to represent an AST.
So I'd say whoever introduced that middle-end between the FEs AST
and RTL was at fault :P  (luckily I wasn't around either ... ;))
Yea, you can blame Diego, Andrew and myself largely for the decision to re-use trees in gimple. Reusing trees was a conscious decision made in large part because doing something different for the middle end would have been more work than we could justify at the time.

We would have had to do all the things we're doing now, back then to get it "right". The only difference is now we've got a lot more gimple bits that know about trees than we did early in the early gimple/ssa days.

I don't think blame is the right word, it was a different era, we now have more ram than could be imagined "back then" and as you say at the time it made sense. I like to think there are a few eras, you had the start, single processor, limited speed, limited ram, then processors got a lot faster (the mhz wars lasted a long time) but still not much ram, then today, buying ram by the 2gb stick usually in pairs is the lowest form you can commonly get (1gb sticks are rare) with processors able to do a huge amount very quickly, parallel stuff doesn't really apply to GCC.

Anyway that tangent done with, each era changes software, you started with the undefined behavior wizards/gods then came the era where storing huge programs could actually be done, the "backing store" wasn't measured in kb any more, and so forth.

I fear we have entered the era of crap, software doing the same or less with more resources, the era of the cloud (The next version of eclipse is browser based, with the motto "code.anywhere=true;", part of me died) and HTML 5 and other such nonsense. Caja (Nautilus fork within MATE) implemented copying files as a python script, which had a memory leaking endless loop, I do not know why)

BUT some stuff continues to get better, GCC is making some pretty huge/amazing changes right now (the tree is a great example) this is an exciting time and I really hope I get to be a part of it.

Now let us, as Eric Raymond would say, plan for the future, for it will be here sooner than we think.

Alec

The point of this mail is to hopefully get you guys pondering on the future, I really enjoy reading these mailing lists and watching the annual tub/pot (I forget...) conference videos you guys make, while my motives are selfish an ounce of prevention is worth a pound of cure :P
We did the best we could, now it's time to correct that problem and make sense out of our datastructures.

Jeff


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