LLVM 22.0.0git
IndirectionUtils.h File Reference
#include "llvm/ADT/StringMap.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ExecutionEngine/JITSymbol.h"
#include "llvm/ExecutionEngine/Orc/Core.h"
#include "llvm/ExecutionEngine/Orc/OrcABISupport.h"
#include "llvm/ExecutionEngine/Orc/RedirectionManager.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/Error.h"
#include "llvm/Support/Memory.h"
#include "llvm/Support/Process.h"
#include "llvm/Transforms/Utils/ValueMapper.h"
#include <algorithm>
#include <cassert>
#include <cstdint>
#include <functional>
#include <future>
#include <map>
#include <memory>
#include <system_error>
#include <utility>
#include <vector>

Go to the source code of this file.

Classes

class  llvm::orc::TrampolinePool
 Base class for pools of compiler re-entry trampolines. More...
class  llvm::orc::LocalTrampolinePool< ORCABI >
 A trampoline pool for trampolines within the current process. More...
class  llvm::orc::JITCompileCallbackManager
 Target-independent base class for compile callback management. More...
class  llvm::orc::LocalJITCompileCallbackManager< ORCABI >
 Manage compile callbacks for in-process JITs. More...
class  llvm::orc::IndirectStubsManager
 Base class for managing collections of named indirect stubs. More...
class  llvm::orc::LocalIndirectStubsInfo< ORCABI >
class  llvm::orc::LocalIndirectStubsManager< TargetT >
 IndirectStubsManager implementation for the host architecture, e.g. More...
class  llvm::orc::SymbolLinkagePromoter
 Promotes private symbols to global hidden, and renames to prevent clashes with other promoted symbols. More...

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
namespace  llvm::orc

Functions

LLVM_ABI Expected< std::unique_ptr< JITCompileCallbackManager > > llvm::orc::createLocalCompileCallbackManager (const Triple &T, ExecutionSession &ES, ExecutorAddr ErrorHandlerAddress)
 Create a local compile callback manager.
LLVM_ABI std::function< std::unique_ptr< IndirectStubsManager >()> llvm::orc::createLocalIndirectStubsManagerBuilder (const Triple &T)
 Create a local indirect stubs manager builder.
LLVM_ABI Constantllvm::orc::createIRTypedAddress (FunctionType &FT, ExecutorAddr Addr)
 Build a function pointer of FunctionType with the given constant address.
LLVM_ABI GlobalVariablellvm::orc::createImplPointer (PointerType &PT, Module &M, const Twine &Name, Constant *Initializer)
 Create a function pointer with the given type, name, and initializer in the given Module.
LLVM_ABI void llvm::orc::makeStub (Function &F, Value &ImplPointer)
 Turn a function declaration into a stub function that makes an indirect call using the given function pointer.
LLVM_ABI Functionllvm::orc::cloneFunctionDecl (Module &Dst, const Function &F, ValueToValueMapTy *VMap=nullptr)
 Clone a function declaration into a new module.
LLVM_ABI GlobalVariablellvm::orc::cloneGlobalVariableDecl (Module &Dst, const GlobalVariable &GV, ValueToValueMapTy *VMap=nullptr)
 Clone a global variable declaration into a new module.
LLVM_ABI GlobalAliasllvm::orc::cloneGlobalAliasDecl (Module &Dst, const GlobalAlias &OrigA, ValueToValueMapTy &VMap)
 Clone a global alias declaration into a new module.
LLVM_ABI Error llvm::orc::addFunctionPointerRelocationsToCurrentSymbol (jitlink::Symbol &Sym, jitlink::LinkGraph &G, MCDisassembler &Disassembler, MCInstrAnalysis &MIA)
 Introduce relocations to Sym in its own definition if there are any pointers formed via PC-relative address that do not already have a relocation.