2 ms·
I think this was done because while LLVM was built to be academic, Clang was built to be fast and beat GCC, and so ended up overly low level. A nicer and newer
by astrange 2y ago
I think this was done because while LLVM was built to be academic, Clang was built to be fast and beat GCC, and so ended up overly low level.
A nicer and newer approach is to use an intermediate bytecode that lowers to LLVM IR; Swift, GHC, and I'm sure several other examples I haven't thought of do this.
I'd like to see this for C because I think -O0 is a bad debugging experience, eg because system libraries are still optimized, and an interpreter running on a C-like bytecode would be better. Really the only thing -O0 is good for is working around compiler bugs.