diff options
| author | Lang Hames <lhames@gmail.com> | 2016-11-11 19:46:46 +0000 |
|---|---|---|
| committer | Lang Hames <lhames@gmail.com> | 2016-11-11 19:46:46 +0000 |
| commit | 4f734f254e5575f41758cdc313bae6a56925bbf4 (patch) | |
| tree | 2c0c727b0533f4cde292a797035916b7caaefb25 /llvm/tools/lli/ChildTarget/ChildTarget.cpp | |
| parent | ae1fdddbc4da0cffb219bc6f19b42a9e89f0c3b1 (diff) | |
| download | bcm5719-llvm-4f734f254e5575f41758cdc313bae6a56925bbf4.tar.gz bcm5719-llvm-4f734f254e5575f41758cdc313bae6a56925bbf4.zip | |
[ORC] Revert r286620 while I investigate a bot failure.
llvm-svn: 286621
Diffstat (limited to 'llvm/tools/lli/ChildTarget/ChildTarget.cpp')
| -rw-r--r-- | llvm/tools/lli/ChildTarget/ChildTarget.cpp | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/llvm/tools/lli/ChildTarget/ChildTarget.cpp b/llvm/tools/lli/ChildTarget/ChildTarget.cpp index 77b1d47a946..f6d2413655e 100644 --- a/llvm/tools/lli/ChildTarget/ChildTarget.cpp +++ b/llvm/tools/lli/ChildTarget/ChildTarget.cpp @@ -53,12 +53,23 @@ int main(int argc, char *argv[]) { RTDyldMemoryManager::deregisterEHFramesInProcess(Addr, Size); }; - FDRawChannel Channel(InFD, OutFD); - typedef remote::OrcRemoteTargetServer<FDRawChannel, HostOrcArch> JITServer; + FDRPCChannel Channel(InFD, OutFD); + typedef remote::OrcRemoteTargetServer<FDRPCChannel, HostOrcArch> JITServer; JITServer Server(Channel, SymbolLookup, RegisterEHFrames, DeregisterEHFrames); - while (!Server.receivedTerminate()) - ExitOnErr(Server.handleOne()); + while (1) { + uint32_t RawId; + ExitOnErr(Server.startReceivingFunction(Channel, RawId)); + auto Id = static_cast<JITServer::JITFuncId>(RawId); + switch (Id) { + case JITServer::TerminateSessionId: + ExitOnErr(Server.handleTerminateSession()); + return 0; + default: + ExitOnErr(Server.handleKnownFunction(Id)); + break; + } + } close(InFD); close(OutFD); |

