5 ms·
C has a pointer aliasing keyword, "restrict". Also: "Originally implemented for C and C++, the language-agnostic design of LLVM has since spawned a wide variet
by gens 10y ago
C has a pointer aliasing keyword, "restrict".
Also: "Originally implemented for C and C++, the language-agnostic design of LLVM has since spawned a wide variety of front ends: languages with compilers that use LLVM include ActionScript, Ada, C#,[4][5][6] Common Lisp, Crystal, D, Delphi, Fortran, OpenGL Shading Language, Halide, Haskell, Java bytecode, Julia, Lua, Objective-C, Pony,[7] Python, R, Ruby, Rust, CUDA, Scala,[8] and Swift."
Most of these are nothing like C when it comes to pointers and memory layout.
- Rusky 10y agoAgain, from what I understand, `restrict` is not enough to convey everything Rust knows. Further, those other languages may be nothing like C, but they're even less like Rust. So because of its heritage, even given the information Rust knows, LLVM simply doesn't have the optimization passes to take full advantage of it.
- gens 10y agoOk. Like what ?