Posts: 755 +732
There was never (and probably never will be) compiler for Itanium that worked well enough. Itanium is immune to many security issues that come from speculative execution because Itanium is in-order CPU and so there is no real need for speculative execution.
And for last paragraph, let's look some latest CPU-designs:
- AMD Zen: Out-of-Order
- ARM Cortex cores: Out-of-Order
- Apple ARM cores: Out-of-Order
- Intel Cove-cores: Out-of-Order
- Intel Tremont (latest Atom): Out-of-Order, first Atom's were in-order.
So basically all modern "high performance" cores seem to be out-of-order so they are all very very far from Itanium design.
The in-order/out-of-order debate comes down to who ultimately has the responsibility for optimizing execution: The CPU or the Compiler. In-Order execution pushes the responsibility to the compiler, which now needs to be aware of the exact architecture (or ideally, the exact CPU) it's compiling for in order to optimize code. You can't make the code generic and let the CPU handle it (which is how out-of-order essentially works), hence the complaints about compiler performance (which matters a LOT more for in-order CPUs).