13 comments

[ 31.1 ms ] story [ 2180 ms ] thread
Page 19 is misleading, sailing close to mendacity.

> Frances Allen Got All The Good Ones.

> 1971: "A Catalogue of Optimizing Transformations". The ~8 passes to write if you're going to bother.

> Inline, Unroll (& Vectorize), CSE, DCE, Code Motion, Constant Fold, Peephole.

> That's it. You're welcome. Many compilers just do those, get ~80% best-case perf.

You could be excused if you came away from this believing that Frances Allen invented all of these optimizations.

She didn't.

With that cleared up, you might think that, at least, she is the sole author of the overview paper cited.

She isn't.

It seems an overwhelming need to come up with some heroic narrative around "women in coding" got the better of this author. I don't think this kind of "proof" is helpful.

Trying to figure out who the author is, but it’s not very clear. Probably Graydon Hoare? Can someone confirm?
The URL is http://venge.net/ graydon /talks/CompilerTalk-2019.pdf

Edit in case it wasn't obvious: it seems unlikely that Graydon Hoare would upload someone else's talk on his homepage together with his other talks.

That’s the clue I used, but I didn’t find it very obvious which “Graydon” the URL referred to. I’ve never heard of Graydon Hoare before but he seemed to match up with the content of the slides. For some reason he seems to be intentionally obscure about who he is on the website, but I see now that there is a link to a named Github profile.
Funny you say that because he's done exactly that! If you look at http://venge.net/graydon/talks/codecon-2006.pdf about Monotone, it turns out (see http://venge.net/graydon/talks/) that it's “A talk Nathaniel Smith gave and I sat on stage looking supportive for, answering occasional questions. It's close to what I would have said!”

(Nevertheless about the original question: yes it's by Graydon Hoare as he mentions: “Talk for some undergrads in computer science at UBC about the wide world of compilers.”)

The information and know-how in this talk is amazing.

It would be interesting to know the author's thoughts about other early influential software in the early PC era, such as the UCSD P-system (was UCSD Pascal an early version of Turbo Pascal?) and Microsoft Basic (fitting the whole interpreter, including floating point arithmetic emulation into 6.5K of RAM on an Intel 8080 seems like a minor miracle today.)

This excludes the world of high-power JITing like JSC and HotSpot server. It’s possible to have an “all the optimizations” compiler outside the ahead of time space.
Specimen #5 V8

JavaScript compiler in Chrome, Node.

Multi-target (7), multi-tier JIT. Optimizations mix of classical stuff and dynamic language stuff from Smalltalk.

Multiple generations of optimization and IRs. Always adjusting for sweet spot of runtime perf vs. compile time, memory, maintenance cost, etc

Recently added slower (non-JIT) interpreter tier, removed others.

That was awesome!

(Though it doesn't mention Prolog compilation research.)