Lines Matching defs:Origin

280 // Origin = (OriginBase + Offset) & ~3ULL
635 /// Origin = ArgOriginTLS[ArgNo].
642 void setOrigin(Instruction *I, Value *Origin);
679 Value *Origin, BasicBlock::iterator Pos);
749 Value *updateOriginIfTainted(Value *Shadow, Value *Origin, IRBuilder<> &IRB);
751 /// Creates an Intptr = Origin | Origin << 32 if Intptr's size is 64. Returns
752 /// Origin otherwise.
753 Value *originToIntptr(IRBuilder<> &IRB, Value *Origin);
755 /// Stores Origin into the address range [StoreOriginAddr, StoreOriginAddr +
757 void paintOrigin(IRBuilder<> &IRB, Value *Origin, Value *StoreOriginAddr,
760 /// Stores Origin in terms of its Shadow value.
766 Value *Shadow, Value *Origin, Value *StoreOriginAddr,
1711 if (Instruction *Origin =
1714 Instruction *OriginNext = Origin->getNextNode();
1815 Value *&Origin = ValOriginMap[V];
1816 if (!Origin) {
1824 Origin = IRB.CreateLoad(DFS.OriginTy, ArgOriginPtr);
1827 Origin = DFS.ZeroOrigin;
1830 Origin = DFS.ZeroOrigin;
1833 return Origin;
1836 void DFSanFunction::setOrigin(Instruction *I, Value *Origin) {
1840 assert(Origin->getType() == DFS.OriginTy);
1841 ValOriginMap[I] = Origin;
2063 Value *Origin = nullptr;
2071 if (!Origin) {
2072 Origin = OpOrigin;
2079 Origin = IRB.CreateSelect(Cond, OpOrigin, Origin);
2081 return Origin ? Origin : DFS.ZeroOrigin;
2185 auto AppendWideShadowAndOrigin = [&](Value *WideShadow, Value *Origin) {
2200 Origins.push_back(Origin);
2203 Origins.push_back(Origin);
2299 Value *Origin = nullptr;
2302 Origin = IRB.CreateAlignedLoad(DFS.OriginTy, OriginAddr, OriginAlign);
2311 return {LI, Origin};
2321 return {combineShadows(Load, Load1, Pos), Origin};
2328 OriginAlign, Origin, Pos);
2334 return {FallbackCall, Origin};
2340 Value *PrimitiveShadow, *Origin;
2341 std::tie(PrimitiveShadow, Origin) =
2348 Origin = updateOriginIfTainted(PrimitiveShadow, Origin, IRB);
2351 return {PrimitiveShadow, Origin};
2418 Value *PrimitiveShadow, *Origin;
2419 std::tie(PrimitiveShadow, Origin) =
2424 Origins.push_back(Origin);
2459 Value *DFSanFunction::updateOriginIfTainted(Value *Shadow, Value *Origin,
2462 return IRB.CreateCall(DFS.DFSanChainOriginIfTaintedFn, {Shadow, Origin});
2471 Value *DFSanFunction::originToIntptr(IRBuilder<> &IRB, Value *Origin) {
2476 return Origin;
2478 Origin = IRB.CreateIntCast(Origin, DFS.IntptrTy, /* isSigned */ false);
2479 return IRB.CreateOr(Origin, IRB.CreateShl(Origin, OriginSize * 8));
2482 void DFSanFunction::paintOrigin(IRBuilder<> &IRB, Value *Origin,
2495 Value *IntptrOrigin = originToIntptr(IRB, Origin);
2512 IRB.CreateAlignedStore(Origin, GEP, CurrentAlignment);
2528 uint64_t Size, Value *Shadow, Value *Origin,
2537 paintOrigin(IRB, updateOrigin(Origin, IRB), StoreOriginAddr, Size,
2545 {CollapsedShadow, Addr, ConstantInt::get(DFS.IntptrTy, Size), Origin});
2552 paintOrigin(IRBNew, updateOrigin(Origin, IRBNew), StoreOriginAddr, Size,
2574 Value *Origin,
2576 const bool ShouldTrackOrigins = DFS.shouldTrackOrigins() && Origin;
2588 assert(OI != AllocaOriginMap.end() && Origin);
2589 IRB.CreateStore(Origin, OI->second);
2639 storeOrigin(Pos, Addr, Size, PrimitiveShadow, Origin, OriginAddr,
2700 Value *Origin = nullptr;
2702 Origin = DFSF.combineOrigins(Shadows, Origins, SI.getIterator());
2704 PrimitiveShadow, Origin, SI.getIterator());