Mar 14, 2016

I agree with you that idealised compilers have a beautiful pipeline structure. Finding this structure Is one of the great achievement of the early computing pioneers.

   turn it into a laughably simple chain.
By this reasoning, any computable problem is trivially simple, because I can translate it into ARM/x86/MIPS/... machine code, and machine code is just a linear list of trivial commands, i.e. I can "turn it into a laughably simple chain".

My point is: if you chain enough simple things, the result stops being simple.

Look for example at modern JIT compilers, tracing or otherwise. They are not simple by any stretch of the imagination. To see that just look at a program, and predict how long the warm-up will take. Whoops ... unknown [1].

[1] E. Barrett et al., Virtual Machine Warmup Blows Hot and Cold. http://arxiv.org/abs/1602.00602

Feb 14, 2016

How do you know when warmup is finished?

Warmup's a tricky issue, see this brand new paper: http://arxiv.org/abs/1602.00602