[llvm] r263951 - [Orc] Switch RPC Procedure to take a function type, rather than an arg list.

Lang Hames via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 21 09:56:25 PDT 2016


Author: lhames
Date: Mon Mar 21 11:56:25 2016
New Revision: 263951

URL: http://llvm.org/viewvc/llvm-project?rev=263951&view=rev
Log:
[Orc] Switch RPC Procedure to take a function type, rather than an arg list.

No functional change, just a little more readable.

Modified:
    llvm/trunk/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.h
    llvm/trunk/include/llvm/ExecutionEngine/Orc/RPCUtils.h
    llvm/trunk/unittests/ExecutionEngine/Orc/RPCUtilsTest.cpp

Modified: llvm/trunk/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.h?rev=263951&r1=263950&r2=263951&view=diff
==============================================================================
--- llvm/trunk/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.h (original)
+++ llvm/trunk/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.h Mon Mar 21 11:56:25 2016
@@ -82,108 +82,109 @@ public:
 
   static const char *getJITProcIdName(JITProcId Id);
 
-  typedef Procedure<CallIntVoidId, TargetAddress /* FnAddr */> CallIntVoid;
+  typedef Procedure<CallIntVoidId, void(TargetAddress Addr)> CallIntVoid;
 
-  typedef Procedure<CallIntVoidResponseId, int /* Result */>
-      CallIntVoidResponse;
+  typedef Procedure<CallIntVoidResponseId, void(int Result)>
+    CallIntVoidResponse;
 
-  typedef Procedure<CallMainId, TargetAddress /* FnAddr */,
-                    std::vector<std::string> /* Args */>
+  typedef Procedure<CallMainId, void(TargetAddress Addr,
+                                     std::vector<std::string> Args)>
       CallMain;
 
-  typedef Procedure<CallMainResponseId, int /* Result */> CallMainResponse;
+  typedef Procedure<CallMainResponseId, void(int Result)> CallMainResponse;
 
-  typedef Procedure<CallVoidVoidId, TargetAddress /* FnAddr */> CallVoidVoid;
+  typedef Procedure<CallVoidVoidId, void(TargetAddress FnAddr)> CallVoidVoid;
 
-  typedef Procedure<CallVoidVoidResponseId> CallVoidVoidResponse;
+  typedef Procedure<CallVoidVoidResponseId, void()> CallVoidVoidResponse;
 
   typedef Procedure<CreateRemoteAllocatorId,
-                    ResourceIdMgr::ResourceId /* Allocator ID */>
+                    void(ResourceIdMgr::ResourceId AllocatorID)>
       CreateRemoteAllocator;
 
   typedef Procedure<CreateIndirectStubsOwnerId,
-                    ResourceIdMgr::ResourceId /* StubsOwner ID */>
-      CreateIndirectStubsOwner;
+                    void(ResourceIdMgr::ResourceId StubOwnerID)>
+    CreateIndirectStubsOwner;
 
-  typedef Procedure<DeregisterEHFramesId, TargetAddress /* Addr */,
-                    uint32_t /* Size */>
+  typedef Procedure<DeregisterEHFramesId,
+                    void(TargetAddress Addr, uint32_t Size)>
       DeregisterEHFrames;
 
   typedef Procedure<DestroyRemoteAllocatorId,
-                    ResourceIdMgr::ResourceId /* Allocator ID */>
+                    void(ResourceIdMgr::ResourceId AllocatorID)>
       DestroyRemoteAllocator;
 
   typedef Procedure<DestroyIndirectStubsOwnerId,
-                    ResourceIdMgr::ResourceId /* StubsOwner ID */>
+                    void(ResourceIdMgr::ResourceId StubsOwnerID)>
       DestroyIndirectStubsOwner;
 
   typedef Procedure<EmitIndirectStubsId,
-                    ResourceIdMgr::ResourceId /* StubsOwner ID */,
-                    uint32_t /* NumStubsRequired */>
+                    void(ResourceIdMgr::ResourceId StubsOwnerID,
+                         uint32_t NumStubsRequired)>
       EmitIndirectStubs;
 
