GDC review process.

Don Clugston dac at nospam.com
Thu Jun 21 00:28:54 PDT 2012


On 20/06/12 16:37, Manu wrote:
> On 20 June 2012 17:15, Don Clugston <dac at nospam.com
> <mailto:dac at 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? :)

The theoretical limit for a particular architecture. Eg in BigInt, the 
most crucial functions an integer multiply in each loop iteration.
Since the machine only has one integer multiply unit, it is impossible 
to do better than one multiply per cycle. If you've achieved that, it's 
perfect.
If the processors are different enough you may also need a separate 
branch for different processors.


More information about the Digitalmars-d mailing list