Revert r222997. The newly added compile-time checks are finding missing origins, testcase is being reduced and a PR will be posted shortly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@223211 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Nick Lewycky
2014-12-03 05:47:00 +00:00
parent 5ed8a767a0
commit 3c6860c8a1

View File

@@ -921,8 +921,6 @@ struct MemorySanitizerVisitor : public InstVisitor<MemorySanitizerVisitor> {
Value *OriginPtr = Value *OriginPtr =
getOriginPtrForArgument(&FArg, EntryIRB, ArgOffset); getOriginPtrForArgument(&FArg, EntryIRB, ArgOffset);
setOrigin(A, EntryIRB.CreateLoad(OriginPtr)); setOrigin(A, EntryIRB.CreateLoad(OriginPtr));
} else {
setOrigin(A, getCleanOrigin());
} }
} }
ArgOffset += RoundUpToAlignment(Size, kShadowTLSAlignment); ArgOffset += RoundUpToAlignment(Size, kShadowTLSAlignment);
@@ -942,13 +940,15 @@ struct MemorySanitizerVisitor : public InstVisitor<MemorySanitizerVisitor> {
/// \brief Get the origin for a value. /// \brief Get the origin for a value.
Value *getOrigin(Value *V) { Value *getOrigin(Value *V) {
if (!MS.TrackOrigins) return nullptr; if (!MS.TrackOrigins) return nullptr;
if (!PropagateShadow) return getCleanOrigin(); if (isa<Instruction>(V) || isa<Argument>(V)) {
if (isa<Constant>(V)) return getCleanOrigin(); Value *Origin = OriginMap[V];
assert((isa<Instruction>(V) || isa<Argument>(V)) && if (!Origin) {
"Unexpected value type in getOrigin()"); DEBUG(dbgs() << "NO ORIGIN: " << *V << "\n");
Value *Origin = OriginMap[V]; Origin = getCleanOrigin();
assert(Origin && "Missing origin"); }
return Origin; return Origin;
}
return getCleanOrigin();
} }
/// \brief Get the origin for i-th argument of the instruction I. /// \brief Get the origin for i-th argument of the instruction I.
@@ -1088,7 +1088,6 @@ struct MemorySanitizerVisitor : public InstVisitor<MemorySanitizerVisitor> {
IRB.CreateStore(getCleanShadow(&I), ShadowPtr); IRB.CreateStore(getCleanShadow(&I), ShadowPtr);
setShadow(&I, getCleanShadow(&I)); setShadow(&I, getCleanShadow(&I));
setOrigin(&I, getCleanOrigin());
} }
void visitAtomicRMWInst(AtomicRMWInst &I) { void visitAtomicRMWInst(AtomicRMWInst &I) {