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,
1709 if (Instruction *Origin =
1712 Instruction *OriginNext = Origin->getNextNode();
1812 Value *&Origin = ValOriginMap[V];
1813 if (!Origin) {
1821 Origin = IRB.CreateLoad(DFS.OriginTy, ArgOriginPtr);
1824 Origin = DFS.ZeroOrigin;
1827 Origin = DFS.ZeroOrigin;
1830 return Origin;
1833 void DFSanFunction::setOrigin(Instruction *I, Value *Origin) {
1837 assert(Origin->getType() == DFS.OriginTy);
1838 ValOriginMap[I] = Origin;
2058 Value *Origin = nullptr;
2066 if (!Origin) {
2067 Origin = OpOrigin;
2074 Origin = IRB.CreateSelect(Cond, OpOrigin, Origin);
2076 return Origin ? Origin : DFS.ZeroOrigin;
2180 auto AppendWideShadowAndOrigin = [&](Value *WideShadow, Value *Origin) {
2195 Origins.push_back(Origin);
2198 Origins.push_back(Origin);
2294 Value *Origin = nullptr;
2297 Origin = IRB.CreateAlignedLoad(DFS.OriginTy, OriginAddr, OriginAlign);
2306 return {LI, Origin};
2316 return {combineShadows(Load, Load1, Pos), Origin};
2323 OriginAlign, Origin, Pos);
2329 return {FallbackCall, Origin};
2335 Value *PrimitiveShadow, *Origin;
2336 std::tie(PrimitiveShadow, Origin) =
2343 Origin = updateOriginIfTainted(PrimitiveShadow, Origin, IRB);
2346 return {PrimitiveShadow, Origin};
2413 Value *PrimitiveShadow, *Origin;
2414 std::tie(PrimitiveShadow, Origin) =
2419 Origins.push_back(Origin);
2454 Value *DFSanFunction::updateOriginIfTainted(Value *Shadow, Value *Origin,
2457 return IRB.CreateCall(DFS.DFSanChainOriginIfTaintedFn, {Shadow, Origin});
2466 Value *DFSanFunction::originToIntptr(IRBuilder<> &IRB, Value *Origin) {
2471 return Origin;
2473 Origin = IRB.CreateIntCast(Origin, DFS.IntptrTy, /* isSigned */ false);
2474 return IRB.CreateOr(Origin, IRB.CreateShl(Origin, OriginSize * 8));
2477 void DFSanFunction::paintOrigin(IRBuilder<> &IRB, Value *Origin,
2490 Value *IntptrOrigin = originToIntptr(IRB, Origin);
2507 IRB.CreateAlignedStore(Origin, GEP, CurrentAlignment);
2523 uint64_t Size, Value *Shadow, Value *Origin,
2532 paintOrigin(IRB, updateOrigin(Origin, IRB), StoreOriginAddr, Size,
2540 {CollapsedShadow, Addr, ConstantInt::get(DFS.IntptrTy, Size), Origin});
2547 paintOrigin(IRBNew, updateOrigin(Origin, IRBNew), StoreOriginAddr, Size,
2569 Value *Origin,
2571 const bool ShouldTrackOrigins = DFS.shouldTrackOrigins() && Origin;
2583 assert(OI != AllocaOriginMap.end() && Origin);
2584 IRB.CreateStore(Origin, OI->second);
2634 storeOrigin(Pos, Addr, Size, PrimitiveShadow, Origin, OriginAddr,
2695 Value *Origin = nullptr;
2697 Origin = DFSF.combineOrigins(Shadows, Origins, SI.getIterator());
2699 PrimitiveShadow, Origin, SI.getIterator());