Lines Matching refs:DFSF

430   DFSanFunction &DFSF;  member in __anonaa9af5010111::DFSanVisitor
432 DFSanVisitor(DFSanFunction &DFSF) : DFSF(DFSF) {} in DFSanVisitor() argument
435 return DFSF.F->getParent()->getDataLayout(); in getDataLayout()
697 DFSanFunction DFSF(*this, F, /*IsNativeABI=*/true); in getOrBuildTrampolineFunction() local
700 DFSF.ValShadowMap[&*ValAI] = &*ShadowAI; in getOrBuildTrampolineFunction()
701 DFSanVisitor(DFSF).visitCallInst(*CI); in getOrBuildTrampolineFunction()
703 new StoreInst(DFSF.getShadow(RI->getReturnValue()), in getOrBuildTrampolineFunction()
913 DFSanFunction DFSF(*this, i, FnsWithNativeABI.count(i)); in runOnModule() local
929 if (!DFSF.SkipInsts.count(Inst)) in runOnModule()
930 DFSanVisitor(DFSF).visit(Inst); in runOnModule()
942 i = DFSF.PHIFixups.begin(), in runOnModule()
943 e = DFSF.PHIFixups.end(); in runOnModule()
948 val, DFSF.getShadow(i->first->getIncomingValue(val))); in runOnModule()
957 for (Value *V : DFSF.NonZeroChecks) { in runOnModule()
962 Pos = &DFSF.F->getEntryBlock().front(); in runOnModule()
966 Value *Ne = IRB.CreateICmpNE(V, DFSF.DFS.ZeroShadow); in runOnModule()
970 ThenIRB.CreateCall(DFSF.DFS.DFSanNonzeroLabelFn, {}); in runOnModule()
1156 Value *CombinedShadow = DFSF.combineOperandShadows(&I); in visitOperandShadowInst()
1157 DFSF.setShadow(&I, CombinedShadow); in visitOperandShadowInst()
1279 DFSF.setShadow(&LI, DFSF.DFS.ZeroShadow); in visitLoadInst()
1292 Value *Shadow = DFSF.loadShadow(LI.getPointerOperand(), Size, Align, &LI); in visitLoadInst()
1294 Value *PtrShadow = DFSF.getShadow(LI.getPointerOperand()); in visitLoadInst()
1295 Shadow = DFSF.combineShadows(Shadow, PtrShadow, &LI); in visitLoadInst()
1297 if (Shadow != DFSF.DFS.ZeroShadow) in visitLoadInst()
1298 DFSF.NonZeroChecks.push_back(Shadow); in visitLoadInst()
1300 DFSF.setShadow(&LI, Shadow); in visitLoadInst()
1370 Value* Shadow = DFSF.getShadow(SI.getValueOperand()); in visitStoreInst()
1372 Value *PtrShadow = DFSF.getShadow(SI.getPointerOperand()); in visitStoreInst()
1373 Shadow = DFSF.combineShadows(Shadow, PtrShadow, &SI); in visitStoreInst()
1375 DFSF.storeShadow(SI.getPointerOperand(), Size, Align, Shadow, &SI); in visitStoreInst()
1426 DFSF.AllocaShadowMap[&I] = IRB.CreateAlloca(DFSF.DFS.ShadowTy); in visitAllocaInst()
1428 DFSF.setShadow(&I, DFSF.DFS.ZeroShadow); in visitAllocaInst()
1432 Value *CondShadow = DFSF.getShadow(I.getCondition()); in visitSelectInst()
1433 Value *TrueShadow = DFSF.getShadow(I.getTrueValue()); in visitSelectInst()
1434 Value *FalseShadow = DFSF.getShadow(I.getFalseValue()); in visitSelectInst()
1437 DFSF.setShadow( in visitSelectInst()
1439 DFSF.combineShadows( in visitSelectInst()
1440 CondShadow, DFSF.combineShadows(TrueShadow, FalseShadow, &I), &I)); in visitSelectInst()
1449 DFSF.setShadow(&I, DFSF.combineShadows(CondShadow, ShadowSel, &I)); in visitSelectInst()
1455 Value *ValShadow = DFSF.getShadow(I.getValue()); in visitMemSetInst()
1456 IRB.CreateCall(DFSF.DFS.DFSanSetLabelFn, in visitMemSetInst()
1458 *DFSF.DFS.Ctx)), in visitMemSetInst()
1459 IRB.CreateZExtOrTrunc(I.getLength(), DFSF.DFS.IntptrTy)}); in visitMemSetInst()
1464 Value *DestShadow = DFSF.DFS.getShadowAddress(I.getDest(), &I); in visitMemTransferInst()
1465 Value *SrcShadow = DFSF.DFS.getShadowAddress(I.getSource(), &I); in visitMemTransferInst()
1468 ConstantInt::get(I.getLength()->getType(), DFSF.DFS.ShadowWidth / 8)); in visitMemTransferInst()
1469 Type *Int8Ptr = Type::getInt8PtrTy(*DFSF.DFS.Ctx); in visitMemTransferInst()
1476 MTI->setDestAlignment(I.getDestAlignment() * (DFSF.DFS.ShadowWidth / 8)); in visitMemTransferInst()
1477 MTI->setSourceAlignment(I.getSourceAlignment() * (DFSF.DFS.ShadowWidth / 8)); in visitMemTransferInst()
1479 MTI->setDestAlignment(DFSF.DFS.ShadowWidth / 8); in visitMemTransferInst()
1480 MTI->setSourceAlignment(DFSF.DFS.ShadowWidth / 8); in visitMemTransferInst()
1485 if (!DFSF.IsNativeABI && RI.getReturnValue()) { in visitReturnInst()
1486 switch (DFSF.IA) { in visitReturnInst()
1488 Value *S = DFSF.getShadow(RI.getReturnValue()); in visitReturnInst()
1490 IRB.CreateStore(S, DFSF.getRetvalTLS()); in visitReturnInst()
1495 Type *RT = DFSF.F->getFunctionType()->getReturnType(); in visitReturnInst()
1499 IRB.CreateInsertValue(InsVal, DFSF.getShadow(RI.getReturnValue()), 1); in visitReturnInst()
1516 if (F == DFSF.DFS.DFSanVarargWrapperFn) in visitCallSite()
1522 DFSF.DFS.UnwrappedFnMap.find(CS.getCalledValue()); in visitCallSite()
1523 if (i != DFSF.DFS.UnwrappedFnMap.end()) { in visitCallSite()
1525 switch (DFSF.DFS.getWrapperKind(F)) { in visitCallSite()
1528 IRB.CreateCall(DFSF.DFS.DFSanUnimplementedFn, in visitCallSite()
1530 DFSF.setShadow(CS.getInstruction(), DFSF.DFS.ZeroShadow); in visitCallSite()
1534 DFSF.setShadow(CS.getInstruction(), DFSF.DFS.ZeroShadow); in visitCallSite()
1546 TransformedFunction CustomFn = DFSF.DFS.getCustomFunctionType(FT); in visitCallSite()
1549 Constant *CustomF = DFSF.DFS.Mod->getOrInsertFunction( in visitCallSite()
1557 DFSF.DFS.ReadOnlyNoneAttrs); in visitCallSite()
1574 Constant *T = DFSF.DFS.getOrBuildTrampolineFunction(ParamFT, TName); in visitCallSite()
1577 IRB.CreateBitCast(*i, Type::getInt8PtrTy(*DFSF.DFS.Ctx))); in visitCallSite()
1586 Args.push_back(DFSF.getShadow(*i)); in visitCallSite()
1589 auto *LabelVATy = ArrayType::get(DFSF.DFS.ShadowTy, in visitCallSite()
1593 "labelva", &DFSF.F->getEntryBlock().front()); in visitCallSite()
1597 IRB.CreateStore(DFSF.getShadow(*i), LabelVAPtr); in visitCallSite()
1604 if (!DFSF.LabelReturnAlloca) { in visitCallSite()
1605 DFSF.LabelReturnAlloca = in visitCallSite()
1606 new AllocaInst(DFSF.DFS.ShadowTy, in visitCallSite()
1608 "labelreturn", &DFSF.F->getEntryBlock().front()); in visitCallSite()
1610 Args.push_back(DFSF.LabelReturnAlloca); in visitCallSite()
1626 if (CustomCI->getArgOperand(ArgNo)->getType() == DFSF.DFS.ShadowTy) in visitCallSite()
1631 LoadInst *LabelLoad = IRB.CreateLoad(DFSF.LabelReturnAlloca); in visitCallSite()
1632 DFSF.setShadow(CustomCI, LabelLoad); in visitCallSite()
1645 if (DFSF.DFS.getInstrumentedABI() == DataFlowSanitizer::IA_TLS) { in visitCallSite()
1647 IRB.CreateStore(DFSF.getShadow(CS.getArgument(i)), in visitCallSite()
1648 DFSF.getArgTLS(i, CS.getInstruction())); in visitCallSite()
1659 SplitEdge(II->getParent(), II->getNormalDest(), &DFSF.DT); in visitCallSite()
1667 if (DFSF.DFS.getInstrumentedABI() == DataFlowSanitizer::IA_TLS) { in visitCallSite()
1669 LoadInst *LI = NextIRB.CreateLoad(DFSF.getRetvalTLS()); in visitCallSite()
1670 DFSF.SkipInsts.insert(LI); in visitCallSite()
1671 DFSF.setShadow(CS.getInstruction(), LI); in visitCallSite()
1672 DFSF.NonZeroChecks.push_back(LI); in visitCallSite()
1678 if (DFSF.DFS.getInstrumentedABI() == DataFlowSanitizer::IA_Args) { in visitCallSite()
1679 FunctionType *NewFT = DFSF.DFS.getArgsFunctionType(FT); in visitCallSite()
1690 Args.push_back(DFSF.getShadow(*i)); in visitCallSite()
1694 ArrayType *VarArgArrayTy = ArrayType::get(DFSF.DFS.ShadowTy, VarArgSize); in visitCallSite()
1697 "", &DFSF.F->getEntryBlock().front()); in visitCallSite()
1701 DFSF.getShadow(*i), in visitCallSite()
1716 *DFSF.DFS.Ctx, AttributeList::ReturnIndex, in visitCallSite()
1722 DFSF.SkipInsts.insert(ExVal); in visitCallSite()
1725 DFSF.SkipInsts.insert(ExShadow); in visitCallSite()
1726 DFSF.setShadow(ExVal, ExShadow); in visitCallSite()
1727 DFSF.NonZeroChecks.push_back(ExShadow); in visitCallSite()
1738 PHINode::Create(DFSF.DFS.ShadowTy, PN.getNumIncomingValues(), "", &PN); in visitPHINode()
1741 Value *UndefShadow = UndefValue::get(DFSF.DFS.ShadowTy); in visitPHINode()
1747 DFSF.PHIFixups.push_back(std::make_pair(&PN, ShadowPN)); in visitPHINode()
1748 DFSF.setShadow(&PN, ShadowPN); in visitPHINode()