LLVM  14.0.0git
Namespaces | Functions
IndirectionUtils.cpp File Reference
#include "llvm/ExecutionEngine/Orc/IndirectionUtils.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/Triple.h"
#include "llvm/ExecutionEngine/Orc/OrcABISupport.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/Support/Format.h"
#include "llvm/Transforms/Utils/Cloning.h"
#include <sstream>
Include dependency graph for IndirectionUtils.cpp:

Go to the source code of this file.


 This file implements support for optimizing divisions by a constant.


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