5 ms·
Fran is right in the sense that C is a very very hard language to do these things for. But she's wrong in the sense that it caused massive amounts of funding to
by DannyBee 12y ago
Fran is right in the sense that C is a very very hard language to do these things for.
But she's wrong in the sense that it caused massive amounts of funding to be poured into trying to make it happen anyway.
It's like saying Itanium was a complete failure for compiler optimization.
It is in the sense that they couldn't get compilers that produced good enough code for it (well, the could, just not compilers that ran fast).
But the amount of research and funding used to try to make it happen actually did advance the state of the art in compilers. The techniques we learned weren't all useless, and we discovered a lot about the limits of what can be done.
Fran, btw, is one of the smartest people you'll ever meet.
Just last year I discovered, through some IBM Research colleagues, a really great algorithm that she came up with for region analysis, that solves a lot of the problems of common ones, cleanly, and nobody has rediscovered it in 35 years yet.
(Sadly, this falls into the "i wish they had published more papers on stuff" area)
- Elzair 12y agoCan you share this algorithm?
- DannyBee 12y agoIt was given to me by Kenny Zadeck in the form of an an unpublished chapter of a book that they had been working on. I was asked not to reshare it because of that, so i haven't. The book, sadly, still has not been published.
- beagle3 12y ago> It is in the sense that they couldn't get compilers that produced good enough code for it (well, they could, just not compilers that ran fast). Can you elaborate on that? My last update is from 2002, from an Intel guy who was working on it and said they couldn't. I was under the impression that no much has changed since - but perhaps I am wrong? (and perhaps I misunderstood him in 2002)?
- DannyBee 12y agoThey could do it by ~2005. In any case, it's always been possible. At worst, you make large integer linear programming based models of what you want to happen, and solve them. You can do optimal register allocation and scheduling, etc. You can basically shove everything you want into the ILP model. It's just going to take a ridiculous amount of memory and time to solve.