-  typedef Procedure<
-      EmitIndirectStubsResponseId, TargetAddress /* StubsBaseAddr */,
-      TargetAddress /* PtrsBaseAddr */, uint32_t /* NumStubsEmitted */>
+  typedef Procedure<EmitIndirectStubsResponseId,
+                    void(TargetAddress StubsBaseAddr,
+                         TargetAddress PtrsBaseAddr,
+                         uint32_t NumStubsEmitted)>
       EmitIndirectStubsResponse;
 
-  typedef Procedure<EmitResolverBlockId> EmitResolverBlock;
+  typedef Procedure<EmitResolverBlockId, void()> EmitResolverBlock;
 
-  typedef Procedure<EmitTrampolineBlockId> EmitTrampolineBlock;
+  typedef Procedure<EmitTrampolineBlockId, void()> EmitTrampolineBlock;
 
   typedef Procedure<EmitTrampolineBlockResponseId,
-                    TargetAddress /* BlockAddr */,
-                    uint32_t /* NumTrampolines */>
+                    void(TargetAddress BlockAddr, uint32_t NumTrampolines)>
       EmitTrampolineBlockResponse;
 
-  typedef Procedure<GetSymbolAddressId, std::string /*SymbolName*/>
+  typedef Procedure<GetSymbolAddressId, void(std::string SymbolName)>
       GetSymbolAddress;
 
-  typedef Procedure<GetSymbolAddressResponseId, uint64_t /* SymbolAddr */>
+  typedef Procedure<GetSymbolAddressResponseId, void(uint64_t SymbolAddr)>
       GetSymbolAddressResponse;
 
-  typedef Procedure<GetRemoteInfoId> GetRemoteInfo;
+  typedef Procedure<GetRemoteInfoId, void()> GetRemoteInfo;
 
-  typedef Procedure<GetRemoteInfoResponseId, std::string /* Triple */,
-                    uint32_t /* PointerSize */, uint32_t /* PageSize */,
-                    uint32_t /* TrampolineSize */,
-                    uint32_t /* IndirectStubSize */>
+  typedef Procedure<GetRemoteInfoResponseId,
+                    void(std::string Triple, uint32_t PointerSize,
+                         uint32_t PageSize, uint32_t TrampolineSize,
+                         uint32_t IndirectStubSize)>
       GetRemoteInfoResponse;
 
-  typedef Procedure<ReadMemId, TargetAddress /* Src */, uint64_t /* Size */>
+  typedef Procedure<ReadMemId, void(TargetAddress Src, uint64_t Size)>
       ReadMem;
 
-  typedef Procedure<ReadMemResponseId> ReadMemResponse;
+  typedef Procedure<ReadMemResponseId, void()> ReadMemResponse;
 
-  typedef Procedure<RegisterEHFramesId, TargetAddress /* Addr */,
-                    uint32_t /* Size */>
+  typedef Procedure<RegisterEHFramesId,
+                    void(TargetAddress Addr, uint32_t Size)>
       RegisterEHFrames;
 
-  typedef Procedure<ReserveMemId, ResourceIdMgr::ResourceId /* Id */,
-                    uint64_t /* Size */, uint32_t /* Align */>
+  typedef Procedure<ReserveMemId,
+                    void(ResourceIdMgr::ResourceId AllocID, uint64_t Size,
+                         uint32_t Align)>
       ReserveMem;
 
-  typedef Procedure<ReserveMemResponseId, TargetAddress /* Addr */>
+  typedef Procedure<ReserveMemResponseId, void(TargetAddress Addr)>
       ReserveMemResponse;
 
-  typedef Procedure<RequestCompileId, TargetAddress /* TrampolineAddr */>
+  typedef Procedure<RequestCompileId, void(TargetAddress TrampolineAddr)>
       RequestCompile;
 
-  typedef Procedure<RequestCompileResponseId, TargetAddress /* ImplAddr */>
+  typedef Procedure<RequestCompileResponseId, void(TargetAddress ImplAddr)>
       RequestCompileResponse;
 
-  typedef Procedure<SetProtectionsId, ResourceIdMgr::ResourceId /* Id */,
-                    TargetAddress /* Dst */, uint32_t /* ProtFlags */>
+  typedef Procedure<SetProtectionsId,
+                    void(ResourceIdMgr::ResourceId AllocID, TargetAddress Dst,
+                         uint32_t ProtFlags)>
       SetProtections;
 
-  typedef Procedure<TerminateSessionId> TerminateSession;
+  typedef Procedure<TerminateSessionId, void()> TerminateSession;
 
