Proteus
Programmable JIT compilation and optimization for C/C++ using LLVM
Loading...
Searching...
No Matches
Classes | Public Member Functions | Public Attributes | List of all members
proteus::LinkingCloner Struct Reference

#include <Cloning.h>

Classes

struct  DefMaps
 
struct  FuncDeclInfo
 
struct  GlobDeclInfo
 

Public Member Functions

DefMaps buildDefMaps (ArrayRef< std::reference_wrapper< Module > > Mods)
 
void resolveGV (const DefMaps &Defs, GlobalValue *G, SmallVector< GlobalValue * > &WorkList, SmallPtrSetImpl< GlobalValue * > &Found)
 
void scanConstant (Constant *C, const DefMaps &Defs, SmallVector< GlobalValue * > &WorkList, SmallPtrSetImpl< GlobalValue * > &Found)
 
SmallPtrSet< GlobalValue *, 32 > findTransitiveClosure (Function *Entry, const DefMaps &Defs)
 
std::unique_ptr< Module > cloneClosure (Module &M, LLVMContext &Ctx, SmallPtrSetImpl< GlobalValue * > const &Reachable)
 

Public Attributes

DenseMap< GlobalValue *, SmallVector< GlobalValue * > > ResolvedMap
 
StringMap< FuncDeclInfoFuncDecls
 
StringMap< GlobDeclInfoGlobDecls
 

Member Function Documentation

◆ buildDefMaps()

DefMaps proteus::LinkingCloner::buildDefMaps ( ArrayRef< std::reference_wrapper< Module > >  Mods)
inline

◆ cloneClosure()

std::unique_ptr< Module > proteus::LinkingCloner::cloneClosure ( Module &  M,
LLVMContext &  Ctx,
SmallPtrSetImpl< GlobalValue * > const &  Reachable 
)
inline

◆ findTransitiveClosure()

SmallPtrSet< GlobalValue *, 32 > proteus::LinkingCloner::findTransitiveClosure ( Function *  Entry,
const DefMaps Defs 
)
inline

◆ resolveGV()

void proteus::LinkingCloner::resolveGV ( const DefMaps Defs,
GlobalValue *  G,
SmallVector< GlobalValue * > &  WorkList,
SmallPtrSetImpl< GlobalValue * > &  Found 
)
inline

◆ scanConstant()

void proteus::LinkingCloner::scanConstant ( Constant *  C,
const DefMaps Defs,
SmallVector< GlobalValue * > &  WorkList,
SmallPtrSetImpl< GlobalValue * > &  Found 
)
inline

Member Data Documentation

◆ FuncDecls

StringMap<FuncDeclInfo> proteus::LinkingCloner::FuncDecls

◆ GlobDecls

StringMap<GlobDeclInfo> proteus::LinkingCloner::GlobDecls

◆ ResolvedMap

DenseMap<GlobalValue *, SmallVector<GlobalValue *> > proteus::LinkingCloner::ResolvedMap

The documentation for this struct was generated from the following file: