From ec6f2559fe1e257d221c9b4ce6c32584f7cc99b2 Mon Sep 17 00:00:00 2001
From: Devang Patel <dpatel@apple.com>
Date: Tue, 20 Sep 2011 15:57:19 +0000
Subject: [PATCH] There is no need to write a local utility routine to find
 subprogram info if the utility routine is already available in DebugInfo.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140145 91177308-0d34-0410-b5e6-96231b3b80d8
---
 lib/Transforms/Instrumentation/GCOVProfiling.cpp | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

diff --git a/lib/Transforms/Instrumentation/GCOVProfiling.cpp b/lib/Transforms/Instrumentation/GCOVProfiling.cpp
index 089c8b98761..16262932936 100644
--- a/lib/Transforms/Instrumentation/GCOVProfiling.cpp
+++ b/lib/Transforms/Instrumentation/GCOVProfiling.cpp
@@ -109,15 +109,6 @@ ModulePass *llvm::createGCOVProfilerPass(bool EmitNotes, bool EmitData,
   return new GCOVProfiler(EmitNotes, EmitData, Use402Format);
 }
 
-static DISubprogram findSubprogram(DIScope Scope) {
-  while (!Scope.isSubprogram()) {
-    assert(Scope.isLexicalBlock() &&
-           "Debug location not lexical block or subprogram");
-    Scope = DILexicalBlock(Scope).getContext();
-  }
-  return DISubprogram(Scope);
-}
-
 namespace {
   class GCOVRecord {
    protected:
@@ -403,7 +394,7 @@ void GCOVProfiler::emitGCNO() {
             if (Loc.isUnknown()) continue;
             if (Line == Loc.getLine()) continue;
             Line = Loc.getLine();
-            if (SP != findSubprogram(DIScope(Loc.getScope(*Ctx)))) continue;
+            if (SP != getDISubprogram(Loc.getScope(*Ctx))) continue;
             
             GCOVLines &Lines = Block.getFile(SP.getFilename());
             Lines.addLine(Loc.getLine());