Skip to content

Commit 44a6bda

Browse files
committed
Rename InlineFeatureAnalysis to FunctionPropertiesAnalysis
Rename the pass to be able to extend it to function properties other than inliner features. Reviewed By: mtrofin Differential Revision: https://reviews.llvm.org/D82044
1 parent 02f5837 commit 44a6bda

File tree

8 files changed

+30
-27
lines changed

8 files changed

+30
-27
lines changed

llvm/include/llvm/Analysis/InlineFeaturesAnalysis.h renamed to llvm/include/llvm/Analysis/FunctionPropertiesAnalysis.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
1-
//===- InlineFeaturesAnalysis.h - ML Policy Feature extraction -*- C++ -*-===//
1+
//=- FunctionPropertiesAnalysis.h - Function Properties extraction -*- C++ -=//
22
//
33
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
44
// See https://llvm.org/LICENSE.txt for license information.
55
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
66
//
77
//===----------------------------------------------------------------------===//
88

9-
#ifndef LLVM_INLINEFEATURESANALYSIS_H_
10-
#define LLVM_INLINEFEATURESANALYSIS_H_
9+
#ifndef LLVM_FUNCTIONPROPERTIESANALYSIS_H_
10+
#define LLVM_FUNCTIONPROPERTIESANALYSIS_H_
1111

1212
#include "llvm/IR/PassManager.h"
1313

