From: Nick Lewycky Date: Wed, 3 Dec 2014 05:47:00 +0000 (+0000) Subject: Revert r222997. The newly added compile-time checks are finding missing origins,... X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=3c6860c8a105f424bb1b439b22cb2da7b03ff764;p=oota-llvm.git 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 --- diff --git a/lib/Transforms/Instrumentation/MemorySanitizer.cpp b/lib/Transforms/Instrumentation/MemorySanitizer.cpp index 40e0e013257..15a67d7c697 100644 --- a/lib/Transforms/Instrumentation/MemorySanitizer.cpp +++ b/lib/Transforms/Instrumentation/MemorySanitizer.cpp @@ -921,8 +921,6 @@ struct MemorySanitizerVisitor : public InstVisitor { Value *OriginPtr = getOriginPtrForArgument(&FArg, EntryIRB, ArgOffset); setOrigin(A, EntryIRB.CreateLoad(OriginPtr)); - } else { - setOrigin(A, getCleanOrigin()); } } ArgOffset += RoundUpToAlignment(Size, kShadowTLSAlignment); @@ -942,13 +940,15 @@ struct MemorySanitizerVisitor : public InstVisitor { /// \brief Get the origin for a value. Value *getOrigin(Value *V) { if (!MS.TrackOrigins) return nullptr; - if (!PropagateShadow) return getCleanOrigin(); - if (isa(V)) return getCleanOrigin(); - assert((isa(V) || isa(V)) && - "Unexpected value type in getOrigin()"); - Value *Origin = OriginMap[V]; - assert(Origin && "Missing origin"); - return Origin; + if (isa(V) || isa(V)) { + Value *Origin = OriginMap[V]; + if (!Origin) { + DEBUG(dbgs() << "NO ORIGIN: " << *V << "\n"); + Origin = getCleanOrigin(); + } + return Origin; + } + return getCleanOrigin(); } /// \brief Get the origin for i-th argument of the instruction I. @@ -1088,7 +1088,6 @@ struct MemorySanitizerVisitor : public InstVisitor { IRB.CreateStore(getCleanShadow(&I), ShadowPtr); setShadow(&I, getCleanShadow(&I)); - setOrigin(&I, getCleanOrigin()); } void visitAtomicRMWInst(AtomicRMWInst &I) {