LLVM  17.0.0git
Classes | Namespaces | Functions
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/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>
Include dependency graph for IndirectionUtils.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.


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...


 This is an optimization pass for GlobalISel generic memory operations.


Expected< std::unique_ptr< JITCompileCallbackManager > > llvm::orc::createLocalCompileCallbackManager (const Triple &T, ExecutionSession &ES, JITTargetAddress ErrorHandlerAddress)
 Create a local compile callback manager. More...
std::function< std::unique_ptr< IndirectStubsManager >)> llvm::orc::createLocalIndirectStubsManagerBuilder (const Triple &T)
 Create a local indriect stubs manager builder. More...
Constantllvm::orc::createIRTypedAddress (FunctionType &FT, JITTargetAddress Addr)
 Build a function pointer of FunctionType with the given constant address. More...
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. More...
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. More...
Functionllvm::orc::cloneFunctionDecl (Module &Dst, const Function &F, ValueToValueMapTy *VMap=nullptr)
 Clone a function declaration into a new module. More...
void llvm::orc::moveFunctionBody (Function &OrigF, ValueToValueMapTy &VMap, ValueMaterializer *Materializer=nullptr, Function *NewF=nullptr)
 Move the body of function 'F' to a cloned function declaration in a different module (See related cloneFunctionDecl). More...
GlobalVariablellvm::orc::cloneGlobalVariableDecl (Module &Dst, const GlobalVariable &GV, ValueToValueMapTy *VMap=nullptr)
 Clone a global variable declaration into a new module. More...
void llvm::orc::moveGlobalVariableInitializer (GlobalVariable &OrigGV, ValueToValueMapTy &VMap, ValueMaterializer *Materializer=nullptr, GlobalVariable *NewGV=nullptr)
 Move global variable GV from its parent module to cloned global declaration in a different module. More...
GlobalAliasllvm::orc::cloneGlobalAliasDecl (Module &Dst, const GlobalAlias &OrigA, ValueToValueMapTy &VMap)
 Clone a global alias declaration into a new module. More...
void llvm::orc::cloneModuleFlagsMetadata (Module &Dst, const Module &Src, ValueToValueMapTy &VMap)
 Clone module flags metadata into the destination module. More...
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. More...