[llvm] [ORC] Remove EPC runAsVoidFunction/runAsIntFunction methods (PR #213265)

Lang Hames via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 31 06:08:50 PDT 2026


https://github.com/lhames updated https://github.com/llvm/llvm-project/pull/213265

>From ffb38cb19062aee98f1a504cf624f381fda7d9d7 Mon Sep 17 00:00:00 2001
From: Lang Hames <lhames at gmail.com>
Date: Fri, 31 Jul 2026 21:06:38 +1000
Subject: [PATCH] [ORC] Remove EPC runAsVoidFunction/runAsIntFunction methods

Remove runAsVoidFunction and runAsIntFunction from
ExecutorProcessControl and all its implementations, along with the
now-unused RunAs{Void,Int}FunctionWrapperName bootstrap symbols and
SimpleRemoteEPC's corresponding address fields. Their only in-tree
users, COFFPlatform and COFFVCRuntimeSupport, now use
rt::sps::Int32VoidCaller and rt::sps::Int32Int32Caller.

runAsMain is likewise routed through rt::sps::MainCaller's controller-
interface symbol, so it is looked up under the same orc_rt_ci_sps_* name
the target-process bootstrap registers.

This is a step towards decoupling the ExecutorProcessControl interface
from SPS serialization.
---
 .../Orc/ExecutorProcessControl.h              |  9 -------
 .../llvm/ExecutionEngine/Orc/InProcessEPC.h   |  4 ---
 .../Orc/SelfExecutorProcessControl.h          |  4 ---
 .../ExecutionEngine/Orc/Shared/OrcRTBridge.h  |  6 -----
 .../ExecutionEngine/Orc/SimpleRemoteEPC.h     |  6 -----
 llvm/lib/ExecutionEngine/Orc/COFFPlatform.cpp | 13 +++++++---
 .../Orc/COFFVCRuntimeSupport.cpp              | 25 +++++++++++--------
 llvm/lib/ExecutionEngine/Orc/InProcessEPC.cpp | 11 --------
 .../Orc/SelfExecutorProcessControl.cpp        | 12 ---------
 .../Orc/Shared/OrcRTBridge.cpp                |  6 -----
 .../ExecutionEngine/Orc/SimpleRemoteEPC.cpp   | 24 +++---------------
 .../Orc/TargetProcess/OrcRTBootstrap.cpp      | 19 +++++++-------
 .../ExecutionEngine/Orc/OrcTestCommon.h       |  8 ------
 13 files changed, 36 insertions(+), 111 deletions(-)

diff --git a/llvm/include/llvm/ExecutionEngine/Orc/ExecutorProcessControl.h b/llvm/include/llvm/ExecutionEngine/Orc/ExecutorProcessControl.h
index 6e84932baa8a8..d69c71fe444b1 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/ExecutorProcessControl.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/ExecutorProcessControl.h
@@ -192,15 +192,6 @@ class LLVM_ABI ExecutorProcessControl {
   virtual Expected<int32_t> runAsMain(ExecutorAddr MainFnAddr,
                                       ArrayRef<std::string> Args) = 0;
 
-  // TODO: move this to ORC runtime.
-  /// Run function with a int (*)(void) signature.
-  virtual Expected<int32_t> runAsVoidFunction(ExecutorAddr VoidFnAddr) = 0;
-
-  // TODO: move this to ORC runtime.
-  /// Run function with a int (*)(int) signature.
-  virtual Expected<int32_t> runAsIntFunction(ExecutorAddr IntFnAddr,
-                                             int Arg) = 0;
-
   /// Run a wrapper function in the executor. The given WFRHandler will be
   /// called on the result when it is returned.
   ///
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/InProcessEPC.h b/llvm/include/llvm/ExecutionEngine/Orc/InProcessEPC.h
index 28ff1986eedfc..26772a645f13e 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/InProcessEPC.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/InProcessEPC.h
@@ -88,10 +88,6 @@ class LLVM_ABI InProcessEPC : public ExecutorProcessControl {
   Expected<int32_t> runAsMain(ExecutorAddr MainFnAddr,
                               ArrayRef<std::string> Args) override;
 
-  Expected<int32_t> runAsVoidFunction(ExecutorAddr VoidFnAddr) override;
-
-  Expected<int32_t> runAsIntFunction(ExecutorAddr IntFnAddr, int Arg) override;
-
   void callWrapperAsync(ExecutorAddr WrapperFnAddr,
                         IncomingWFRHandler OnComplete,
                         ArrayRef<char> ArgBuffer) override;
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/SelfExecutorProcessControl.h b/llvm/include/llvm/ExecutionEngine/Orc/SelfExecutorProcessControl.h
index 0cce7e4f37c78..d420ad9ee1aeb 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/SelfExecutorProcessControl.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/SelfExecutorProcessControl.h
@@ -39,10 +39,6 @@ class LLVM_ABI SelfExecutorProcessControl : public ExecutorProcessControl {
   Expected<int32_t> runAsMain(ExecutorAddr MainFnAddr,
                               ArrayRef<std::string> Args) override;
 
-  Expected<int32_t> runAsVoidFunction(ExecutorAddr VoidFnAddr) override;
-
-  Expected<int32_t> runAsIntFunction(ExecutorAddr IntFnAddr, int Arg) override;
-
   void callWrapperAsync(ExecutorAddr WrapperFnAddr,
                         IncomingWFRHandler OnComplete,
                         ArrayRef<char> ArgBuffer) override;
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/Shared/OrcRTBridge.h b/llvm/include/llvm/ExecutionEngine/Orc/Shared/OrcRTBridge.h
index 637e724109158..0946e8fbd6c57 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/Shared/OrcRTBridge.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/Shared/OrcRTBridge.h
@@ -61,10 +61,6 @@ LLVM_ABI extern const char *DeregisterEHFrameSectionAllocActionName;
 
 LLVM_ABI extern const char *RegisterJITLoaderGDBAllocActionName;
 
-LLVM_ABI extern const char *RunAsMainWrapperName;
-LLVM_ABI extern const char *RunAsVoidFunctionWrapperName;
-LLVM_ABI extern const char *RunAsIntFunctionWrapperName;
-
 LLVM_ABI extern const char *const DispatchName;
 LLVM_ABI extern const char *const DispatchCtxName;
 
@@ -157,8 +153,6 @@ using SPSSimpleRemoteMemoryMapReleaseSignature = shared::SPSError(
 
 using SPSRunAsMainSignature = int64_t(shared::SPSExecutorAddr,
                                       shared::SPSSequence<shared::SPSString>);
-using SPSRunAsVoidFunctionSignature = int32_t(shared::SPSExecutorAddr);
-using SPSRunAsIntFunctionSignature = int32_t(shared::SPSExecutorAddr, int32_t);
 } // end namespace rt
 
 namespace rt_alt {
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/SimpleRemoteEPC.h b/llvm/include/llvm/ExecutionEngine/Orc/SimpleRemoteEPC.h
index 6527771fa34db..73e63145b0350 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/SimpleRemoteEPC.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/SimpleRemoteEPC.h
@@ -56,10 +56,6 @@ class LLVM_ABI SimpleRemoteEPC : public ExecutorProcessControl,
   Expected<int32_t> runAsMain(ExecutorAddr MainFnAddr,
                               ArrayRef<std::string> Args) override;
 
-  Expected<int32_t> runAsVoidFunction(ExecutorAddr VoidFnAddr) override;
-
-  Expected<int32_t> runAsIntFunction(ExecutorAddr IntFnAddr, int Arg) override;
-
   void callWrapperAsync(ExecutorAddr WrapperFnAddr,
                         IncomingWFRHandler OnComplete,
                         ArrayRef<char> ArgBuffer) override;
@@ -114,8 +110,6 @@ class LLVM_ABI SimpleRemoteEPC : public ExecutorProcessControl,
   std::unique_ptr<SimpleRemoteEPCTransport> T;
 
   ExecutorAddr RunAsMainAddr;
-  ExecutorAddr RunAsVoidFunctionAddr;
-  ExecutorAddr RunAsIntFunctionAddr;
 
   uint64_t NextSeqNo = 0;
   PendingCallWrapperResultsMap PendingCallWrapperResults;
diff --git a/llvm/lib/ExecutionEngine/Orc/COFFPlatform.cpp b/llvm/lib/ExecutionEngine/Orc/COFFPlatform.cpp
index a6ab398d0ed5b..d80a6f542858f 100644
--- a/llvm/lib/ExecutionEngine/Orc/COFFPlatform.cpp
+++ b/llvm/lib/ExecutionEngine/Orc/COFFPlatform.cpp
@@ -13,9 +13,9 @@
 #include "llvm/ExecutionEngine/Orc/DebugUtils.h"
 #include "llvm/ExecutionEngine/Orc/LookupAndRecordAddrs.h"
 #include "llvm/ExecutionEngine/Orc/ObjectFileInterface.h"
+#include "llvm/ExecutionEngine/Orc/RTBridge/SPS/Calls.h"
 #include "llvm/ExecutionEngine/Orc/Shared/ObjectFormats.h"
 #include "llvm/ExecutionEngine/Orc/Shared/OrcRTBridge.h"
-
 #include "llvm/Object/COFF.h"
 
 #include "llvm/ExecutionEngine/Orc/EPCDynamicLibrarySearchGenerator.h"
@@ -663,11 +663,13 @@ Error COFFPlatform::runBootstrapInitializers(JDBootstrapState &BState) {
 Error COFFPlatform::runBootstrapSubsectionInitializers(JDBootstrapState &BState,
                                                        StringRef Start,
                                                        StringRef End) {
+  auto CallInitializer = rt::sps::Int32VoidCaller::Create(ES);
+  if (!CallInitializer)
+    return CallInitializer.takeError();
   for (auto &Initializer : BState.Initializers)
     if (Initializer.first >= Start && Initializer.first <= End &&
         Initializer.second) {
-      auto Res =
-          ES.getExecutorProcessControl().runAsVoidFunction(Initializer.second);
+      auto Res = (*CallInitializer)(Initializer.second);
       if (!Res)
         return Res.takeError();
     }
@@ -733,7 +735,10 @@ Error COFFPlatform::runSymbolIfExists(JITDylib &PlatformJD,
       ES, LookupKind::Static, makeJITDylibSearchOrder(&PlatformJD),
       {{ES.intern(SymbolName), &jit_function}});
   if (!AfterCLookupErr) {
-    auto Res = ES.getExecutorProcessControl().runAsVoidFunction(jit_function);
+    auto CallFn = rt::sps::Int32VoidCaller::Create(ES);
+    if (!CallFn)
+      return CallFn.takeError();
+    auto Res = (*CallFn)(jit_function);
     if (!Res)
       return Res.takeError();
     return Error::success();
diff --git a/llvm/lib/ExecutionEngine/Orc/COFFVCRuntimeSupport.cpp b/llvm/lib/ExecutionEngine/Orc/COFFVCRuntimeSupport.cpp
index b47f566b24eb7..8e33734af1575 100644
--- a/llvm/lib/ExecutionEngine/Orc/COFFVCRuntimeSupport.cpp
+++ b/llvm/lib/ExecutionEngine/Orc/COFFVCRuntimeSupport.cpp
@@ -11,6 +11,7 @@
 #include "llvm/ExecutionEngine/Orc/COFF.h"
 #include "llvm/ExecutionEngine/Orc/ExecutionUtils.h"
 #include "llvm/ExecutionEngine/Orc/LookupAndRecordAddrs.h"
+#include "llvm/ExecutionEngine/Orc/RTBridge/SPS/Calls.h"
 #include "llvm/Support/VirtualFileSystem.h"
 #include "llvm/WindowsDriver/MSVCPaths.h"
 
@@ -123,26 +124,28 @@ Error COFFVCRuntimeBootstrapper::initializeStaticVCRuntime(JITDylib &JD) {
             &jit_scrt_initialize_default_local_stdio_options}}))
     return Err;
 
-  auto RunVoidInitFunc = [&](ExecutorAddr Addr) -> Error {
-    if (auto Res = ES.getExecutorProcessControl().runAsVoidFunction(Addr))
-      return Error::success();
-    else
-      return Res.takeError();
-  };
+  auto CallInt32Void = rt::sps::Int32VoidCaller::Create(ES);
+  if (!CallInt32Void)
+    return CallInt32Void.takeError();
+
+  auto CallInt32Int32 = rt::sps::Int32Int32Caller::Create(ES);
+  if (!CallInt32Int32)
+    return CallInt32Int32.takeError();
 
-  auto R =
-      ES.getExecutorProcessControl().runAsIntFunction(jit_scrt_initialize, 0);
+  auto R = (*CallInt32Int32)(jit_scrt_initialize, 0);
   if (!R)
     return R.takeError();
 
-  if (auto Err = RunVoidInitFunc(jit_scrt_dllmain_before_initialize_c))
+  if (auto Err =
+          (*CallInt32Void)(jit_scrt_dllmain_before_initialize_c).takeError())
     return Err;
 
-  if (auto Err = RunVoidInitFunc(jit_scrt_initialize_type_info))
+  if (auto Err = (*CallInt32Void)(jit_scrt_initialize_type_info).takeError())
     return Err;
 
   if (auto Err =
-          RunVoidInitFunc(jit_scrt_initialize_default_local_stdio_options))
+          (*CallInt32Void)(jit_scrt_initialize_default_local_stdio_options)
+              .takeError())
     return Err;
 
   SymbolAliasMap Alias;
diff --git a/llvm/lib/ExecutionEngine/Orc/InProcessEPC.cpp b/llvm/lib/ExecutionEngine/Orc/InProcessEPC.cpp
index 70fa12138b88d..47c170d2d3e86 100644
--- a/llvm/lib/ExecutionEngine/Orc/InProcessEPC.cpp
+++ b/llvm/lib/ExecutionEngine/Orc/InProcessEPC.cpp
@@ -134,17 +134,6 @@ Expected<int32_t> InProcessEPC::runAsMain(ExecutorAddr MainFnAddr,
   return orc::runAsMain(MainFnAddr.toPtr<MainTy>(), Args);
 }
 
-Expected<int32_t> InProcessEPC::runAsVoidFunction(ExecutorAddr VoidFnAddr) {
-  using VoidTy = int (*)();
-  return orc::runAsVoidFunction(VoidFnAddr.toPtr<VoidTy>());
-}
-
-Expected<int32_t> InProcessEPC::runAsIntFunction(ExecutorAddr IntFnAddr,
-                                                 int Arg) {
-  using IntTy = int (*)(int);
-  return orc::runAsIntFunction(IntFnAddr.toPtr<IntTy>(), Arg);
-}
-
 void InProcessEPC::callWrapperAsync(ExecutorAddr WrapperFnAddr,
                                     IncomingWFRHandler OnComplete,
                                     ArrayRef<char> ArgBuffer) {
diff --git a/llvm/lib/ExecutionEngine/Orc/SelfExecutorProcessControl.cpp b/llvm/lib/ExecutionEngine/Orc/SelfExecutorProcessControl.cpp
index bda9b55046e33..a79a2622372b6 100644
--- a/llvm/lib/ExecutionEngine/Orc/SelfExecutorProcessControl.cpp
+++ b/llvm/lib/ExecutionEngine/Orc/SelfExecutorProcessControl.cpp
@@ -85,18 +85,6 @@ SelfExecutorProcessControl::runAsMain(ExecutorAddr MainFnAddr,
   return orc::runAsMain(MainFnAddr.toPtr<MainTy>(), Args);
 }
 
-Expected<int32_t>
-SelfExecutorProcessControl::runAsVoidFunction(ExecutorAddr VoidFnAddr) {
-  using VoidTy = int (*)();
-  return orc::runAsVoidFunction(VoidFnAddr.toPtr<VoidTy>());
-}
-
-Expected<int32_t>
-SelfExecutorProcessControl::runAsIntFunction(ExecutorAddr IntFnAddr, int Arg) {
-  using IntTy = int (*)(int);
-  return orc::runAsIntFunction(IntFnAddr.toPtr<IntTy>(), Arg);
-}
-
 void SelfExecutorProcessControl::callWrapperAsync(ExecutorAddr WrapperFnAddr,
                                                   IncomingWFRHandler SendResult,
                                                   ArrayRef<char> ArgBuffer) {
diff --git a/llvm/lib/ExecutionEngine/Orc/Shared/OrcRTBridge.cpp b/llvm/lib/ExecutionEngine/Orc/Shared/OrcRTBridge.cpp
index 2a46bd21f0dc9..7f3354fa49b32 100644
--- a/llvm/lib/ExecutionEngine/Orc/Shared/OrcRTBridge.cpp
+++ b/llvm/lib/ExecutionEngine/Orc/Shared/OrcRTBridge.cpp
@@ -79,12 +79,6 @@ const char *DeregisterEHFrameSectionAllocActionName =
 const char *RegisterJITLoaderGDBAllocActionName =
     "llvm_orc_registerJITLoaderGDBAllocAction";
 
-const char *RunAsMainWrapperName = "__llvm_orc_bootstrap_run_as_main_wrapper";
-const char *RunAsVoidFunctionWrapperName =
-    "__llvm_orc_bootstrap_run_as_void_function_wrapper";
-const char *RunAsIntFunctionWrapperName =
-    "__llvm_orc_bootstrap_run_as_int_function_wrapper";
-
 const char *const DispatchName = "__orc_rt_jit_dispatch";
 const char *const DispatchCtxName = "__orc_rt_jit_dispatch_ctx";
 
diff --git a/llvm/lib/ExecutionEngine/Orc/SimpleRemoteEPC.cpp b/llvm/lib/ExecutionEngine/Orc/SimpleRemoteEPC.cpp
index f09a721c4abfc..897b318d83cb4 100644
--- a/llvm/lib/ExecutionEngine/Orc/SimpleRemoteEPC.cpp
+++ b/llvm/lib/ExecutionEngine/Orc/SimpleRemoteEPC.cpp
@@ -10,6 +10,7 @@
 #include "llvm/ExecutionEngine/Orc/EPCGenericDylibManager.h"
 #include "llvm/ExecutionEngine/Orc/EPCGenericJITLinkMemoryManager.h"
 #include "llvm/ExecutionEngine/Orc/EPCGenericMemoryAccess.h"
+#include "llvm/ExecutionEngine/Orc/RTBridge/SPS/Calls.h"
 #include "llvm/ExecutionEngine/Orc/Shared/OrcRTBridge.h"
 #include "llvm/Support/FormatVariadic.h"
 
@@ -34,23 +35,6 @@ Expected<int32_t> SimpleRemoteEPC::runAsMain(ExecutorAddr MainFnAddr,
   return Result;
 }
 
-Expected<int32_t> SimpleRemoteEPC::runAsVoidFunction(ExecutorAddr VoidFnAddr) {
-  int32_t Result = 0;
-  if (auto Err = callSPSWrapper<rt::SPSRunAsVoidFunctionSignature>(
-          RunAsVoidFunctionAddr, Result, VoidFnAddr))
-    return std::move(Err);
-  return Result;
-}
-
-Expected<int32_t> SimpleRemoteEPC::runAsIntFunction(ExecutorAddr IntFnAddr,
-                                                    int Arg) {
-  int32_t Result = 0;
-  if (auto Err = callSPSWrapper<rt::SPSRunAsIntFunctionSignature>(
-          RunAsIntFunctionAddr, Result, IntFnAddr, Arg))
-    return std::move(Err);
-  return Result;
-}
-
 void SimpleRemoteEPC::callWrapperAsync(ExecutorAddr WrapperFnAddr,
                                        IncomingWFRHandler OnComplete,
                                        ArrayRef<char> ArgBuffer) {
@@ -343,10 +327,8 @@ Error SimpleRemoteEPC::setup() {
   BootstrapSymbols[rt::DispatchCtxName] =
       BootstrapSymbols[ExecutorSessionObjectName];
 
-  if (auto Err = getBootstrapSymbols(
-          {{RunAsMainAddr, rt::RunAsMainWrapperName},
-           {RunAsVoidFunctionAddr, rt::RunAsVoidFunctionWrapperName},
-           {RunAsIntFunctionAddr, rt::RunAsIntFunctionWrapperName}}))
+  if (auto Err =
+          getBootstrapSymbols({{RunAsMainAddr, rt::sps::CallMainCIName}}))
     return Err;
 
   return Error::success();
diff --git a/llvm/lib/ExecutionEngine/Orc/TargetProcess/OrcRTBootstrap.cpp b/llvm/lib/ExecutionEngine/Orc/TargetProcess/OrcRTBootstrap.cpp
index 475295a81d16c..c0327713e6046 100644
--- a/llvm/lib/ExecutionEngine/Orc/TargetProcess/OrcRTBootstrap.cpp
+++ b/llvm/lib/ExecutionEngine/Orc/TargetProcess/OrcRTBootstrap.cpp
@@ -8,6 +8,7 @@
 
 #include "OrcRTBootstrap.h"
 
+#include "llvm/ExecutionEngine/Orc/RTBridge/SPS/Calls.h"
 #include "llvm/ExecutionEngine/Orc/Shared/OrcRTBridge.h"
 #include "llvm/ExecutionEngine/Orc/Shared/WrapperFunctionUtils.h"
 #include "llvm/ExecutionEngine/Orc/TargetProcess/RegisterEHFrames.h"
@@ -135,8 +136,8 @@ runAsMainWrapper(const char *ArgData, size_t ArgSize) {
 }
 
 static llvm::orc::shared::CWrapperFunctionBuffer
-runAsVoidFunctionWrapper(const char *ArgData, size_t ArgSize) {
-  return WrapperFunction<rt::SPSRunAsVoidFunctionSignature>::handle(
+runAsInt32VoidFunctionWrapper(const char *ArgData, size_t ArgSize) {
+  return WrapperFunction<rt::sps::CallInt32VoidSPSSig>::handle(
              ArgData, ArgSize,
              [](ExecutorAddr MainAddr) -> int32_t {
                return runAsVoidFunction(MainAddr.toPtr<int32_t (*)(void)>());
@@ -145,8 +146,8 @@ runAsVoidFunctionWrapper(const char *ArgData, size_t ArgSize) {
 }
 
 static llvm::orc::shared::CWrapperFunctionBuffer
-runAsIntFunctionWrapper(const char *ArgData, size_t ArgSize) {
-  return WrapperFunction<rt::SPSRunAsIntFunctionSignature>::handle(
+runAsInt32Int32FunctionWrapper(const char *ArgData, size_t ArgSize) {
+  return WrapperFunction<rt::sps::CallInt32Int32SPSSig>::handle(
              ArgData, ArgSize,
              [](ExecutorAddr MainAddr, int32_t Arg) -> int32_t {
                return runAsIntFunction(MainAddr.toPtr<int32_t (*)(int32_t)>(),
@@ -186,11 +187,11 @@ void addTo(StringMap<ExecutorAddr> &M) {
       ExecutorAddr::fromPtr(&readBuffersWrapper);
   M[rt::MemoryReadStringsWrapperName] =
       ExecutorAddr::fromPtr(&readStringsWrapper);
-  M[rt::RunAsMainWrapperName] = ExecutorAddr::fromPtr(&runAsMainWrapper);
-  M[rt::RunAsVoidFunctionWrapperName] =
-      ExecutorAddr::fromPtr(&runAsVoidFunctionWrapper);
-  M[rt::RunAsIntFunctionWrapperName] =
-      ExecutorAddr::fromPtr(&runAsIntFunctionWrapper);
+  M[rt::sps::CallMainCIName] = ExecutorAddr::fromPtr(&runAsMainWrapper);
+  M[rt::sps::CallInt32VoidCIName] =
+      ExecutorAddr::fromPtr(&runAsInt32VoidFunctionWrapper);
+  M[rt::sps::CallInt32Int32CIName] =
+      ExecutorAddr::fromPtr(&runAsInt32Int32FunctionWrapper);
 }
 
 } // end namespace rt_bootstrap
diff --git a/llvm/unittests/ExecutionEngine/Orc/OrcTestCommon.h b/llvm/unittests/ExecutionEngine/Orc/OrcTestCommon.h
index 10145b5b546df..b2afed2eabac2 100644
--- a/llvm/unittests/ExecutionEngine/Orc/OrcTestCommon.h
+++ b/llvm/unittests/ExecutionEngine/Orc/OrcTestCommon.h
@@ -106,14 +106,6 @@ class UnsupportedExecutorProcessControl : public ExecutorProcessControl,
     llvm_unreachable("Unsupported");
   }
 
-  Expected<int32_t> runAsVoidFunction(ExecutorAddr VoidFnAddr) override {
-    llvm_unreachable("Unsupported");
-  }
-
-  Expected<int32_t> runAsIntFunction(ExecutorAddr IntFnAddr, int Arg) override {
-    llvm_unreachable("Unsupported");
-  }
-
   void callWrapperAsync(ExecutorAddr WrapperFnAddr,
                         IncomingWFRHandler OnComplete,
                         ArrayRef<char> ArgBuffer) override {



More information about the llvm-commits mailing list