Lines Matching defs:Shadow

279 // Shadow = ShadowBase + Offset
606 BasicBlock *Block; // The block where Shadow is defined.
607 Value *Shadow;
627 /// Shadow = ArgTLS+ArgOffset.
656 void setShadow(Instruction *I, Value *Shadow);
688 /// Collapses Shadow into a single primitive shadow value, unioning all
695 Value *collapseToPrimitiveShadow(Value *Shadow, BasicBlock::iterator Pos);
717 Value *collapseAggregateShadow(AggregateType *AT, Value *Shadow,
720 Value *collapseToPrimitiveShadow(Value *Shadow, IRBuilder<> &IRB);
747 /// Returns a chain at the current stack with previous origin V if Shadow is
749 Value *updateOriginIfTainted(Value *Shadow, Value *Origin, IRBuilder<> &IRB);
760 /// Stores Origin in terms of its Shadow value.
766 Value *Shadow, Value *Origin, Value *StoreOriginAddr,
949 Value *Shadow, SmallVector<unsigned, 4> &Indices, Type *SubShadowTy,
952 return IRB.CreateInsertValue(Shadow, PrimitiveShadow, Indices);
957 Shadow = expandFromPrimitiveShadowRecursive(
958 Shadow, Indices, AT->getElementType(), PrimitiveShadow, IRB);
961 return Shadow;
967 Shadow = expandFromPrimitiveShadowRecursive(
968 Shadow, Indices, ST->getElementType(Idx), PrimitiveShadow, IRB);
971 return Shadow;
993 Value *Shadow = UndefValue::get(ShadowTy);
994 Shadow = expandFromPrimitiveShadowRecursive(Shadow, Indices, ShadowTy,
998 CachedCollapsedShadows[Shadow] = PrimitiveShadow;
999 return Shadow;
1003 Value *DFSanFunction::collapseAggregateShadow(AggregateType *AT, Value *Shadow,
1008 Value *FirstItem = IRB.CreateExtractValue(Shadow, 0);
1012 Value *ShadowItem = IRB.CreateExtractValue(Shadow, Idx);
1019 Value *DFSanFunction::collapseToPrimitiveShadow(Value *Shadow,
1021 Type *ShadowTy = Shadow->getType();
1023 return Shadow;
1025 return collapseAggregateShadow<>(AT, Shadow, IRB);
1027 return collapseAggregateShadow<>(ST, Shadow, IRB);
1031 Value *DFSanFunction::collapseToPrimitiveShadow(Value *Shadow,
1033 Type *ShadowTy = Shadow->getType();
1035 return Shadow;
1038 Value *&CS = CachedCollapsedShadows[Shadow];
1043 Value *PrimitiveShadow = collapseToPrimitiveShadow(Shadow, IRB);
1877 Value *&Shadow = ValShadowMap[V];
1878 if (!Shadow) {
1882 Shadow = getShadowForTLSArgument(A);
1883 NonZeroChecks.push_back(Shadow);
1885 Shadow = DFS.getZeroShadow(V);
1888 return Shadow;
1891 void DFSanFunction::setShadow(Instruction *I, Value *Shadow) {
1893 ValShadowMap[I] = Shadow;
2002 return CCS.Shadow;
2010 CCS.Shadow = IRB.CreateOr(PV1, PV2);
2023 ShadowElements[CCS.Shadow] = std::move(UnionElems);
2025 return CCS.Shadow;
2035 Value *Shadow = getShadow(Inst->getOperand(0));
2037 Shadow = combineShadows(Shadow, getShadow(Inst->getOperand(I)),
2040 return expandFromPrimitiveShadow(Inst->getType(), Shadow,
2434 Value *Shadow =
2436 DFSF.setShadow(&LI, Shadow);
2454 Value *DFSanFunction::updateOriginIfTainted(Value *Shadow, Value *Origin,
2457 return IRB.CreateCall(DFS.DFSanChainOriginIfTaintedFn, {Shadow, Origin});
2523 uint64_t Size, Value *Shadow, Value *Origin,
2528 Value *CollapsedShadow = collapseToPrimitiveShadow(Shadow, Pos);
2603 "Shadow vector is too large!");
2676 Value *Shadow =
2680 Shadows.push_back(Shadow);
2691 PrimitiveShadow = DFSF.combineShadows(Shadow, PtrShadow, SI.getIterator());
2693 PrimitiveShadow = DFSF.collapseToPrimitiveShadow(Shadow, SI.getIterator());