[llvm] 169fde6 - [opt] Remove the BreakpointPrinter pass

Bjorn Pettersson via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 13 01:12:36 PDT 2023


Author: Bjorn Pettersson
Date: 2023-04-13T10:11:59+02:00
New Revision: 169fde63b7cb5734acf7d8c6f8ea3932a001e6b4

URL: https://github.com/llvm/llvm-project/commit/169fde63b7cb5734acf7d8c6f8ea3932a001e6b4
DIFF: https://github.com/llvm/llvm-project/commit/169fde63b7cb5734acf7d8c6f8ea3932a001e6b4.diff

LOG: [opt] Remove the BreakpointPrinter pass

This removed the option print-breakpoints-for-testing in opt, as well
as the related BreakpointPrinter pass.

The functionality only existed for the legacy PM, but was not verified
to be working by any test cases. And the named "llvm.dbg.sp" metadata
that the pass was looking for is not something that I really can find
any information about (unless perhaps if I dive really deep into the
commit history), so not sure exactly if this functionality has been
relevant for several years.

Differential Revision: https://reviews.llvm.org/D148080

Added: 
    

Modified: 
    llvm/tools/opt/CMakeLists.txt
    llvm/tools/opt/opt.cpp
    llvm/utils/gn/secondary/llvm/tools/opt/BUILD.gn

Removed: 
    llvm/tools/opt/BreakpointPrinter.cpp
    llvm/tools/opt/BreakpointPrinter.h


################################################################################
diff  --git a/llvm/tools/opt/BreakpointPrinter.cpp b/llvm/tools/opt/BreakpointPrinter.cpp
deleted file mode 100644
index a57a8c43c264..000000000000
--- a/llvm/tools/opt/BreakpointPrinter.cpp
+++ /dev/null
@@ -1,71 +0,0 @@
-//===- BreakpointPrinter.cpp - Breakpoint location printer ----------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-///
-/// \file
-/// Breakpoint location printer.
-///
-//===----------------------------------------------------------------------===//
-#include "BreakpointPrinter.h"
-#include "llvm/ADT/StringSet.h"
-#include "llvm/IR/DebugInfo.h"
-#include "llvm/IR/Module.h"
-#include "llvm/Pass.h"
-#include "llvm/Support/raw_ostream.h"
-
-using namespace llvm;
-
-namespace {
-
-struct BreakpointPrinter : public ModulePass {
-  raw_ostream &Out;
-  static char ID;
-
-  BreakpointPrinter(raw_ostream &out) : ModulePass(ID), Out(out) {}
-
-  void getContextName(const DIScope *Context, std::string &N) {
-    if (auto *NS = dyn_cast<DINamespace>(Context)) {
-      if (!NS->getName().empty()) {
-        getContextName(NS->getScope(), N);
-        N = N + NS->getName().str() + "::";
-      }
-    } else if (auto *TY = dyn_cast<DIType>(Context)) {
-      if (!TY->getName().empty()) {
-        getContextName(TY->getScope(), N);
-        N = N + TY->getName().str() + "::";
-      }
-    }
-  }
-
-  bool runOnModule(Module &M) override {
-    StringSet<> Processed;
-    if (NamedMDNode *NMD = M.getNamedMetadata("llvm.dbg.sp"))
-      for (unsigned i = 0, e = NMD->getNumOperands(); i != e; ++i) {
-        std::string Name;
-        auto *SP = cast_or_null<DISubprogram>(NMD->getOperand(i));
-        if (!SP)
-          continue;
-        getContextName(SP->getScope(), Name);
-        Name = Name + SP->getName().str();
-        if (!Name.empty() && Processed.insert(Name).second) {
-          Out << Name << "\n";
-        }
-      }
-    return false;
-  }
-
-  void getAnalysisUsage(AnalysisUsage &AU) const override {
-    AU.setPreservesAll();
-  }
-};
-
-char BreakpointPrinter::ID = 0;
-}
-
-ModulePass *llvm::createBreakpointPrinter(raw_ostream &out) {
-  return new BreakpointPrinter(out);
-}

