[clang] [compiler-rt] [llvm] [clang-repl] [ORC] Add support for out-of-process execution on ELF (PR #79936)

Stefan Gränitz via cfe-commits cfe-commits at lists.llvm.org
Wed Feb 7 09:18:44 PST 2024


weliveindetail wrote:

Thanks for sharing your patch @jameshu15869!

For the moment it seems like a mix of many moving pieces. I think it would be good to review them isolation, at least ORC runtime support and ELFNix platform changes. All the RPC utilities could go into a separate cpp right? We may even think about lifting them to llvm::support at some point, because we already have copies of it [here](https://github.com/llvm/llvm-project/blob/release/18.x/llvm/examples/OrcV2Examples/LLJITWithRemoteDebugging/RemoteJITUtils.cpp) and [here](https://github.com/llvm/llvm-project/blob/release/18.x/llvm/tools/llvm-jitlink/llvm-jitlink.cpp#L723).

I didn't review in detail, but I think we need to initiate the connection to the executor much earlier. In particular, we must setup the [frontend compiler instance](https://github.com/llvm/llvm-project/blob/release/18.x/clang/tools/clang-repl/ClangRepl.cpp#L185) with the target triple we get from the executor here:
https://github.com/llvm/llvm-project/blob/release/18.x/llvm/include/llvm/ExecutionEngine/Orc/Shared/SimpleRemoteEPCUtils.h#L46

Apart from that, how scalable is the `Interpreter::createWithXY()` approach? I haven't been involved in the design discussions, but it seems much more convenient to use the `LLJITBuilder` interface for that. Why not pass it as an argument to the `IncrementalExecutor` ctor instead of `clang::TargetInfo`?

https://github.com/llvm/llvm-project/pull/79936


More information about the cfe-commits mailing list