133 const Value* thisPtr2);
const std::string vtInitMDName
const uint32_t moduleFlagValue
Value we expect a ctir-annotated module to have.
const std::string derefMDName
const std::string vtMDName
std::string getFunNameOfVCallSite(const CallBase *cs)
std::string getBeforeBrackets(const std::string &name)
const Argument * getConstructorThisPtr(const Function *fun)
std::string extractClsNameFromDynCast(const CallBase *callBase)
extract class name from cpp dyncast function
s32_t getVCallIdx(const CallBase *cs)
const Value * getVCallVtblPtr(const CallBase *cs)
bool isTemplateFunc(const Function *foo)
whether foo is a cpp template function
bool classTyHasVTable(const StructType *ty)
bool isSameThisPtrInConstructor(const Argument *thisPtr1, const Value *thisPtr2)
Set< std::string > getClsNamesInBrackets(const std::string &name)
const Value * getVCallThisPtr(const CallBase *cs)
bool matchesLabel(const std::string &foo, const std::string &label)
whether foo matches the mangler label
std::string getClassNameFromType(const StructType *ty)
struct DemangledName demangle(const std::string &name)
Set< std::string > getClassNameOfThisPtr(const CallBase *cs)
bool isCPPThunkFunction(const Function *F)
bool VCallInCtorOrDtor(const CallBase *cs)
bool isClsNameSource(const Value *val)
Set< std::string > extractClsNamesFromTemplate(const std::string &oname)
extract class names from template functions
bool isVirtualCallSite(const CallBase *cs)
const Type * cppClsNameToType(const std::string &className)
const Function * getThunkTarget(const Function *F)
const ConstantStruct * getVtblStruct(const GlobalValue *vtbl)
bool isConstructor(const Function *F)
std::string getClassNameFromVtblObj(const std::string &vtblName)
Set< std::string > extractClsNamesFromFunc(const Function *foo)
extract class name from the c++ function name, e.g., constructor/destructors
bool isValVtbl(const Value *val)
bool isDestructor(const Function *F)
bool isDynCast(const Function *foo)
whether foo is a cpp dyncast function
llvm::ConstantStruct ConstantStruct
llvm::Value Value
LLVM Basic classes.
llvm::IRBuilder IRBuilder
std::unordered_set< Key, Hash, KeyEqual, Allocator > Set