Skip to content

Commit 18bf7d0

Browse files
committed
Remove MachineFunctionAnalysisInfoMixin
1 parent f3ccf25 commit 18bf7d0

File tree

5 files changed

+14
-38
lines changed

5 files changed

+14
-38
lines changed

llvm/include/llvm/CodeGen/MachinePassManager.h

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -55,19 +55,6 @@ struct MachinePassInfoMixin : public PassInfoMixin<DerivedT> {
5555
}
5656
};
5757

58-
/// A CRTP mix-in that provides informational APIs needed for MachineFunction
59-
/// analysis passes. See also \c PassInfoMixin.
60-
template <typename DerivedT>
61-
struct MachineFunctionAnalysisInfoMixin
62-
: public MachinePassInfoMixin<DerivedT> {
63-
static AnalysisKey *ID() {
64-
static_assert(
65-
std::is_base_of<MachineFunctionAnalysisInfoMixin, DerivedT>::value,
66-
"Must pass the derived type as the template argument!");
67-
return &DerivedT::Key;
68-
}
69-
};
70-
7158
/// An AnalysisManager<MachineFunction> that also exposes IR analysis results.
7259
class MachineFunctionAnalysisManager : public AnalysisManager<MachineFunction> {
7360
public:
@@ -192,7 +179,8 @@ class MachineFunctionPassManager
192179
addRunOnModule<PassT>(P);
193180
}
194181

195-
// Avoid diamond problem.
182+
// Avoid diamond problem. Both MachinePassInfoMixin and PassManager inherit
183+
// PassInfoMixin.
196184
static MachineFunctionProperties getRequiredProperties() {
197185
return MachineFunctionProperties();
198186
}

llvm/include/llvm/CodeGen/MachinePassManagerInternal.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,9 @@ struct PassConcept<MachineFunction, MachineFunctionAnalysisManager>
4141
: RequiredProperties(RequiredProperties), SetProperties(SetProperties),
4242
ClearedProperties(ClearedProperties) {}
4343

44-
MachineFunctionProperties RequiredProperties;
45-
MachineFunctionProperties SetProperties;
46-
MachineFunctionProperties ClearedProperties;
44+
MachineFunctionProperties RequiredProperties = MachineFunctionProperties();
45+
MachineFunctionProperties SetProperties = MachineFunctionProperties();
46+
MachineFunctionProperties ClearedProperties = MachineFunctionProperties();
4747
};
4848

4949
template <typename IRUnitT, typename PassT, typename PreservedAnalysesT,

llvm/include/llvm/IR/PassManager.h

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1299,7 +1299,7 @@ struct RequireAnalysisPass
12991299
}
13001300
static bool isRequired() { return true; }
13011301

1302-
// MachineFunctionPass interface, define Define these separately to prevent
1302+
// MachineFunctionPass interface, define them separately to prevent
13031303
// dependency on CodeGen
13041304
template <typename MachineFunctionT = IRUnitT,
13051305
typename MachineFunctionPropertiesT = MachineFunctionProperties,
@@ -1352,31 +1352,19 @@ struct InvalidateAnalysisPass
13521352
OS << "invalidate<" << PassName << '>';
13531353
}
13541354

1355-
// MachineFunctionPass interface, define Define these separately to prevent
1355+
// MachineFunctionPass interface, define them separately to prevent
13561356
// dependency on CodeGen
1357-
template <typename MachineFunctionPropertiesT = MachineFunctionProperties,
1358-
typename MachineFunctionAnalysisT = AnalysisT,
1359-
typename = std::enable_if_t<std::is_base_of_v<
1360-
MachineFunctionAnalysisInfoMixin<MachineFunctionAnalysisT>,
1361-
MachineFunctionAnalysisT>>>
1357+
template <typename MachineFunctionPropertiesT = MachineFunctionProperties>
13621358
static MachineFunctionPropertiesT getRequiredProperties() {
13631359
return MachineFunctionPropertiesT();
13641360
}
13651361

1366-
template <typename MachineFunctionPropertiesT = MachineFunctionProperties,
1367-
typename MachineFunctionAnalysisT = AnalysisT,
1368-
typename = std::enable_if_t<std::is_base_of_v<
1369-
MachineFunctionAnalysisInfoMixin<MachineFunctionAnalysisT>,
1370-
MachineFunctionAnalysisT>>>
1362+
template <typename MachineFunctionPropertiesT = MachineFunctionProperties>
13711363
static MachineFunctionPropertiesT getSetProperties() {
13721364
return MachineFunctionPropertiesT();
13731365
}
13741366

1375-
template <typename MachineFunctionPropertiesT = MachineFunctionProperties,
1376-
typename MachineFunctionAnalysisT = AnalysisT,
1377-
typename = std::enable_if_t<std::is_base_of_v<
1378-
MachineFunctionAnalysisInfoMixin<MachineFunctionAnalysisT>,
1379-
MachineFunctionAnalysisT>>>
1367+
template <typename MachineFunctionPropertiesT = MachineFunctionProperties>
13801368
static MachineFunctionPropertiesT getClearedProperties() {
13811369
return MachineFunctionPropertiesT();
13821370
}

llvm/unittests/CodeGen/PassManagerTest.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ class TestFunctionAnalysis : public AnalysisInfoMixin<TestFunctionAnalysis> {
5252
AnalysisKey TestFunctionAnalysis::Key;
5353

5454
class TestMachineFunctionAnalysis
55-
: public MachineFunctionAnalysisInfoMixin<TestMachineFunctionAnalysis> {
55+
: public AnalysisInfoMixin<TestMachineFunctionAnalysis> {
5656
public:
5757
struct Result {
5858
Result(int Count) : InstructionCount(Count) {}
@@ -70,7 +70,7 @@ class TestMachineFunctionAnalysis
7070
}
7171

7272
private:
73-
friend MachineFunctionAnalysisInfoMixin<TestMachineFunctionAnalysis>;
73+
friend AnalysisInfoMixin<TestMachineFunctionAnalysis>;
7474
static AnalysisKey Key;
7575
};
7676

llvm/unittests/MIR/PassBuilderCallbacksTest.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -174,8 +174,8 @@ struct MockPassInstrumentationCallbacks {
174174

175175
template <typename DerivedT> class MockAnalysisHandleBase {
176176
public:
177-
class Analysis : public MachineFunctionAnalysisInfoMixin<Analysis> {
178-
friend MachineFunctionAnalysisInfoMixin<Analysis>;
177+
class Analysis : public AnalysisInfoMixin<Analysis> {
178+
friend AnalysisInfoMixin<Analysis>;
179179
friend MockAnalysisHandleBase;
180180
static AnalysisKey Key;
181181

0 commit comments

Comments
 (0)