1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 11:02:59 +02:00
llvm-mirror/lib
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
..
Analysis Add ProfileData to required_libraries 2016-04-15 23:08:52 +00:00
AsmParser IR: Use an explicit map for debug info type uniquing 2016-04-17 03:58:21 +00:00
Bitcode IR: Use an explicit map for debug info type uniquing 2016-04-17 03:58:21 +00:00
CodeGen Revert "NFC: unify clang / LLVM atomic ordering" 2016-04-17 21:29:01 +00:00
DebugInfo Update and fix LLVM_ENABLE_MODULES: 2016-04-16 00:48:58 +00:00
ExecutionEngine [ORC] Generalize the ORC RPC utils to support RPC function return values and 2016-04-18 01:06:49 +00:00
Fuzzer [libFuzzer] add a better warning for command line flags with -- (two dashes) 2016-04-15 21:56:29 +00:00
IR IR: Use getRawScope() when verifying 2016-04-17 05:41:09 +00:00
IRReader
LibDriver LibDriver: Silently do nothing when provided no inputs. 2016-04-13 19:36:04 +00:00
LineEditor Fix Clang-tidy modernize-deprecated-headers warnings in some files; other minor fixes. 2016-03-28 17:40:08 +00:00
Linker Linker: Share a single Metadata map for the lifetime of IRMover 2016-04-17 23:30:31 +00:00
LTO Keep only the splitCodegen version that takes a factory. 2016-04-17 18:42:27 +00:00
MC AsmParser: record "# line file" context to calculate location for diag 2016-04-13 19:46:54 +00:00
Object Start to add real error messages for malformed Mach-O files. 2016-04-13 21:17:58 +00:00
ObjectYAML [lanai] Add Lanai backend. 2016-03-28 13:09:54 +00:00
Option Option parser: class for consuming a joined arg in addition to all remaining args 2016-04-15 00:23:30 +00:00
Passes [PM] Rename the CRTP mixin base classes for the new pass manager to 2016-03-11 10:33:22 +00:00
ProfileData Replace the use of MaxFunctionCount module flag 2016-04-15 21:39:58 +00:00
Support Remove some unneeded headers and replace some headers with forward class declarations (NFC) 2016-04-16 07:51:28 +00:00
TableGen Update and fix LLVM_ENABLE_MODULES: 2016-04-16 00:48:58 +00:00
Target [X86] Be explicit about calls to setOperationAction for AVX2 and AVX512 rather than just looping over all vector types and conditinally matching them. NFC 2016-04-17 22:49:46 +00:00
Transforms Transforms: Try harder to fix bootstrap after r266565 2016-04-17 20:11:09 +00:00
CMakeLists.txt Move ObjectYAML code to a new library. 2016-03-01 19:15:06 +00:00
LLVMBuild.txt Add LLVMBuild for ObjectYAML. 2016-03-01 21:29:33 +00:00