4 ms·
> step 2 was fine, because it wasn't C, so it didn't have the aliasing semantics of C. LLVM still has its own aliasing semantics. It must, both so that it can
by Rusky 2y ago
> step 2 was fine, because it wasn't C, so it didn't have the aliasing semantics of C.
LLVM still has its own aliasing semantics. It must, both so that it can exploit at least some of C's aliasing rules, and more importantly so that we can determine whether a given transformation is correct, without reference to the entire corpus of optimization passes.
The article describes three possible choices of aliasing semantics for LLVM IR, each of which makes a different optimization pass illegal. You are arguing for one particular choice, without addressing its downsides as also covered in the article.
- deleted 2y ago[deleted]