Hacker News new | ask | show | jobs
by zozbot234 1869 days ago
> Is this understandable, or does this tell us something bad about llvm?

LLVM is a large project that's mostly written in pre-modern C++, and "noalias" is a highly non-trivial feature that affects many parts of the compiler in 'cross-cutting' ways. It would be surprising if it did not turn up some initial bugs.

1 comments

Initial, yes, but this was first uncovered in Oct 2015. That seems like long enough to fix it.
It’s not a single bug, it’s a bunch of different bugs in the interactions between noalias and various analysis and optimisation passes.
Aliasing analysis is a complicated part of the compiler, and it underpins a lot of optimization passes. It’s not an easy thing to bolt on.
TBF the internal API could be designed more pessimistically, as in llvm could drop noalias annotations unless they’re explicitly maintained (/ converted).

This means optimisation phases would need to explicitly opt-in and aliasing optimisations would commonly be missed by default, but it would avoid miscompilations.