1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 12:02:58 +02:00
llvm-mirror/include/llvm/ExecutionEngine/Orc
Lang Hames e6614e766c [ORC] Generalize the ORC RPC utils to support RPC function return values and
asynchronous call/handle. Also updates the ORC remote JIT API to use the new
scheme.

The previous version of the RPC tools only supported void functions, and
required the user to manually call a paired function to return results. This
patch replaces the Procedure typedef (which only supported void functions) with
the Function typedef which supports return values, e.g.:

  Function<FooId, int32_t(std::string)> Foo;

The RPC primitives and channel operations are also expanded. RPC channels must
support four new operations: startSendMessage, endSendMessage,
startRecieveMessage and endRecieveMessage, to handle channel locking. In
addition, serialization support for tuples to RPCChannels is added to enable
multiple return values.

The RPC primitives are expanded from callAppend, call, expect and handle, to:

appendCallAsync - Make an asynchronous call to the given function.

callAsync - The same as appendCallAsync, but calls send on the channel when
            done.

callSTHandling - Blocking call for single-threaded code. Wraps a call to
                 callAsync then waits on the result, using a user-supplied
                 handler to handle any callbacks from the remote.

callST - The same as callSTHandling, except that it doesn't handle
         callbacks - it expects the result to be the first return.

expect and handle - as before.

handleResponse - Handle a response from the remote.

waitForResult - Wait for the response with the given sequence number to arrive.

llvm-svn: 266581
2016-04-18 01:06:49 +00:00
..
CompileOnDemandLayer.h [Orc] Fix missing return. 2016-01-11 19:40:25 +00:00
CompileUtils.h Thread Expected<...> up from createMachOObjectFile() to allow llvm-objdump to produce a real error message 2016-04-06 22:14:09 +00:00
ExecutionUtils.h
GlobalMappingLayer.h Add a global mapping layer for Orc. Adapted from a patch by Andy Somogyi. 2015-08-27 22:20:05 +00:00
IndirectionUtils.h Orc] Drop PageSize member from Orc architecture support class in favour of 2016-01-11 02:41:17 +00:00
IRCompileLayer.h Thread Expected<...> up from createMachOObjectFile() to allow llvm-objdump to produce a real error message 2016-04-06 22:14:09 +00:00
IRTransformLayer.h
JITSymbol.h
LambdaResolver.h
LazyEmittingLayer.h [Orc] Clean up a comment. 2015-10-21 20:13:41 +00:00
LogicalDylib.h llvm/ExecutionEngine/Orc/LogicalDylib.h: Satisfy Modules. 2015-10-30 00:38:01 +00:00
NullResolver.h
ObjectLinkingLayer.h [Orc] 'this' qualify more lambda-captured members. 2016-01-20 05:10:59 +00:00
ObjectTransformLayer.h [ORC] Update ObjectTransformLayer signature 2016-01-23 18:36:01 +00:00
OrcArchitectureSupport.h [Orc] Add stack-realignment code to the i386 resolver function. 2016-02-21 22:50:26 +00:00
OrcError.h [ORC] Generalize the ORC RPC utils to support RPC function return values and 2016-04-18 01:06:49 +00:00
OrcRemoteTargetClient.h [ORC] Generalize the ORC RPC utils to support RPC function return values and 2016-04-18 01:06:49 +00:00
OrcRemoteTargetRPCAPI.h [ORC] Generalize the ORC RPC utils to support RPC function return values and 2016-04-18 01:06:49 +00:00
OrcRemoteTargetServer.h [ORC] Generalize the ORC RPC utils to support RPC function return values and 2016-04-18 01:06:49 +00:00
RPCChannel.h [ORC] Generalize the ORC RPC utils to support RPC function return values and 2016-04-18 01:06:49 +00:00
RPCUtils.h [ORC] Generalize the ORC RPC utils to support RPC function return values and 2016-04-18 01:06:49 +00:00