Optimised in compiler
I seem to recall that part of the Itanium design was that the compiler would optimise the code rather than the CPU trying to figure it out at runtime, with all the out of order execution, branch prediction etc silicon that makes other CPUs more performant. To me, at the time, that sounded like a good idea; spend extra time at compile time to get efficient code rather than letting the silicon figure it out. In retrospect, it should have been obvious that there were several flaws here:
- It requires a good compiler; they were lacking at the time.
- It requires proper coding to maximise potential of the chip. Comment in the article highlights it was difficult to code for.
- Programmer time is expensive, more so than faster chips from Sun, IBM or even x86.
- CPU designs move over time; optimise for CPU x and CPU y will probably not work quite the same way.
Some good ideas in the chip, but the market moved before it was ready and it was practically obsolete by the time it shipped. AMD showed that you could have 64 bit CPUs which would still run legacy 32 bit code, so you didn't need to ditch everything to get 64 bit capabilities.