I really don´t get this. You are talking assembly programmers right? In what way are these assembly programmers so special. Ordering the instructions to avoid dependencies must be the objective of any assembly programmer to make the CPU fire on all (n-issue) cylinders, regardless if the CPU is in-order or OOO. You can´t really depend on the re-ordering pipe-line if you really want to optimise your code in assembly as I see it, or if you do, you better know in detail how it works, the length of it, etc.1) Engineers that know how to properly optimize for In-Order cores are very expensive and hard to find.
Am I missing something?
Yeah, I remember this post of yours. That sounds like a really shitty design and are you telling us that the compilers are still not helping in these situation by at least giving you a warning?2) Certain In-Order designs (such as the X360/PS3 PPU) have fundamental flaws that no matter how clever the engineer or time spend optimizing will still stall all over the place.
This is certainly true. In order execution puts more work on the compiler.3) Out-of-Order cores tend to deal much better with compiler generated code - especially true for crappy compilers.
To be fair there should be considerable amount of legacy code optimised for the in-order PPE core in the PS3 and 360 by now, considering they´ve been on the market for 5 years.4) Out-of-Order cores tend to run legacy code better (and who doesn't have legacy code these days)
True, but as a programmer I would also rather replace a 4 core cpu with a 4 times faster single core cpu. What ever cpu design is chosen for the the next gen consoles, it will likely depend heavily on what gives best ipc/die area within a reasonable power envelop and at a decent frequency. It will be really interesting to see how things will turn out this time.So yeah, as a developer I'll take an Out-of-Order core any day.