1414
namespace llvm {
1515
class Function;
1616

17-
class InlineFeaturesAnalysis
18-
: public AnalysisInfoMixin<InlineFeaturesAnalysis> {
17+
class FunctionPropertiesAnalysis
18+
: public AnalysisInfoMixin<FunctionPropertiesAnalysis> {
1919
public:
2020
static AnalysisKey Key;
2121
struct Result {
@@ -42,4 +42,4 @@ class InlineFeaturesAnalysis
4242
};
4343

4444
} // namespace llvm
45-
#endif // LLVM_INLINEFEATURESANALYSIS_H_
45+
#endif // LLVM_FUNCTIONPROPERTIESANALYSIS_H_

llvm/lib/Analysis/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ add_llvm_component_library(LLVMAnalysis
4949
DomTreeUpdater.cpp
5050
DominanceFrontier.cpp
5151
EHPersonalities.cpp
52+
FunctionPropertiesAnalysis.cpp
5253
GlobalsModRef.cpp
5354
GuardUtils.cpp
5455
HeatUtils.cpp
@@ -57,7 +58,6 @@ add_llvm_component_library(LLVMAnalysis
5758
IndirectCallPromotionAnalysis.cpp
5859
InlineCost.cpp
5960
InlineAdvisor.cpp
60-
InlineFeaturesAnalysis.cpp
6161
InlineSizeEstimatorAnalysis.cpp
6262
InstCount.cpp
6363
InstructionPrecedenceTracking.cpp

llvm/lib/Analysis/InlineFeaturesAnalysis.cpp renamed to llvm/lib/Analysis/FunctionPropertiesAnalysis.cpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
//===- InlineFeaturesAnalysis.cpp - Feature extraction for ML Policies ----===//
1+
//===- FunctionPropertiesAnalysis.cpp - Function properties extraction ----===//
22
//
33
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
44
// See https://llvm.org/LICENSE.txt for license information.
@@ -11,15 +11,16 @@
1111
//
1212
//===----------------------------------------------------------------------===//
1313

14-
#include "llvm/Analysis/InlineFeaturesAnalysis.h"
14+
#include "llvm/Analysis/FunctionPropertiesAnalysis.h"
1515
#include "llvm/IR/Instructions.h"
1616

1717
using namespace llvm;
1818

19-
AnalysisKey InlineFeaturesAnalysis::Key;
19+
AnalysisKey FunctionPropertiesAnalysis::Key;
2020

21-
InlineFeaturesAnalysis::Result
22-
InlineFeaturesAnalysis::run(const Function &F, FunctionAnalysisManager &FAM) {
21+
FunctionPropertiesAnalysis::Result
22+
FunctionPropertiesAnalysis::run(const Function &F,
23+
FunctionAnalysisManager &FAM) {
2324
Result Ret;
2425
Ret.Uses = ((!F.hasLocalLinkage()) ? 1 : 0) + F.getNumUses();
2526
for (const auto &BB : F) {

llvm/lib/Analysis/MLInlineAdvisor.cpp

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020

2121
#include "llvm/ADT/SCCIterator.h"
2222
#include "llvm/Analysis/CallGraph.h"
23+
#include "llvm/Analysis/FunctionPropertiesAnalysis.h"
2324
#include "llvm/Analysis/InlineCost.h"
24-
#include "llvm/Analysis/InlineFeaturesAnalysis.h"
2525
#include "llvm/Analysis/MLInlineAdvisor.h"
2626
#include "llvm/Analysis/MLModelRunner.h"
2727
#include "llvm/Analysis/OptimizationRemarkEmitter.h"
@@ -118,7 +118,8 @@ void MLInlineAdvisor::onPassEntry() {
118118
}
119119

120120
int64_t MLInlineAdvisor::getLocalCalls(Function &F) {
121-
return FAM.getResult<InlineFeaturesAnalysis>(F).DirectCallsToDefinedFunctions;
121+
return FAM.getResult<FunctionPropertiesAnalysis>(F)
122+
.DirectCallsToDefinedFunctions;
122123
}
123124

124125
// Update the internal state of the advisor, and force invalidate feature
@@ -133,7 +134,7 @@ void MLInlineAdvisor::onSuccessfulInlining(const MLInlineAdvice &Advice,
133134
Function *Callee = Advice.getCallee();
134135

135136
// The caller features aren't valid anymore.
136-
FAM.invalidate<InlineFeaturesAnalysis>(*Caller);
137+
FAM.invalidate<FunctionPropertiesAnalysis>(*Caller);
137138
int64_t IRSizeAfter =
138139
getIRSize(*Caller) + (CalleeWasDeleted ? 0 : Advice.CalleeIRSize);
139140
CurrentIRSize += IRSizeAfter - (Advice.CallerIRSize + Advice.CalleeIRSize);
@@ -146,14 +147,15 @@ void MLInlineAdvisor::onSuccessfulInlining(const MLInlineAdvice &Advice,
146147
// For edges, we 'forget' the edges that the caller and callee used to have
147148
// before inlining, and add back what they currently have together.
148149
int64_t NewCallerAndCalleeEdges =
149-
FAM.getResult<InlineFeaturesAnalysis>(*Caller)
150+
FAM.getResult<FunctionPropertiesAnalysis>(*Caller)
150151
.DirectCallsToDefinedFunctions;
151152

152153
if (CalleeWasDeleted)
153154
--NodeCount;
154155
else
155-
NewCallerAndCalleeEdges += FAM.getResult<InlineFeaturesAnalysis>(*Callee)
156-
.DirectCallsToDefinedFunctions;
156+
NewCallerAndCalleeEdges +=
157+
FAM.getResult<FunctionPropertiesAnalysis>(*Callee)
158+
.DirectCallsToDefinedFunctions;
157159
EdgeCount += (NewCallerAndCalleeEdges - Advice.CallerAndCalleeEdges);
158160
assert(CurrentIRSize >= 0 && EdgeCount >= 0 && NodeCount >= 0);
159161
}
@@ -224,8 +226,8 @@ std::unique_ptr<InlineAdvice> MLInlineAdvisor::getAdvice(CallBase &CB) {
224226
NrCtantParams += (isa<Constant>(*I));
225227
}
226228

227-
auto &CallerBefore = FAM.getResult<InlineFeaturesAnalysis>(Caller);
228-
auto &CalleeBefore = FAM.getResult<InlineFeaturesAnalysis>(Callee);
229+
auto &CallerBefore = FAM.getResult<FunctionPropertiesAnalysis>(Caller);
230+
auto &CalleeBefore = FAM.getResult<FunctionPropertiesAnalysis>(Callee);
229231

230232
ModelRunner->setFeature(FeatureIndex::CalleeBasicBlockCount,
231233
CalleeBefore.BasicBlockCount);

llvm/lib/Passes/PassBuilder.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,10 @@
3131
#include "llvm/Analysis/DemandedBits.h"
3232
#include "llvm/Analysis/DependenceAnalysis.h"
3333
#include "llvm/Analysis/DominanceFrontier.h"
34+
#include "llvm/Analysis/FunctionPropertiesAnalysis.h"
3435
#include "llvm/Analysis/GlobalsModRef.h"
3536
#include "llvm/Analysis/IVUsers.h"
3637
#include "llvm/Analysis/InlineAdvisor.h"
37-
#include "llvm/Analysis/InlineFeaturesAnalysis.h"
3838
#include "llvm/Analysis/InlineSizeEstimatorAnalysis.h"
3939
#include "llvm/Analysis/LazyCallGraph.h"
4040
#include "llvm/Analysis/LazyValueInfo.h"

llvm/lib/Passes/PassRegistry.def

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ FUNCTION_ANALYSIS("domfrontier", DominanceFrontierAnalysis())
132132
FUNCTION_ANALYSIS("loops", LoopAnalysis())
133133
FUNCTION_ANALYSIS("lazy-value-info", LazyValueAnalysis())
134134
FUNCTION_ANALYSIS("da", DependenceAnalysis())
135-
FUNCTION_ANALYSIS("inliner-features", InlineFeaturesAnalysis())
135+
FUNCTION_ANALYSIS("func-properties", FunctionPropertiesAnalysis())
136136
FUNCTION_ANALYSIS("inliner-size-estimator", InlineSizeEstimatorAnalysis())
137137
FUNCTION_ANALYSIS("memdep", MemoryDependenceAnalysis())
138138
FUNCTION_ANALYSIS("memoryssa", MemorySSAAnalysis())

llvm/unittests/Analysis/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ add_llvm_unittest_with_input_files(AnalysisTests
2727
DivergenceAnalysisTest.cpp
2828
DomTreeUpdaterTest.cpp
2929
GlobalsModRefTest.cpp
30-
InlineFeaturesAnalysisTest.cpp
30+
FunctionPropertiesAnalysisTest.cpp
3131
IVDescriptorsTest.cpp
3232
LazyCallGraphTest.cpp
3333
LoadsTest.cpp

llvm/unittests/Analysis/InlineFeaturesAnalysisTest.cpp renamed to llvm/unittests/Analysis/FunctionPropertiesAnalysisTest.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
//===- InlineFeaturesAnalysisTest.cpp - inline features unit tests --------===//
1+
//===- FunctionPropertiesAnalysisTest.cpp - function properties unit tests-===//
22
//
33
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
44
// See https://llvm.org/LICENSE.txt for license information.
55
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
66
//
77
//===----------------------------------------------------------------------===//
88

9-
#include "llvm/Analysis/InlineFeaturesAnalysis.h"
9+
#include "llvm/Analysis/FunctionPropertiesAnalysis.h"
1010
#include "llvm/AsmParser/Parser.h"
1111
#include "llvm/IR/Instructions.h"
1212
#include "llvm/IR/LLVMContext.h"
@@ -24,7 +24,7 @@ static std::unique_ptr<Module> parseIR(LLVMContext &C, const char *IR) {
2424
return Mod;
2525
}
2626

27-
TEST(InlineFeaturesTest, BasicTest) {
27+
TEST(FunctionPropertiesTest, BasicTest) {
2828
LLVMContext C;
2929
std::unique_ptr<Module> M = parseIR(C,
3030
R"IR(
@@ -59,7 +59,7 @@ define internal i32 @top() {
5959
)IR");
6060

6161
FunctionAnalysisManager FAM;
62-
InlineFeaturesAnalysis FA;
62+
FunctionPropertiesAnalysis FA;
6363

6464
auto BranchesFeatures = FA.run(*M->getFunction("branches"), FAM);
6565
EXPECT_EQ(BranchesFeatures.BasicBlockCount, 4);

0 commit comments

Comments
 (0)