reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/Transforms/Instrumentation/DataFlowSanitizer.cpp
  436     return DFSF.F->getParent()->getDataLayout();
 1177   Value *CombinedShadow = DFSF.combineOperandShadows(&I);
 1178   DFSF.setShadow(&I, CombinedShadow);
 1303     DFSF.setShadow(&LI, DFSF.DFS.ZeroShadow);
 1303     DFSF.setShadow(&LI, DFSF.DFS.ZeroShadow);
 1316   Value *Shadow = DFSF.loadShadow(LI.getPointerOperand(), Size, Align, &LI);
 1318     Value *PtrShadow = DFSF.getShadow(LI.getPointerOperand());
 1319     Shadow = DFSF.combineShadows(Shadow, PtrShadow, &LI);
 1321   if (Shadow != DFSF.DFS.ZeroShadow)
 1322     DFSF.NonZeroChecks.push_back(Shadow);
 1324   DFSF.setShadow(&LI, Shadow);
 1394   Value* Shadow = DFSF.getShadow(SI.getValueOperand());
 1396     Value *PtrShadow = DFSF.getShadow(SI.getPointerOperand());
 1397     Shadow = DFSF.combineShadows(Shadow, PtrShadow, &SI);
 1399   DFSF.storeShadow(SI.getPointerOperand(), Size, Align, Shadow, &SI);
 1454     DFSF.AllocaShadowMap[&I] = IRB.CreateAlloca(DFSF.DFS.ShadowTy);
 1454     DFSF.AllocaShadowMap[&I] = IRB.CreateAlloca(DFSF.DFS.ShadowTy);
 1456   DFSF.setShadow(&I, DFSF.DFS.ZeroShadow);
 1456   DFSF.setShadow(&I, DFSF.DFS.ZeroShadow);
 1460   Value *CondShadow = DFSF.getShadow(I.getCondition());
 1461   Value *TrueShadow = DFSF.getShadow(I.getTrueValue());
 1462   Value *FalseShadow = DFSF.getShadow(I.getFalseValue());
 1465     DFSF.setShadow(
 1467         DFSF.combineShadows(
 1468             CondShadow, DFSF.combineShadows(TrueShadow, FalseShadow, &I), &I));
 1477     DFSF.setShadow(&I, DFSF.combineShadows(CondShadow, ShadowSel, &I));
 1477     DFSF.setShadow(&I, DFSF.combineShadows(CondShadow, ShadowSel, &I));
 1483   Value *ValShadow = DFSF.getShadow(I.getValue());
 1484   IRB.CreateCall(DFSF.DFS.DFSanSetLabelFn,
 1486                                                                 *DFSF.DFS.Ctx)),
 1487                   IRB.CreateZExtOrTrunc(I.getLength(), DFSF.DFS.IntptrTy)});
 1492   Value *DestShadow = DFSF.DFS.getShadowAddress(I.getDest(), &I);
 1493   Value *SrcShadow = DFSF.DFS.getShadowAddress(I.getSource(), &I);
 1496       ConstantInt::get(I.getLength()->getType(), DFSF.DFS.ShadowWidth / 8));
 1497   Type *Int8Ptr = Type::getInt8PtrTy(*DFSF.DFS.Ctx);
 1504     MTI->setDestAlignment(I.getDestAlignment() * (DFSF.DFS.ShadowWidth / 8));
 1505     MTI->setSourceAlignment(I.getSourceAlignment() * (DFSF.DFS.ShadowWidth / 8));
 1507     MTI->setDestAlignment(DFSF.DFS.ShadowWidth / 8);
 1508     MTI->setSourceAlignment(DFSF.DFS.ShadowWidth / 8);
 1513   if (!DFSF.IsNativeABI && RI.getReturnValue()) {
 1514     switch (DFSF.IA) {
 1516       Value *S = DFSF.getShadow(RI.getReturnValue());
 1518       IRB.CreateStore(S, DFSF.getRetvalTLS());
 1523       Type *RT = DFSF.F->getFunctionType()->getReturnType();
 1527           IRB.CreateInsertValue(InsVal, DFSF.getShadow(RI.getReturnValue()), 1);
 1544   if (F == DFSF.DFS.DFSanVarargWrapperFn.getCallee()->stripPointerCasts())
 1550       DFSF.DFS.UnwrappedFnMap.find(CS.getCalledValue());
 1551   if (i != DFSF.DFS.UnwrappedFnMap.end()) {
 1553     switch (DFSF.DFS.getWrapperKind(F)) {
 1556       IRB.CreateCall(DFSF.DFS.DFSanUnimplementedFn,
 1558       DFSF.setShadow(CS.getInstruction(), DFSF.DFS.ZeroShadow);
 1558       DFSF.setShadow(CS.getInstruction(), DFSF.DFS.ZeroShadow);
 1562       DFSF.setShadow(CS.getInstruction(), DFSF.DFS.ZeroShadow);
 1562       DFSF.setShadow(CS.getInstruction(), DFSF.DFS.ZeroShadow);
 1574         TransformedFunction CustomFn = DFSF.DFS.getCustomFunctionType(FT);
 1577         FunctionCallee CustomF = DFSF.DFS.Mod->getOrInsertFunction(
 1585                                        DFSF.DFS.ReadOnlyNoneAttrs);
 1602             Constant *T = DFSF.DFS.getOrBuildTrampolineFunction(ParamFT, TName);
 1605                 IRB.CreateBitCast(*i, Type::getInt8PtrTy(*DFSF.DFS.Ctx)));
 1614           Args.push_back(DFSF.getShadow(*i));
 1617           auto *LabelVATy = ArrayType::get(DFSF.DFS.ShadowTy,
 1621               "labelva", &DFSF.F->getEntryBlock().front());
 1625             IRB.CreateStore(DFSF.getShadow(*i), LabelVAPtr);
 1632           if (!DFSF.LabelReturnAlloca) {
 1633             DFSF.LabelReturnAlloca =
 1634               new AllocaInst(DFSF.DFS.ShadowTy,
 1636                              "labelreturn", &DFSF.F->getEntryBlock().front());
 1638           Args.push_back(DFSF.LabelReturnAlloca);
 1654           if (CustomCI->getArgOperand(ArgNo)->getType() == DFSF.DFS.ShadowTy)
 1660               IRB.CreateLoad(DFSF.DFS.ShadowTy, DFSF.LabelReturnAlloca);
 1660               IRB.CreateLoad(DFSF.DFS.ShadowTy, DFSF.LabelReturnAlloca);
 1661           DFSF.setShadow(CustomCI, LabelLoad);
 1674   if (DFSF.DFS.getInstrumentedABI() == DataFlowSanitizer::IA_TLS) {
 1676       IRB.CreateStore(DFSF.getShadow(CS.getArgument(i)),
 1677                       DFSF.getArgTLS(i, CS.getInstruction()));
 1688             SplitEdge(II->getParent(), II->getNormalDest(), &DFSF.DT);
 1696     if (DFSF.DFS.getInstrumentedABI() == DataFlowSanitizer::IA_TLS) {
 1698       LoadInst *LI = NextIRB.CreateLoad(DFSF.DFS.ShadowTy, DFSF.getRetvalTLS());
 1698       LoadInst *LI = NextIRB.CreateLoad(DFSF.DFS.ShadowTy, DFSF.getRetvalTLS());
 1699       DFSF.SkipInsts.insert(LI);
 1700       DFSF.setShadow(CS.getInstruction(), LI);
 1701       DFSF.NonZeroChecks.push_back(LI);
 1707   if (DFSF.DFS.getInstrumentedABI() == DataFlowSanitizer::IA_Args) {
 1708     FunctionType *NewFT = DFSF.DFS.getArgsFunctionType(FT);
 1719       Args.push_back(DFSF.getShadow(*i));
 1723       ArrayType *VarArgArrayTy = ArrayType::get(DFSF.DFS.ShadowTy, VarArgSize);
 1726                        "", &DFSF.F->getEntryBlock().front());
 1730             DFSF.getShadow(*i),
 1745         *DFSF.DFS.Ctx, AttributeList::ReturnIndex,
 1751       DFSF.SkipInsts.insert(ExVal);
 1754       DFSF.SkipInsts.insert(ExShadow);
 1755       DFSF.setShadow(ExVal, ExShadow);
 1756       DFSF.NonZeroChecks.push_back(ExShadow);
 1767       PHINode::Create(DFSF.DFS.ShadowTy, PN.getNumIncomingValues(), "", &PN);
 1770   Value *UndefShadow = UndefValue::get(DFSF.DFS.ShadowTy);
 1776   DFSF.PHIFixups.push_back(std::make_pair(&PN, ShadowPN));
 1777   DFSF.setShadow(&PN, ShadowPN);