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

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


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


Expected< std::unique_ptr< JITCompileCallbackManager > > llvm::orc::createLocalCompileCallbackManager (const Triple &T, ExecutionSession &ES, ExecutorAddr ErrorHandlerAddress)
 Create a local compile callback manager.
std::function< std::unique_ptr< IndirectStubsManager >()> llvm::orc::createLocalIndirectStubsManagerBuilder (const Triple &T)
 Create a local indirect stubs manager builder.
Constantllvm::orc::createIRTypedAddress (FunctionType &FT, ExecutorAddr Addr)
 Build a function pointer of FunctionType with the given constant address.
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.
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.
Functionllvm::orc::cloneFunctionDecl (Module &Dst, const Function &F, ValueToValueMapTy *VMap=nullptr)
 Clone a function declaration into a new module.
GlobalVariablellvm::orc::cloneGlobalVariableDecl (Module &Dst, const GlobalVariable &GV, ValueToValueMapTy *VMap=nullptr)
 Clone a global variable declaration into a new module.
GlobalAliasllvm::orc::cloneGlobalAliasDecl (Module &Dst, const GlobalAlias &OrigA, ValueToValueMapTy &VMap)
 Clone a global alias declaration into a new module.
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.