[opt] Remove the ExternalFunctionsPassedConstants pass
authorBjorn Pettersson <bjorn.a.pettersson@ericsson.com>
Tue, 11 Apr 2023 22:13:17 +0000 (00:13 +0200)
committerBjorn Pettersson <bjorn.a.pettersson@ericsson.com>
Thu, 13 Apr 2023 08:12:00 +0000 (10:12 +0200)
This commit is removing the last pieces of AnalysisWrapper.cpp
(including the ExternalFunctionsPassedConstants pass, aka
print-externalfnconstants).

The pass only existed for the legacy PM, and it was not regression
tested. And since the pass did not force the use of the legacy pass
manager there was no simply way to run the pass nowadays, at least
not by using opt.

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

llvm/docs/Passes.rst
llvm/tools/opt/AnalysisWrappers.cpp [deleted file]
llvm/tools/opt/CMakeLists.txt
llvm/utils/gn/secondary/llvm/tools/opt/BUILD.gn

index 7236408..a2657c3 100644 (file)
@@ -296,14 +296,6 @@ standard error in a human-readable form.
 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 (file)
index 2ae1da8..0000000
+++ /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<Instruction>(U);
-          if (!UI) continue;
-
-          CallBase *CB = dyn_cast<CallBase>(UI);
-          if (!CB)
-            continue;
-
-          for (auto AI = CB->arg_begin(), E = CB->arg_end(); AI != E; ++AI) {
-            if (!isa<Constant>(*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<ExternalFunctionsPassedConstants>
-  P1("print-externalfnconstants",
-     "Print external fn callsites passed constants");
index c984539..2cdb99e 100644 (file)
@@ -30,7 +30,6 @@ set(LLVM_LINK_COMPONENTS
   )
 
 add_llvm_tool(opt
-  AnalysisWrappers.cpp
   NewPMDriver.cpp
   opt.cpp
 
index dfabf6d..67940c6 100644 (file)
@@ -22,7 +22,6 @@ executable("opt") {
     "//llvm/lib/Transforms/Vectorize",
   ]
   sources = [
-    "AnalysisWrappers.cpp",
     "NewPMDriver.cpp",
     "opt.cpp",
   ]