Print breakpoints for call instructions. This is used by optimized debug info test...
authorDevang Patel <dpatel@apple.com>
Thu, 9 Dec 2010 23:37:07 +0000 (23:37 +0000)
committerDevang Patel <dpatel@apple.com>
Thu, 9 Dec 2010 23:37:07 +0000 (23:37 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121432 91177308-0d34-0410-b5e6-96231b3b80d8

tools/opt/opt.cpp

index c1e0ad128bc2b009cbd9f6a29d5a2dbb020fbea1..85d365306a27b823009102f0d50398537290c07a 100644 (file)
@@ -364,6 +364,19 @@ struct BreakpointPrinter : public FunctionPass {
       } while (BI != I->begin());
       break;
     }
+    BasicBlock &EntryBB = F.getEntryBlock();
+    for (Function::iterator I = F.begin(), E = F.end(); I != E; ++I) {
+      BasicBlock *BB = I;
+      if (BB == &EntryBB) continue;
+      for (BasicBlock::iterator BI = I->begin(), BE = I->end(); BI != BE; ++BI)
+        if (CallInst *CI = dyn_cast<CallInst>(BI)) {
+          const DebugLoc DL = CI->getDebugLoc();
+          if (!DL.isUnknown()) {
+            DIScope S(DL.getScope(getGlobalContext()));
+            Out << S.getFilename() << " " << DL.getLine() << "\n";
+          }
+        }
+    }
     return false;
   }