diff --git a/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp b/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp --- a/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp +++ b/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp @@ -1060,22 +1060,15 @@ Value *DFSanFunction::getArgTLSPtr() { if (ArgTLSPtr) return ArgTLSPtr; - if (DFS.ArgTLS) - return ArgTLSPtr = DFS.ArgTLS; - - IRBuilder<> IRB(&F->getEntryBlock().front()); - return ArgTLSPtr = IRB.CreateCall(DFS.GetArgTLSTy, DFS.GetArgTLS, {}); + assert(DFS.ArgTLS); + return ArgTLSPtr = DFS.ArgTLS; } Value *DFSanFunction::getRetvalTLS() { if (RetvalTLSPtr) return RetvalTLSPtr; - if (DFS.RetvalTLS) - return RetvalTLSPtr = DFS.RetvalTLS; - - IRBuilder<> IRB(&F->getEntryBlock().front()); - return RetvalTLSPtr = - IRB.CreateCall(DFS.GetRetvalTLSTy, DFS.GetRetvalTLS, {}); + assert(DFS.RetvalTLS); + return RetvalTLSPtr = DFS.RetvalTLS; } Value *DFSanFunction::getArgTLS(unsigned Idx, Instruction *Pos) {