weliveindetail
Comparing TPDE against the default optimization level in ORC is not fair (because that is -O2 indeed), but that's what we get off-the-shelf. I tested the explicit FastISel setting and it didn't help on the LLVM side, as you said. I didn't try the command-line option though, thanks for the tip! (Especially the -pass-remarks-missed will be useful.)
And yeah, csmith doesn't really generate representative code, but again that was not stated either. I didn't dive into JITLink as it would be a whole post on its own, but yes feature-completeness prevailed over performance here as well -- seems characteristic for LLVM and isn't soo surprising :)
Last but not least, yes multi-threading isn't working as good as the post indicates. This seems related to the fix that JuliaLang did for the TaskDispatcher [1]. I will correct this in the post and see which other points can be addressed in the repo.
Looking forward for your OrcCompileLayer in TPDE!
Actually, it's implemented in LLVM for years :) https://github.com/llvm/llvm-project/commit/a98546ebcd2a692e...
Remote C++ REPL on Raspberry Pi with ez-Clang-Linux
Ez-Clang Python Device Configuration Layer
GDB JIT Interface 101 (In LLDB/LLVM)
Free Reverse SSH Setup with Telegram Login Notifications
Porting the Cling C++ REPL to LLVM 13 and ORCv2
(Sadly) this is not correct. If you want to cache compiled code between sessions, your only option so far are handwritten object caches along the lines of this example:
https://github.com/llvm/llvm-project/blob/ae47d158a096abad43...
Interesting. Isn't that exactly what the US is blaming Huawei for?
[1] https://www.tagesspiegel.de/berlin/neueroeffnung-mit-steinen...