On 20 June 2012 17:15, Don Clugston <d...@nospam.com> wrote: > On 20/06/12 13:22, Manu wrote: > >> I find optimisers are very good at code simplification, assuming that > > you massage the code/expressions to neatly match any architectural quirks. >> I also appreciate that good x86 code is possibly the hardest >> architecture for an optimiser to get right... >> > > Optimizers improved enormously during the 80's and 90's, but the rate of > improvement seems to have slowed. > > With x86, out-of-order execution has made it very easy to get reasonably > good code, and much harder to achieve perfection. Still, Core i7 is much > easier than Core2, since Intel removed one of the most complicated > bottlenecks (on core2 and earlier there is a max 3 reads per cycle, of > registers you haven't written to in the previous 3 cycles). >
Yeah okay, I can easily imagine the complexity for an x86 codegen. RISC architectures are so much more predictable. How do you define 'perfection'? Performance as measured on what particular machine? :)