Skip to content

Commit 10df156

Browse files
committed
Move ModuleSummaryAnalysis from libAnalysis to libObject to break the dependency from Analysis to Object
ModuleSummaryAnalysis is the only file in libAnalysis that brings a dependency on the CodeGen layer from libAnalysis, moving it breaks this dependency. Differential Revision: https://reviews.llvm.org/D77994
1 parent a69b3e0 commit 10df156

File tree

9 files changed

+24
-19
lines changed

9 files changed

+24
-19
lines changed

llvm/lib/Analysis/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@ add_llvm_component_library(LLVMAnalysis
6767
MemorySSA.cpp
6868
MemorySSAUpdater.cpp
6969
ModuleDebugInfoPrinter.cpp
70-
ModuleSummaryAnalysis.cpp
7170
MustExecute.cpp
7271
ObjCARCAliasAnalysis.cpp
7372
ObjCARCAnalysisUtils.cpp

llvm/lib/Analysis/LLVMBuild.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,4 @@
1818
type = Library
1919
name = Analysis
2020
parent = Libraries
21-
required_libraries = BinaryFormat Core Object ProfileData Support
21+
required_libraries = BinaryFormat Core ProfileData Support

llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@
1111
//===----------------------------------------------------------------------===//
1212

1313
#include "llvm/Bitcode/BitcodeWriterPass.h"
14-
#include "llvm/Analysis/ModuleSummaryAnalysis.h"
1514
#include "llvm/Bitcode/BitcodeWriter.h"
1615
#include "llvm/IR/Module.h"
1716
#include "llvm/IR/PassManager.h"
1817
#include "llvm/InitializePasses.h"
18+
#include "llvm/Object/ModuleSummaryAnalysis.h"
1919
#include "llvm/Pass.h"
2020
using namespace llvm;
2121

llvm/lib/LTO/ThinLTOCodeGenerator.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616

1717
#include "llvm/ADT/Statistic.h"
1818
#include "llvm/ADT/StringExtras.h"
19-
#include "llvm/Analysis/ModuleSummaryAnalysis.h"
2019
#include "llvm/Analysis/ProfileSummaryInfo.h"
2120
#include "llvm/Analysis/TargetLibraryInfo.h"
2221
#include "llvm/Analysis/TargetTransformInfo.h"
@@ -37,6 +36,7 @@
3736
#include "llvm/LTO/SummaryBasedOptimizations.h"
3837
#include "llvm/MC/SubtargetFeature.h"
3938
#include "llvm/Object/IRObjectFile.h"
39+
#include "llvm/Object/ModuleSummaryAnalysis.h"
4040
#include "llvm/Support/CachePruning.h"
4141
#include "llvm/Support/Debug.h"
4242
#include "llvm/Support/Error.h"

llvm/lib/Object/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ add_llvm_component_library(LLVMObject
1414
MachOObjectFile.cpp
1515
MachOUniversal.cpp
1616
Minidump.cpp
17+
ModuleSummaryAnalysis.cpp
1718
ModuleSymbolTable.cpp
1819
Object.cpp
1920
ObjectFile.cpp

llvm/lib/Analysis/ModuleSummaryAnalysis.cpp renamed to llvm/lib/Object/ModuleSummaryAnalysis.cpp

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
//
1212
//===----------------------------------------------------------------------===//
1313

14-
#include "llvm/Analysis/ModuleSummaryAnalysis.h"
14+
#include "llvm/Object/ModuleSummaryAnalysis.h"
1515
#include "llvm/ADT/ArrayRef.h"
1616
#include "llvm/ADT/DenseSet.h"
1717
#include "llvm/ADT/MapVector.h"
@@ -327,7 +327,8 @@ static void computeFunctionSummary(ModuleSummaryIndex &Index, const Module &M,
327327
// Check if this is an alias to a function. If so, get the
328328
// called aliasee for the checks below.
329329
if (auto *GA = dyn_cast<GlobalAlias>(CalledValue)) {
330-
assert(!CalledFunction && "Expected null called function in callsite for alias");
330+
assert(!CalledFunction &&
331+
"Expected null called function in callsite for alias");
331332
CalledFunction = dyn_cast<Function>(GA->getBaseObject());
332333
}
333334
// Check if this is a direct call to a known function or a known
@@ -460,7 +461,8 @@ static void computeFunctionSummary(ModuleSummaryIndex &Index, const Module &M,
460461
NonRenamableLocal || HasInlineAsmMaybeReferencingInternal;
461462
GlobalValueSummary::GVFlags Flags(F.getLinkage(), NotEligibleForImport,
462463
/* Live = */ false, F.isDSOLocal(),
463-
F.hasLinkOnceODRLinkage() && F.hasGlobalUnnamedAddr());
464+
F.hasLinkOnceODRLinkage() &&
465+
F.hasGlobalUnnamedAddr());
464466
FunctionSummary::FFlags FunFlags{
465467
F.hasFnAttribute(Attribute::ReadNone),
466468
F.hasFnAttribute(Attribute::ReadOnly),
@@ -578,7 +580,8 @@ static void computeVariableSummary(ModuleSummaryIndex &Index,
578580
bool NonRenamableLocal = isNonRenamableLocal(V);
579581
GlobalValueSummary::GVFlags Flags(V.getLinkage(), NonRenamableLocal,
580582
/* Live = */ false, V.isDSOLocal(),
581-
V.hasLinkOnceODRLinkage() && V.hasGlobalUnnamedAddr());
583+
V.hasLinkOnceODRLinkage() &&
584+
V.hasGlobalUnnamedAddr());
582585

583586
VTableFuncList VTableFuncs;
584587
// If splitting is not enabled, then we compute the summary information
@@ -604,7 +607,7 @@ static void computeVariableSummary(ModuleSummaryIndex &Index,
604607
Constant ? false : CanBeInternalized,
605608
Constant, V.getVCallVisibility());
606609
auto GVarSummary = std::make_unique<GlobalVarSummary>(Flags, VarFlags,
607-
RefEdges.takeVector());
610+
RefEdges.takeVector());
608611
if (NonRenamableLocal)
609612
CantBePromoted.insert(V.getGUID());
610613
if (HasBlockAddress)
@@ -614,13 +617,13 @@ static void computeVariableSummary(ModuleSummaryIndex &Index,
614617
Index.addGlobalValueSummary(V, std::move(GVarSummary));
615618
}
616619

617-
static void
618-
computeAliasSummary(ModuleSummaryIndex &Index, const GlobalAlias &A,
619-
DenseSet<GlobalValue::GUID> &CantBePromoted) {
620+
static void computeAliasSummary(ModuleSummaryIndex &Index, const GlobalAlias &A,
621+
DenseSet<GlobalValue::GUID> &CantBePromoted) {
620622
bool NonRenamableLocal = isNonRenamableLocal(A);
621623
GlobalValueSummary::GVFlags Flags(A.getLinkage(), NonRenamableLocal,
622624
/* Live = */ false, A.isDSOLocal(),
623-
A.hasLinkOnceODRLinkage() && A.hasGlobalUnnamedAddr());
625+
A.hasLinkOnceODRLinkage() &&
626+
A.hasGlobalUnnamedAddr());
624627
auto AS = std::make_unique<AliasSummary>(Flags);
625628
auto *Aliasee = A.getBaseObject();
626629
auto AliaseeVI = Index.getValueInfo(Aliasee->getGUID());
@@ -691,12 +694,14 @@ ModuleSummaryIndex llvm::buildModuleSummaryIndex(
691694
GlobalValue *GV = M.getNamedValue(Name);
692695
if (!GV)
693696
return;
694-
assert(GV->isDeclaration() && "Def in module asm already has definition");
697+
assert(GV->isDeclaration() &&
698+
"Def in module asm already has definition");
695699
GlobalValueSummary::GVFlags GVFlags(GlobalValue::InternalLinkage,
696700
/* NotEligibleToImport = */ true,
697701
/* Live = */ true,
698702
/* Local */ GV->isDSOLocal(),
699-
GV->hasLinkOnceODRLinkage() && GV->hasGlobalUnnamedAddr());
703+
GV->hasLinkOnceODRLinkage() &&
704+
GV->hasGlobalUnnamedAddr());
700705
CantBePromoted.insert(GV->getGUID());
701706
// Create the appropriate summary type.
702707
if (Function *F = dyn_cast<Function>(GV)) {
@@ -834,8 +839,8 @@ ModuleSummaryIndex llvm::buildModuleSummaryIndex(
834839

835840
AnalysisKey ModuleSummaryIndexAnalysis::Key;
836841

837-
ModuleSummaryIndex
838-
ModuleSummaryIndexAnalysis::run(Module &M, ModuleAnalysisManager &AM) {
842+
ModuleSummaryIndex ModuleSummaryIndexAnalysis::run(Module &M,
843+
ModuleAnalysisManager &AM) {
839844
ProfileSummaryInfo &PSI = AM.getResult<ProfileSummaryAnalysis>(M);
840845
auto &FAM = AM.getResult<FunctionAnalysisManagerModuleProxy>(M).getManager();
841846
return buildModuleSummaryIndex(

llvm/lib/Passes/PassBuilder.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@
4141
#include "llvm/Analysis/LoopNestAnalysis.h"
4242
#include "llvm/Analysis/MemoryDependenceAnalysis.h"
4343
#include "llvm/Analysis/MemorySSA.h"
44-
#include "llvm/Analysis/ModuleSummaryAnalysis.h"
4544
#include "llvm/Analysis/OptimizationRemarkEmitter.h"
4645
#include "llvm/Analysis/PhiValues.h"
4746
#include "llvm/Analysis/PostDominators.h"
@@ -62,6 +61,7 @@
6261
#include "llvm/IR/PassManager.h"
6362
#include "llvm/IR/SafepointIRVerifier.h"
6463
#include "llvm/IR/Verifier.h"
64+
#include "llvm/Object/ModuleSummaryAnalysis.h"
6565
#include "llvm/Support/CommandLine.h"
6666
#include "llvm/Support/Debug.h"
6767
#include "llvm/Support/FormatVariadic.h"

llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88

99
#include "llvm/Transforms/IPO/ThinLTOBitcodeWriter.h"
1010
#include "llvm/Analysis/BasicAliasAnalysis.h"
11-
#include "llvm/Analysis/ModuleSummaryAnalysis.h"
1211
#include "llvm/Analysis/ProfileSummaryInfo.h"
1312
#include "llvm/Analysis/TypeMetadataUtils.h"
1413
#include "llvm/Bitcode/BitcodeWriter.h"
@@ -18,6 +17,7 @@
1817
#include "llvm/IR/Module.h"
1918
#include "llvm/IR/PassManager.h"
2019
#include "llvm/InitializePasses.h"
20+
#include "llvm/Object/ModuleSummaryAnalysis.h"
2121
#include "llvm/Object/ModuleSymbolTable.h"
2222
#include "llvm/Pass.h"
2323
#include "llvm/Support/ScopedPrinter.h"

0 commit comments

Comments
 (0)