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/CMakeLists.txt b/llvm/tools/opt/CMakeLists.txt --- a/llvm/tools/opt/CMakeLists.txt +++ b/llvm/tools/opt/CMakeLists.txt @@ -30,7 +30,6 @@ ) add_llvm_tool(opt - AnalysisWrappers.cpp NewPMDriver.cpp opt.cpp 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 @@ -22,7 +22,6 @@ "//llvm/lib/Transforms/Vectorize", ] sources = [ - "AnalysisWrappers.cpp", "NewPMDriver.cpp", "opt.cpp", ]