LLVM  6.0.0svn
Classes | 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/CallSite.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/Transforms/Utils/Cloning.h"
#include <sstream>
Include dependency graph for IndirectionUtils.cpp:

Go to the source code of this file.


class  llvm::orc::GlobalRenamer


 Compute iterated dominance frontiers using a linear time algorithm.


std::unique_ptr< JITCompileCallbackManager > llvm::orc::createLocalCompileCallbackManager (const Triple &T, 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...
Constant * llvm::orc::createIRTypedAddress (FunctionType &FT, JITTargetAddress Addr)
 Build a function pointer of FunctionType with the given constant address. More...
GlobalVariable * llvm::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...
static void llvm::orc::raiseVisibilityOnValue (GlobalValue &V, GlobalRenamer &R)
void llvm::orc::makeAllSymbolsExternallyAccessible (Module &M)
 Raise linkage types and rename as necessary to ensure that all symbols are accessible for other modules. More...
Function * llvm::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...
GlobalVariable * llvm::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...
GlobalAlias * llvm::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...