3 ms·
Both Itanium and Mill support load speculation, which introduces Spectre-like vulnerabilities depending on how it is used. Someone on the Mill team said they ha
by cwzwarich 8y ago
Both Itanium and Mill support load speculation, which introduces Spectre-like vulnerabilities depending on how it is used. Someone on the Mill team said they had to make a compiler change for this: https://news.ycombinator.com/item?id=16125519 https://news.ycombinator.com/item?id=16125519
- Symmetry 8y agoYeah, if the compiler hoists both loads to before the check that would be a problem. But that's not really anything tied to the architecture, you could have the same problem with the prelude of an unrolled loop on a conventional machine.
- cwzwarich 8y agoThe same code would be an ordinary compiler correctness bug on a conventional architecture, because the second load could trap when reading from an invalid address. Itanium and Mill offer instructions that don’t trap, return an invalid value instead, and allow the trap to be forced later (if desired). This is fundamentally new functionality that exposes new vulnerabilities if it is used in certain ways.
- Symmetry 8y agoAh, right, that makes a lot of sense.
- gpderetta 8y agoSure, the problem is those optimizations are critical to make in order machines competitive. The idea of Itanium and friends was about moving the complrxity to the compiler. Speculation and dependency breaking is critical for performance, whether it is done by the compiler, cpu or programmer.