-  typedef Procedure<WriteMemId, TargetAddress /* Dst */, uint64_t /* Size */
-                    /* Data should follow */>
+  typedef Procedure<WriteMemId,
+                    void(TargetAddress Dst, uint64_t Size /* Data to follow */)>
       WriteMem;
 
-  typedef Procedure<WritePtrId, TargetAddress /* Dst */,
-                    TargetAddress /* Val */>
+  typedef Procedure<WritePtrId, void(TargetAddress Dst, TargetAddress Val)>
       WritePtr;
 };
 

Modified: llvm/trunk/include/llvm/ExecutionEngine/Orc/RPCUtils.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ExecutionEngine/Orc/RPCUtils.h?rev=263951&r1=263950&r2=263951&view=diff
==============================================================================
--- llvm/trunk/include/llvm/ExecutionEngine/Orc/RPCUtils.h (original)
+++ llvm/trunk/include/llvm/ExecutionEngine/Orc/RPCUtils.h Mon Mar 21 11:56:25 2016
@@ -26,7 +26,7 @@ namespace remote {
 // partially specialized.
 class RPCBase {
 protected:
-  template <typename ProcedureIdT, ProcedureIdT ProcId, typename... Ts>
+  template <typename ProcedureIdT, ProcedureIdT ProcId, typename FnT>
   class ProcedureHelper {
   public:
     static const ProcedureIdT Id = ProcId;
@@ -36,7 +36,8 @@ protected:
 
   template <typename ChannelT, typename ProcedureIdT, ProcedureIdT ProcId,
             typename... ArgTs>
-  class CallHelper<ChannelT, ProcedureHelper<ProcedureIdT, ProcId, ArgTs...>> {
+  class CallHelper<ChannelT,
+                   ProcedureHelper<ProcedureIdT, ProcId, void(ArgTs...)>> {
   public:
     static std::error_code call(ChannelT &C, const ArgTs &... Args) {
       if (auto EC = serialize(C, ProcId))
@@ -52,7 +53,7 @@ protected:
   template <typename ChannelT, typename ProcedureIdT, ProcedureIdT ProcId,
             typename... ArgTs>
   class HandlerHelper<ChannelT,
-                      ProcedureHelper<ProcedureIdT, ProcId, ArgTs...>> {
+                      ProcedureHelper<ProcedureIdT, ProcId, void(ArgTs...)>> {
   public:
     template <typename HandlerT>
     static std::error_code handle(ChannelT &C, HandlerT Handler) {
@@ -179,8 +180,8 @@ public:
   ///         })
   ///     /* handle EC */;
   ///
-  template <ProcedureIdT ProcId, typename... Ts>
-  using Procedure = ProcedureHelper<ProcedureIdT, ProcId, Ts...>;
+  template <ProcedureIdT ProcId, typename FnT>
+  using Procedure = ProcedureHelper<ProcedureIdT, ProcId, FnT>;
 
   /// Serialize Args... to channel C, but do not call C.send().
   ///

Modified: llvm/trunk/unittests/ExecutionEngine/Orc/RPCUtilsTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/ExecutionEngine/Orc/RPCUtilsTest.cpp?rev=263951&r1=263950&r2=263951&view=diff
==============================================================================
--- llvm/trunk/unittests/ExecutionEngine/Orc/RPCUtilsTest.cpp (original)
+++ llvm/trunk/unittests/ExecutionEngine/Orc/RPCUtilsTest.cpp Mon Mar 21 11:56:25 2016
@@ -44,18 +44,10 @@ private:
 class DummyRPC : public testing::Test,
                  public RPC<QueueChannel> {
 public:
-  typedef Procedure<1, bool> Proc1;
-  typedef Procedure<2, int8_t,
-                       uint8_t,
-                       int16_t,
-                       uint16_t,
-                       int32_t,
-                       uint32_t,
-                       int64_t,
-                       uint64_t,
-                       bool,
-                       std::string,
-                       std::vector<int>> AllTheTypes;
+  typedef Procedure<1, void(bool)> Proc1;
+  typedef Procedure<2, void(int8_t, uint8_t, int16_t, uint16_t,
+                            int32_t, uint32_t, int64_t, uint64_t,
+                            bool, std::string, std::vector<int>)> AllTheTypes;
 };
 
 




More information about the llvm-commits mailing list