/*! * Add indirect def an memory object in the function */ bool MRGenerator::addModSideEffectOfCallSite(llvm::CallSite cs, const NodeBS& mods) { if(!mods.empty()) { NodeBS modset = mods; modset &= getCallSitePts(cs); getGlobalsAndHeapFromPts(modset,mods); addModSideEffectOfFunction(cs.getCaller(),modset); return csToModsMap[cs] |= modset; } return false; }
/*! * Add indirect uses an memory object in the function */ bool MRGenerator::addRefSideEffectOfCallSite(llvm::CallSite cs, const NodeBS& refs) { if(!refs.empty()) { NodeBS refset = refs; refset &= getCallSitePts(cs); getGlobalsAndHeapFromPts(refset,refs); addRefSideEffectOfFunction(cs.getCaller(),refset); return csToRefsMap[cs] |= refset; } return false; }