OSDN Git Service

[PM/AA] Remove the last relics of the separate IPA library from LLVM,
authorChandler Carruth <chandlerc@gmail.com>
Tue, 18 Aug 2015 17:51:53 +0000 (17:51 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Tue, 18 Aug 2015 17:51:53 +0000 (17:51 +0000)
folding the code into the main Analysis library.

There already wasn't much of a distinction between Analysis and IPA.
A number of the passes in Analysis are actually IPA passes, and there
doesn't seem to be any advantage to separating them.

Moreover, it makes it hard to have interactions between analyses that
are both local and interprocedural. In trying to make the Alias Analysis
infrastructure work with the new pass manager, it becomes particularly
awkward to navigate this split.

I've tried to find all the places where we referenced this, but I may
have missed some. I have also adjusted the C API to continue to be
equivalently functional after this change.

Differential Revision: http://reviews.llvm.org/D12075

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@245318 91177308-0d34-0410-b5e6-96231b3b80d8

29 files changed:
bindings/python/llvm/core.py
include/llvm/InitializePasses.h
lib/Analysis/Analysis.cpp
lib/Analysis/CMakeLists.txt
lib/Analysis/CallGraph.cpp [moved from lib/Analysis/IPA/CallGraph.cpp with 100% similarity]
lib/Analysis/CallGraphSCCPass.cpp [moved from lib/Analysis/IPA/CallGraphSCCPass.cpp with 100% similarity]
lib/Analysis/CallPrinter.cpp [moved from lib/Analysis/IPA/CallPrinter.cpp with 100% similarity]
lib/Analysis/GlobalsModRef.cpp [moved from lib/Analysis/IPA/GlobalsModRef.cpp with 100% similarity]
lib/Analysis/IPA/CMakeLists.txt [deleted file]
lib/Analysis/IPA/IPA.cpp [deleted file]
lib/Analysis/IPA/LLVMBuild.txt [deleted file]
lib/Analysis/IPA/Makefile [deleted file]
lib/Analysis/InlineCost.cpp [moved from lib/Analysis/IPA/InlineCost.cpp with 100% similarity]
lib/Analysis/LLVMBuild.txt
lib/Analysis/Makefile
lib/LTO/LLVMBuild.txt
lib/Passes/LLVMBuild.txt
lib/Transforms/IPO/LLVMBuild.txt
lib/Transforms/Utils/LLVMBuild.txt
tools/bugpoint/CMakeLists.txt
tools/bugpoint/bugpoint.cpp
tools/llvm-shlib/CMakeLists.txt
tools/llvm-stress/CMakeLists.txt
tools/opt/CMakeLists.txt
tools/opt/opt.cpp
unittests/Analysis/CMakeLists.txt
unittests/Analysis/Makefile
unittests/IR/CMakeLists.txt
unittests/IR/Makefile

index c95952d..47e81dd 100644 (file)
@@ -465,9 +465,6 @@ def register_library(library):
     library.LLVMInitializeAnalysis.argtypes = [PassRegistry]
     library.LLVMInitializeAnalysis.restype = None
 
-    library.LLVMInitializeIPA.argtypes = [PassRegistry]
-    library.LLVMInitializeIPA.restype = None
-
     library.LLVMInitializeCodeGen.argtypes = [PassRegistry]
     library.LLVMInitializeCodeGen.restype = None
 
@@ -621,7 +618,6 @@ def initialize_llvm():
     lib.LLVMInitializeIPO(p)
     lib.LLVMInitializeInstrumentation(p)
     lib.LLVMInitializeAnalysis(p)
-    lib.LLVMInitializeIPA(p)
     lib.LLVMInitializeCodeGen(p)
     lib.LLVMInitializeTarget(p)
 
index 4877611..90d444a 100644 (file)
@@ -53,9 +53,6 @@ void initializeInstrumentation(PassRegistry&);
 /// initializeAnalysis - Initialize all passes linked into the Analysis library.
 void initializeAnalysis(PassRegistry&);
 
-/// initializeIPA - Initialize all passes linked into the IPA library.
-void initializeIPA(PassRegistry&);
-
 /// initializeCodeGen - Initialize all passes linked into the CodeGen library.
 void initializeCodeGen(PassRegistry&);
 
index 91e7339..ac1cf76 100644 (file)
@@ -28,6 +28,9 @@ void llvm::initializeAnalysis(PassRegistry &Registry) {
   initializeBasicAliasAnalysisPass(Registry);
   initializeBlockFrequencyInfoWrapperPassPass(Registry);
   initializeBranchProbabilityInfoWrapperPassPass(Registry);
+  initializeCallGraphWrapperPassPass(Registry);
+  initializeCallGraphPrinterPass(Registry);
+  initializeCallGraphViewerPass(Registry);
   initializeCostModelAnalysisPass(Registry);
   initializeCFGViewerPass(Registry);
   initializeCFGPrinterPass(Registry);
@@ -47,6 +50,7 @@ void llvm::initializeAnalysis(PassRegistry &Registry) {
   initializePostDomPrinterPass(Registry);
   initializePostDomOnlyViewerPass(Registry);
   initializePostDomOnlyPrinterPass(Registry);
+  initializeGlobalsModRefPass(Registry);
   initializeIVUsersPass(Registry);
   initializeInstCountPass(Registry);
   initializeIntervalPartitionPass(Registry);
@@ -74,6 +78,10 @@ void LLVMInitializeAnalysis(LLVMPassRegistryRef R) {
   initializeAnalysis(*unwrap(R));
 }
 
+void LLVMInitializeIPA(LLVMPassRegistryRef R) {
+  initializeAnalysis(*unwrap(R));
+}
+
 LLVMBool LLVMVerifyModule(LLVMModuleRef M, LLVMVerifierFailureAction Action,
                           char **OutMessages) {
   raw_ostream *DebugOS = Action != LLVMReturnStatusAction ? &errs() : nullptr;
index 16417b6..599f48d 100644 (file)
@@ -13,6 +13,9 @@ add_llvm_library(LLVMAnalysis
   CFGPrinter.cpp
   CFLAliasAnalysis.cpp
   CGSCCPassManager.cpp
+  CallGraph.cpp
+  CallGraphSCCPass.cpp
+  CallPrinter.cpp
   CaptureTracking.cpp
   CostModel.cpp
   CodeMetrics.cpp
@@ -23,7 +26,9 @@ add_llvm_library(LLVMAnalysis
   DivergenceAnalysis.cpp
   DomPrinter.cpp
   DominanceFrontier.cpp
+  GlobalsModRef.cpp
   IVUsers.cpp
+  InlineCost.cpp
   InstCount.cpp
   InstructionSimplify.cpp
   Interval.cpp
@@ -69,5 +74,3 @@ add_llvm_library(LLVMAnalysis
   )
 
 add_dependencies(LLVMAnalysis intrinsics_gen)
-
-add_subdirectory(IPA)
diff --git a/lib/Analysis/IPA/CMakeLists.txt b/lib/Analysis/IPA/CMakeLists.txt
deleted file mode 100644 (file)
index 6095136..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-add_llvm_library(LLVMipa
-  CallGraph.cpp
-  CallGraphSCCPass.cpp
-  CallPrinter.cpp
-  GlobalsModRef.cpp
-  IPA.cpp
-  InlineCost.cpp
-  )
-
-add_dependencies(LLVMipa intrinsics_gen)
diff --git a/lib/Analysis/IPA/IPA.cpp b/lib/Analysis/IPA/IPA.cpp
deleted file mode 100644 (file)
index 806bfb8..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-//===-- IPA.cpp -----------------------------------------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements the common initialization routines for the IPA library.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/InitializePasses.h"
-#include "llvm-c/Initialization.h"
-#include "llvm/PassRegistry.h"
-
-using namespace llvm;
-
-/// initializeIPA - Initialize all passes linked into the IPA library.
-void llvm::initializeIPA(PassRegistry &Registry) {
-  initializeCallGraphWrapperPassPass(Registry);
-  initializeCallGraphPrinterPass(Registry);
-  initializeCallGraphViewerPass(Registry);
-  initializeGlobalsModRefPass(Registry);
-}
-
-void LLVMInitializeIPA(LLVMPassRegistryRef R) {
-  initializeIPA(*unwrap(R));
-}
diff --git a/lib/Analysis/IPA/LLVMBuild.txt b/lib/Analysis/IPA/LLVMBuild.txt
deleted file mode 100644 (file)
index 980e918..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-;===- ./lib/Analysis/IPA/LLVMBuild.txt -------------------------*- Conf -*--===;
-;
-;                     The LLVM Compiler Infrastructure
-;
-; This file is distributed under the University of Illinois Open Source
-; License. See LICENSE.TXT for details.
-;
-;===------------------------------------------------------------------------===;
-;
-; This is an LLVMBuild description file for the components in this subdirectory.
-;
-; For more information on the LLVMBuild system, please see:
-;
-;   http://llvm.org/docs/LLVMBuild.html
-;
-;===------------------------------------------------------------------------===;
-
-[component_0]
-type = Library
-name = IPA
-parent = Libraries
-library_name = ipa
-required_libraries = Analysis Core Support
diff --git a/lib/Analysis/IPA/Makefile b/lib/Analysis/IPA/Makefile
deleted file mode 100644 (file)
index b850c9f..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-##===- lib/Analysis/IPA/Makefile ---------------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file is distributed under the University of Illinois Open Source
-# License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-
-LEVEL = ../../..
-LIBRARYNAME = LLVMipa
-BUILD_ARCHIVE = 1
-
-include $(LEVEL)/Makefile.common
-
index 3039dde..bddf1a3 100644 (file)
@@ -15,9 +15,6 @@
 ;
 ;===------------------------------------------------------------------------===;
 
-[common]
-subdirectories = IPA
-
 [component_0]
 type = Library
 name = Analysis
index 4af6d35..93fd7f9 100644 (file)
@@ -9,7 +9,6 @@
 
 LEVEL = ../..
 LIBRARYNAME = LLVMAnalysis
-DIRS = IPA
 BUILD_ARCHIVE = 1
 
 include $(LEVEL)/Makefile.common
index ea79d5e..7a0ad50 100644 (file)
@@ -25,7 +25,6 @@ required_libraries =
  BitWriter
  CodeGen
  Core
- IPA
  IPO
  InstCombine
  Linker
index 3063fe3..a752f42 100644 (file)
@@ -19,4 +19,4 @@
 type = Library
 name = Passes
 parent = Libraries
-required_libraries = Analysis Core IPA IPO InstCombine Scalar Support TransformUtils Vectorize
+required_libraries = Analysis Core IPO InstCombine Scalar Support TransformUtils Vectorize
index 575dce4..5672390 100644 (file)
@@ -20,4 +20,4 @@ type = Library
 name = IPO
 parent = Transforms
 library_name = ipo
-required_libraries = Analysis Core IPA InstCombine Scalar Support TransformUtils Vectorize
+required_libraries = Analysis Core InstCombine Scalar Support TransformUtils Vectorize
index 6b2d405..ece0ad4 100644 (file)
@@ -19,4 +19,4 @@
 type = Library
 name = TransformUtils
 parent = Transforms
-required_libraries = Analysis Core IPA Support
+required_libraries = Analysis Core Support
index daf502e..287a26e 100644 (file)
@@ -3,7 +3,6 @@ set(LLVM_LINK_COMPONENTS
   BitWriter
   CodeGen
   Core
-  IPA
   IPO
   IRReader
   InstCombine
index af6d9fc..ce3d936 100644 (file)
@@ -126,7 +126,6 @@ int main(int argc, char **argv) {
   initializeVectorization(Registry);
   initializeIPO(Registry);
   initializeAnalysis(Registry);
-  initializeIPA(Registry);
   initializeTransformUtils(Registry);
   initializeInstCombine(Registry);
   initializeInstrumentation(Registry);
index 54d71d3..9be8b43 100644 (file)
@@ -18,7 +18,6 @@ if(NOT DEFINED LLVM_DYLIB_COMPONENTS)
     DebugInfoDWARF
     DebugInfoPDB
     ExecutionEngine
-    IPA
     IPO
     IRReader
     InstCombine
index d5c10e1..8f2b30e 100644 (file)
@@ -1,6 +1,6 @@
 set(LLVM_LINK_COMPONENTS
+  Analysis
   Core
-  IPA
   Support
   )
 
index 5f82522..9194a6b 100644 (file)
@@ -4,7 +4,6 @@ set(LLVM_LINK_COMPONENTS
   BitWriter
   CodeGen
   Core
-  IPA
   IPO
   IRReader
   InstCombine
index 0db60d1..5fe2f03 100644 (file)
@@ -312,7 +312,6 @@ int main(int argc, char **argv) {
   initializeVectorization(Registry);
   initializeIPO(Registry);
   initializeAnalysis(Registry);
-  initializeIPA(Registry);
   initializeTransformUtils(Registry);
   initializeInstCombine(Registry);
   initializeInstrumentation(Registry);
index 28d35ce..06560cf 100644 (file)
@@ -1,5 +1,4 @@
 set(LLVM_LINK_COMPONENTS
-  IPA
   Analysis
   AsmParser
   Core
index 52296e7..527f452 100644 (file)
@@ -9,7 +9,7 @@
 
 LEVEL = ../..
 TESTNAME = Analysis
-LINK_COMPONENTS := ipa analysis asmparser
+LINK_COMPONENTS := analysis asmparser
 
 include $(LEVEL)/Makefile.config
 include $(LLVM_SRC_ROOT)/unittests/Makefile.unittest
index 0c29796..e5a0fc9 100644 (file)
@@ -2,7 +2,6 @@ set(LLVM_LINK_COMPONENTS
   Analysis
   AsmParser
   Core
-  IPA
   Support
   )
 
index 7c59003..45aa8d6 100644 (file)
@@ -9,7 +9,7 @@
 
 LEVEL = ../..
 TESTNAME = IR
-LINK_COMPONENTS := core ipa asmparser
+LINK_COMPONENTS := core analysis asmparser
 
 include $(LEVEL)/Makefile.config
 include $(LLVM_SRC_ROOT)/unittests/Makefile.unittest