diff  --git a/llvm/tools/opt/BreakpointPrinter.h b/llvm/tools/opt/BreakpointPrinter.h
deleted file mode 100644
index 2877555f852c..000000000000
--- a/llvm/tools/opt/BreakpointPrinter.h
+++ /dev/null
@@ -1,24 +0,0 @@
-//===- BreakpointPrinter.h - Breakpoint location printer ------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-///
-/// \file
-/// Breakpoint location printer.
-///
-//===----------------------------------------------------------------------===//
-#ifndef LLVM_TOOLS_OPT_BREAKPOINTPRINTER_H
-#define LLVM_TOOLS_OPT_BREAKPOINTPRINTER_H
-
-namespace llvm {
-
-class ModulePass;
-class raw_ostream;
-
-ModulePass *createBreakpointPrinter(raw_ostream &out);
-}
-
-#endif // LLVM_TOOLS_OPT_BREAKPOINTPRINTER_H

diff  --git a/llvm/tools/opt/CMakeLists.txt b/llvm/tools/opt/CMakeLists.txt
index 6b2d6b4d18a8..c984539cb921 100644
--- a/llvm/tools/opt/CMakeLists.txt
+++ b/llvm/tools/opt/CMakeLists.txt
@@ -31,7 +31,6 @@ set(LLVM_LINK_COMPONENTS
 
 add_llvm_tool(opt
   AnalysisWrappers.cpp
-  BreakpointPrinter.cpp
   NewPMDriver.cpp
   opt.cpp
 

diff  --git a/llvm/tools/opt/opt.cpp b/llvm/tools/opt/opt.cpp
index 6a582fb0d425..76d396d82cb4 100644
--- a/llvm/tools/opt/opt.cpp
+++ b/llvm/tools/opt/opt.cpp
@@ -11,7 +11,6 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "BreakpointPrinter.h"
 #include "NewPMDriver.h"
 #include "llvm/Analysis/CallGraph.h"
 #include "llvm/Analysis/CallGraphSCCPass.h"
@@ -203,10 +202,6 @@ static cl::opt<bool> VerifyDebugInfoPreserve(
     cl::desc("Start the pipeline with collecting and end it with checking of "
              "debug info preservation."));
 
-static cl::opt<bool>
-PrintBreakpoints("print-breakpoints-for-testing",
-                 cl::desc("Print select breakpoints location for testing"));
-
 static cl::opt<std::string> ClDataLayout("data-layout",
                                          cl::desc("data layout string to use"),
                                          cl::value_desc("layout-string"),
@@ -780,24 +775,6 @@ int main(int argc, char **argv) {
 
   std::unique_ptr<legacy::FunctionPassManager> FPasses;
 
-  if (PrintBreakpoints) {
-    // Default to standard output.
-    if (!Out) {
-      if (OutputFilename.empty())
-        OutputFilename = "-";
-
-      std::error_code EC;
-      Out = std::make_unique<ToolOutputFile>(OutputFilename, EC,
-                                              sys::fs::OF_None);
-      if (EC) {
-        errs() << EC.message() << '\n';
-        return 1;
-      }
-    }
-    Passes.add(createBreakpointPrinter(Out->os()));
-    NoOutput = true;
-  }
-
   if (TM) {
     // FIXME: We should dyn_cast this when supported.
     auto &LTM = static_cast<LLVMTargetMachine &>(*TM);
@@ -909,7 +886,7 @@ int main(int argc, char **argv) {
     exportDebugifyStats(DebugifyExport, Passes.getDebugifyStatsMap());
 
   // Declare success.
-  if (!NoOutput || PrintBreakpoints)
+  if (!NoOutput)
     Out->keep();
 
   if (RemarksFile)

diff  --git a/llvm/utils/gn/secondary/llvm/tools/opt/BUILD.gn b/llvm/utils/gn/secondary/llvm/tools/opt/BUILD.gn
index 3eb2cfef15c5..dfabf6d3f394 100644
--- a/llvm/utils/gn/secondary/llvm/tools/opt/BUILD.gn
+++ b/llvm/utils/gn/secondary/llvm/tools/opt/BUILD.gn
@@ -23,7 +23,6 @@ executable("opt") {
   ]
   sources = [
     "AnalysisWrappers.cpp",
-    "BreakpointPrinter.cpp",
     "NewPMDriver.cpp",
     "opt.cpp",
   ]


        


More information about the llvm-commits mailing list