diff --git a/llvm/docs/Passes.rst b/llvm/docs/Passes.rst --- a/llvm/docs/Passes.rst +++ b/llvm/docs/Passes.rst @@ -296,14 +296,6 @@ This pass, only available in ``opt``, printsthe SCCs of each function CFG to standard error in a human-readable fom. -``-print-externalfnconstants``: Print external fn callsites passed constants ----------------------------------------------------------------------------- - -This pass, only available in ``opt``, prints out call sites to external -functions that are called with constant arguments. This can be useful when -looking for standard library functions we should constant fold or handle in -alias analyses. - ``-print-function``: Print function to stderr --------------------------------------------- diff --git a/llvm/tools/opt/AnalysisWrappers.cpp b/llvm/tools/opt/AnalysisWrappers.cpp deleted file mode 100644 --- a/llvm/tools/opt/AnalysisWrappers.cpp +++ /dev/null @@ -1,71 +0,0 @@ -//===- AnalysisWrappers.cpp - Wrappers around non-pass analyses -----------===// -// -// 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 -// -//===----------------------------------------------------------------------===// -// -// This file defines pass wrappers around LLVM analyses that don't make sense to -// be passes. It provides a nice standard pass interface to these classes so -// that they can be printed out by analyze. -// -// These classes are separated out of analyze.cpp so that it is more clear which -// code is the integral part of the analyze tool, and which part of the code is -// just making it so more passes are available. -// -//===----------------------------------------------------------------------===// - -#include "llvm/Analysis/CallGraph.h" -#include "llvm/IR/Module.h" -#include "llvm/Pass.h" -#include "llvm/Support/raw_ostream.h" -using namespace llvm; - -namespace { - /// ExternalFunctionsPassedConstants - This pass prints out call sites to - /// external functions that are called with constant arguments. This can be - /// useful when looking for standard library functions we should constant fold - /// or handle in alias analyses. - struct ExternalFunctionsPassedConstants : public ModulePass { - static char ID; // Pass ID, replacement for typeid - ExternalFunctionsPassedConstants() : ModulePass(ID) {} - bool runOnModule(Module &M) override { - for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I) { - if (!I->isDeclaration()) continue; - - bool PrintedFn = false; - for (User *U : I->users()) { - Instruction *UI = dyn_cast(U); - if (!UI) continue; - - CallBase *CB = dyn_cast(UI); - if (!CB) - continue; - - for (auto AI = CB->arg_begin(), E = CB->arg_end(); AI != E; ++AI) { - if (!isa(*AI)) continue; - - if (!PrintedFn) { - errs() << "Function '" << I->getName() << "':\n"; - PrintedFn = true; - } - errs() << *UI; - break; - } - } - } - - return false; - } - - void getAnalysisUsage(AnalysisUsage &AU) const override { - AU.setPreservesAll(); - } - }; -} - -char ExternalFunctionsPassedConstants::ID = 0; -static RegisterPass - P1("print-externalfnconstants", - "Print external fn callsites passed constants"); diff --git a/llvm/tools/opt/BreakpointPrinter.h b/llvm/tools/opt/BreakpointPrinter.h deleted file mode 100644 --- 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/BreakpointPrinter.cpp b/llvm/tools/opt/BreakpointPrinter.cpp deleted file mode 100644 --- 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(Context)) { - if (!NS->getName().empty()) { - getContextName(NS->getScope(), N); - N = N + NS->getName().str() + "::"; - } - } else if (auto *TY = dyn_cast(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(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/CMakeLists.txt b/llvm/tools/opt/CMakeLists.txt --- a/llvm/tools/opt/CMakeLists.txt +++ b/llvm/tools/opt/CMakeLists.txt @@ -28,8 +28,6 @@ ) add_llvm_tool(opt - AnalysisWrappers.cpp - BreakpointPrinter.cpp NewPMDriver.cpp PrintSCC.cpp opt.cpp diff --git a/llvm/tools/opt/opt.cpp b/llvm/tools/opt/opt.cpp --- a/llvm/tools/opt/opt.cpp +++ b/llvm/tools/opt/opt.cpp @@ -11,7 +11,6 @@ // //===----------------------------------------------------------------------===// -#include "BreakpointPrinter.h" #include "NewPMDriver.h" #include "llvm/ADT/Triple.h" #include "llvm/Analysis/CallGraph.h" @@ -206,10 +205,6 @@ cl::desc("Start the pipeline with collecting and end it with checking of " "debug info preservation.")); -static cl::opt -PrintBreakpoints("print-breakpoints-for-testing", - cl::desc("Print select breakpoints location for testing")); - static cl::opt ClDataLayout("data-layout", cl::desc("data layout string to use"), cl::value_desc("layout-string"), @@ -837,24 +832,6 @@ TM ? TM->getTargetIRAnalysis() : TargetIRAnalysis())); } - if (PrintBreakpoints) { - // Default to standard output. - if (!Out) { - if (OutputFilename.empty()) - OutputFilename = "-"; - - std::error_code EC; - Out = std::make_unique(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 <M = static_cast(*TM); @@ -1022,7 +999,7 @@ 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 --- a/llvm/utils/gn/secondary/llvm/tools/opt/BUILD.gn +++ b/llvm/utils/gn/secondary/llvm/tools/opt/BUILD.gn @@ -20,8 +20,6 @@ "//llvm/lib/Transforms/Vectorize", ] sources = [ - "AnalysisWrappers.cpp", - "BreakpointPrinter.cpp", "NewPMDriver.cpp", "PrintSCC.cpp", "opt.cpp",