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
library.LLVMInitializeAnalysis.argtypes = [PassRegistry]
library.LLVMInitializeAnalysis.restype = None
- library.LLVMInitializeIPA.argtypes = [PassRegistry]
- library.LLVMInitializeIPA.restype = None
-
library.LLVMInitializeCodeGen.argtypes = [PassRegistry]
library.LLVMInitializeCodeGen.restype = None
lib.LLVMInitializeIPO(p)
lib.LLVMInitializeInstrumentation(p)
lib.LLVMInitializeAnalysis(p)
- lib.LLVMInitializeIPA(p)
lib.LLVMInitializeCodeGen(p)
lib.LLVMInitializeTarget(p)
/// 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&);
initializeBasicAliasAnalysisPass(Registry);
initializeBlockFrequencyInfoWrapperPassPass(Registry);
initializeBranchProbabilityInfoWrapperPassPass(Registry);
+ initializeCallGraphWrapperPassPass(Registry);
+ initializeCallGraphPrinterPass(Registry);
+ initializeCallGraphViewerPass(Registry);
initializeCostModelAnalysisPass(Registry);
initializeCFGViewerPass(Registry);
initializeCFGPrinterPass(Registry);
initializePostDomPrinterPass(Registry);
initializePostDomOnlyViewerPass(Registry);
initializePostDomOnlyPrinterPass(Registry);
+ initializeGlobalsModRefPass(Registry);
initializeIVUsersPass(Registry);
initializeInstCountPass(Registry);
initializeIntervalPartitionPass(Registry);
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;
CFGPrinter.cpp
CFLAliasAnalysis.cpp
CGSCCPassManager.cpp
+ CallGraph.cpp
+ CallGraphSCCPass.cpp
+ CallPrinter.cpp
CaptureTracking.cpp
CostModel.cpp
CodeMetrics.cpp
DivergenceAnalysis.cpp
DomPrinter.cpp
DominanceFrontier.cpp
+ GlobalsModRef.cpp
IVUsers.cpp
+ InlineCost.cpp
InstCount.cpp
InstructionSimplify.cpp
Interval.cpp
)
add_dependencies(LLVMAnalysis intrinsics_gen)
-
-add_subdirectory(IPA)
+++ /dev/null
-add_llvm_library(LLVMipa
- CallGraph.cpp
- CallGraphSCCPass.cpp
- CallPrinter.cpp
- GlobalsModRef.cpp
- IPA.cpp
- InlineCost.cpp
- )
-
-add_dependencies(LLVMipa intrinsics_gen)
+++ /dev/null
-//===-- 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));
-}
+++ /dev/null
-;===- ./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
+++ /dev/null
-##===- 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
-
;
;===------------------------------------------------------------------------===;
-[common]
-subdirectories = IPA
-
[component_0]
type = Library
name = Analysis
LEVEL = ../..
LIBRARYNAME = LLVMAnalysis
-DIRS = IPA
BUILD_ARCHIVE = 1
include $(LEVEL)/Makefile.common
BitWriter
CodeGen
Core
- IPA
IPO
InstCombine
Linker
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
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
type = Library
name = TransformUtils
parent = Transforms
-required_libraries = Analysis Core IPA Support
+required_libraries = Analysis Core Support
BitWriter
CodeGen
Core
- IPA
IPO
IRReader
InstCombine
initializeVectorization(Registry);
initializeIPO(Registry);
initializeAnalysis(Registry);
- initializeIPA(Registry);
initializeTransformUtils(Registry);
initializeInstCombine(Registry);
initializeInstrumentation(Registry);
DebugInfoDWARF
DebugInfoPDB
ExecutionEngine
- IPA
IPO
IRReader
InstCombine
set(LLVM_LINK_COMPONENTS
+ Analysis
Core
- IPA
Support
)
BitWriter
CodeGen
Core
- IPA
IPO
IRReader
InstCombine
initializeVectorization(Registry);
initializeIPO(Registry);
initializeAnalysis(Registry);
- initializeIPA(Registry);
initializeTransformUtils(Registry);
initializeInstCombine(Registry);
initializeInstrumentation(Registry);
set(LLVM_LINK_COMPONENTS
- IPA
Analysis
AsmParser
Core
LEVEL = ../..
TESTNAME = Analysis
-LINK_COMPONENTS := ipa analysis asmparser
+LINK_COMPONENTS := analysis asmparser
include $(LEVEL)/Makefile.config
include $(LLVM_SRC_ROOT)/unittests/Makefile.unittest
Analysis
AsmParser
Core
- IPA
Support
)
LEVEL = ../..
TESTNAME = IR
-LINK_COMPONENTS := core ipa asmparser
+LINK_COMPONENTS := core analysis asmparser
include $(LEVEL)/Makefile.config
include $(LLVM_SRC_ROOT)/unittests/Makefile.unittest