[llvm] c00b526 - [opt] Remove the ExternalFunctionsPassedConstants pass

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


Author: Bjorn Pettersson
Date: 2023-04-13T10:12:00+02:00
New Revision: c00b526f04c992890c1af6b85d5c366164dc4c64

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

LOG: [opt] Remove the ExternalFunctionsPassedConstants pass

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

Added: 
    

Modified: 
    llvm/docs/Passes.rst
    llvm/tools/opt/CMakeLists.txt
    llvm/utils/gn/secondary/llvm/tools/opt/BUILD.gn

Removed: 
    llvm/tools/opt/AnalysisWrappers.cpp


################################################################################
diff  --git a/llvm/docs/Passes.rst b/llvm/docs/Passes.rst
index 7236408ecfa1..a2657c3479f3 100644
--- a/llvm/docs/Passes.rst
+++ b/llvm/docs/Passes.rst
@@ -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
index 2ae1da84a9a0..000000000000
--- 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<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");

diff  --git a/llvm/tools/opt/CMakeLists.txt b/llvm/tools/opt/CMakeLists.txt
index c984539cb921..2cdb99e93628 100644
--- a/llvm/tools/opt/CMakeLists.txt
+++ b/llvm/tools/opt/CMakeLists.txt
@@ -30,7 +30,6 @@ set(LLVM_LINK_COMPONENTS
   )
 
 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
index dfabf6d3f394..67940c61fe13 100644
--- a/llvm/utils/gn/secondary/llvm/tools/opt/BUILD.gn
+++ b/llvm/utils/gn/secondary/llvm/tools/opt/BUILD.gn
@@ -22,7 +22,6 @@ executable("opt") {
     "//llvm/lib/Transforms/Vectorize",
   ]
   sources = [
-    "AnalysisWrappers.cpp",
     "NewPMDriver.cpp",
     "opt.cpp",
   ]


        


More information about the llvm-commits mailing list