LLVM 18.0.0git
|
#include "llvm/ExecutionEngine/Orc/LLJIT.h"
Public Member Functions | |
SetterImpl & | setExecutorProcessControl (std::unique_ptr< ExecutorProcessControl > EPC) |
Set a ExecutorProcessControl for this instance. | |
SetterImpl & | setExecutionSession (std::unique_ptr< ExecutionSession > ES) |
Set an ExecutionSession for this instance. | |
SetterImpl & | setJITTargetMachineBuilder (JITTargetMachineBuilder JTMB) |
Set the JITTargetMachineBuilder for this instance. | |
std::optional< JITTargetMachineBuilder > & | getJITTargetMachineBuilder () |
Return a reference to the JITTargetMachineBuilder. | |
SetterImpl & | setDataLayout (std::optional< DataLayout > DL) |
Set a DataLayout for this instance. | |
SetterImpl & | setLinkProcessSymbolsByDefault (bool LinkProcessSymbolsByDefault) |
The LinkProcessSymbolsDyDefault flag determines whether the "Process" JITDylib will be added to the default link order at LLJIT construction time. | |
SetterImpl & | setProcessSymbolsJITDylibSetup (LLJITBuilderState::ProcessSymbolsJITDylibSetupFunction SetupProcessSymbolsJITDylib) |
Set a setup function for the process symbols dylib. | |
SetterImpl & | setObjectLinkingLayerCreator (LLJITBuilderState::ObjectLinkingLayerCreator CreateObjectLinkingLayer) |
Set an ObjectLinkingLayer creation function. | |
SetterImpl & | setCompileFunctionCreator (LLJITBuilderState::CompileFunctionCreator CreateCompileFunction) |
Set a CompileFunctionCreator. | |
SetterImpl & | setPrePlatformSetup (unique_function< Error(LLJIT &)> PrePlatformSetup) |
Set a setup function to be run just before the PlatformSetupFunction is run. | |
SetterImpl & | setPlatformSetUp (LLJITBuilderState::PlatformSetupFunction SetUpPlatform) |
Set up an PlatformSetupFunction. | |
SetterImpl & | setNumCompileThreads (unsigned NumCompileThreads) |
Set the number of compile threads to use. | |
SetterImpl & | setEnableDebuggerSupport (bool EnableDebuggerSupport) |
Enable / disable debugger support (off by default). | |
SetterImpl & | setExecutorProcessControl (ExecutorProcessControl &EPC) |
Set an ExecutorProcessControl object. | |
Expected< std::unique_ptr< JITType > > | create () |
Create an instance of the JIT. | |
Protected Member Functions | |
SetterImpl & | impl () |
|
inline |
Create an instance of the JIT.
Definition at line 476 of file LLJIT.h.
References llvm::orc::LLJITBuilderSetters< JITType, SetterImpl, State >::impl(), and llvm::Error::success().
|
inline |
Return a reference to the JITTargetMachineBuilder.
Definition at line 367 of file LLJIT.h.
References llvm::orc::LLJITBuilderSetters< JITType, SetterImpl, State >::impl().
|
inlineprotected |
Definition at line 488 of file LLJIT.h.
Referenced by llvm::orc::LLJITBuilderSetters< JITType, SetterImpl, State >::create(), llvm::orc::LLJITBuilderSetters< JITType, SetterImpl, State >::getJITTargetMachineBuilder(), llvm::orc::LLJITBuilderSetters< JITType, SetterImpl, State >::setCompileFunctionCreator(), llvm::orc::LLJITBuilderSetters< JITType, SetterImpl, State >::setDataLayout(), llvm::orc::LLJITBuilderSetters< JITType, SetterImpl, State >::setEnableDebuggerSupport(), llvm::orc::LLJITBuilderSetters< JITType, SetterImpl, State >::setExecutionSession(), llvm::orc::LLJITBuilderSetters< JITType, SetterImpl, State >::setExecutorProcessControl(), llvm::orc::LLLazyJITBuilderSetters< JITType, SetterImpl, State >::setIndirectStubsManagerBuilder(), llvm::orc::LLJITBuilderSetters< JITType, SetterImpl, State >::setJITTargetMachineBuilder(), llvm::orc::LLLazyJITBuilderSetters< JITType, SetterImpl, State >::setLazyCallthroughManager(), llvm::orc::LLLazyJITBuilderSetters< JITType, SetterImpl, State >::setLazyCompileFailureAddr(), llvm::orc::LLJITBuilderSetters< JITType, SetterImpl, State >::setLinkProcessSymbolsByDefault(), llvm::orc::LLJITBuilderSetters< JITType, SetterImpl, State >::setNumCompileThreads(), llvm::orc::LLJITBuilderSetters< JITType, SetterImpl, State >::setObjectLinkingLayerCreator(), llvm::orc::LLJITBuilderSetters< JITType, SetterImpl, State >::setPlatformSetUp(), llvm::orc::LLJITBuilderSetters< JITType, SetterImpl, State >::setPrePlatformSetup(), and llvm::orc::LLJITBuilderSetters< JITType, SetterImpl, State >::setProcessSymbolsJITDylibSetup().
|
inline |
Set a CompileFunctionCreator.
If this method is not called, a default creation function wil be used that will construct a basic IR compile function that is compatible with the selected number of threads (SimpleCompiler for '0' compile threads, ConcurrentIRCompiler otherwise).
Definition at line 416 of file LLJIT.h.
References llvm::orc::LLJITBuilderSetters< JITType, SetterImpl, State >::impl().
|
inline |
Set a DataLayout for this instance.
If no data layout is specified then the target's default data layout will be used.
Definition at line 373 of file LLJIT.h.
References DL, and llvm::orc::LLJITBuilderSetters< JITType, SetterImpl, State >::impl().
|
inline |
Enable / disable debugger support (off by default).
Definition at line 459 of file LLJIT.h.
References llvm::orc::LLJITBuilderSetters< JITType, SetterImpl, State >::impl().
|
inline |
Set an ExecutionSession for this instance.
Definition at line 347 of file LLJIT.h.
References assert(), and llvm::orc::LLJITBuilderSetters< JITType, SetterImpl, State >::impl().
|
inline |
Set an ExecutorProcessControl object.
If the platform uses ObjectLinkingLayer by default and no ObjectLinkingLayerCreator has been set then the ExecutorProcessControl object will be used to supply the memory manager for the ObjectLinkingLayer.
Definition at line 470 of file LLJIT.h.
References llvm::orc::LLJITBuilderSetters< JITType, SetterImpl, State >::impl().
|
inline |
Set a ExecutorProcessControl for this instance.
This should not be called if ExecutionSession has already been set.
Definition at line 337 of file LLJIT.h.
References assert(), and llvm::orc::LLJITBuilderSetters< JITType, SetterImpl, State >::impl().
|
inline |
Set the JITTargetMachineBuilder for this instance.
If this method is not called, JITTargetMachineBuilder::detectHost will be used to construct a default target machine builder for the host platform.
Definition at line 360 of file LLJIT.h.
References llvm::orc::LLJITBuilderSetters< JITType, SetterImpl, State >::impl().
|
inline |
The LinkProcessSymbolsDyDefault flag determines whether the "Process" JITDylib will be added to the default link order at LLJIT construction time.
If true, the Process JITDylib will be added as the last item in the default link order. If false (or if the Process JITDylib is disabled via setProcessSymbolsJITDylibSetup) then the Process JITDylib will not appear in the default link order.
Definition at line 384 of file LLJIT.h.
References llvm::orc::LLJITBuilderSetters< JITType, SetterImpl, State >::impl().
|
inline |
Set the number of compile threads to use.
If set to zero, compilation will be performed on the execution thread when JITing in-process. If set to any other number N, a thread pool of N threads will be created for compilation.
If this method is not called, behavior will be as if it were called with a zero argument.
Definition at line 453 of file LLJIT.h.
References llvm::orc::LLJITBuilderSetters< JITType, SetterImpl, State >::impl().
|
inline |
Set an ObjectLinkingLayer creation function.
If this method is not called, a default creation function will be used that will construct an RTDyldObjectLinkingLayer.
Definition at line 404 of file LLJIT.h.
References llvm::orc::LLJITBuilderSetters< JITType, SetterImpl, State >::impl().
|
inline |
Set up an PlatformSetupFunction.
If this method is not called then setUpGenericLLVMIRPlatform will be used to configure the JIT's platform support.
Definition at line 440 of file LLJIT.h.
References llvm::orc::LLJITBuilderSetters< JITType, SetterImpl, State >::impl().
|
inline |
Set a setup function to be run just before the PlatformSetupFunction is run.
This can be used to customize the LLJIT instance before the platform is set up. E.g. By installing a debugger support plugin before the platform is set up (when the ORC runtime is loaded) we enable debugging of the runtime itself.
Definition at line 430 of file LLJIT.h.
References llvm::orc::LLJITBuilderSetters< JITType, SetterImpl, State >::impl().
|
inline |
Set a setup function for the process symbols dylib.
If not provided, but LinkProcessSymbolsJITDylibByDefault is true, then the process-symbols JITDylib will be configured with a DynamicLibrarySearchGenerator with a default symbol filter.
Definition at line 393 of file LLJIT.h.
References llvm::orc::LLJITBuilderSetters< JITType, SetterImpl, State >::impl().