Skip to content

Commit df8863f

Browse files
committed
Remove MachinePassKey
1 parent d9bb84d commit df8863f

File tree

4 files changed

+4
-27
lines changed

4 files changed

+4
-27
lines changed

llvm/include/llvm/CodeGen/MachinePassManager.h

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,20 +38,13 @@ class MachineFunction;
3838

3939
extern template class AnalysisManager<MachineFunction>;
4040

41-
/// Like \c AnalysisKey, but only for machine passes.
42-
struct alignas(8) MachinePassKey {};
43-
4441
/// A CRTP mix-in that provides informational APIs needed for machine passes.
4542
///
4643
/// This provides some boilerplate for types that are machine passes. It
4744
/// automatically mixes in \c PassInfoMixin.
4845
template <typename DerivedT>
4946
struct MachinePassInfoMixin : public PassInfoMixin<DerivedT> {
50-
static MachinePassKey *ID() {
51-
static_assert(std::is_base_of<MachinePassInfoMixin, DerivedT>::value,
52-
"Must pass the derived type as the template argument!");
53-
return &DerivedT::Key;
54-
}
47+
// TODO: Add MachineFunctionProperties support.
5548
};
5649

5750
/// An AnalysisManager<MachineFunction> that also exposes IR analysis results.

llvm/include/llvm/Passes/CodeGenPassBuilder.h

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,6 @@ namespace llvm {
101101
MachineFunctionAnalysisManager &) { \
102102
llvm_unreachable("this api is to make new PM api happy"); \
103103
} \
104-
static MachinePassKey Key; \
105104
};
106105
#define DUMMY_MACHINE_FUNCTION_PASS(NAME, PASS_NAME, CONSTRUCTOR) \
107106
struct PASS_NAME : public MachinePassInfoMixin<PASS_NAME> { \
@@ -110,7 +109,6 @@ namespace llvm {
110109
MachineFunctionAnalysisManager &) { \
111110
return PreservedAnalyses::all(); \
112111
} \
113-
static MachinePassKey Key; \
114112
};
115113
#define DUMMY_MACHINE_FUNCTION_ANALYSIS(NAME, PASS_NAME, CONSTRUCTOR) \
116114
struct PASS_NAME : public AnalysisInfoMixin<PASS_NAME> { \
@@ -205,7 +203,6 @@ template <typename DerivedT> class CodeGenPassBuilder {
205203
}
206204

207205
protected:
208-
template <typename PassT> using has_key_t = decltype(PassT::Key);
209206
template <typename PassT>
210207
using is_module_pass_t = decltype(std::declval<PassT &>().run(
211208
std::declval<Module &>(), std::declval<ModuleAnalysisManager &>()));
@@ -265,10 +262,6 @@ template <typename DerivedT> class CodeGenPassBuilder {
265262
: PM(PM), PB(PB) {}
266263

267264
template <typename PassT> void operator()(PassT &&Pass) {
268-
static_assert(
269-
is_detected<has_key_t, PassT>::value,
270-
"Machine function pass must define a static member variable `Key`.");
271-
272265
if (!PB.runBeforeAdding(PassT::name()))
273266
return;
274267

@@ -278,10 +271,10 @@ template <typename DerivedT> class CodeGenPassBuilder {
278271
C(PassT::name());
279272
}
280273

281-
template <typename PassT> void insertPass(MachinePassKey *ID, PassT Pass) {
274+
template <typename PassT> void insertPass(StringRef Name, PassT Pass) {
282275
PB.AfterCallbacks.emplace_back(
283-
[this, ID, Pass = std::move(Pass)](MachinePassKey *PassID) {
284-
if (PassID == ID)
276+
[this, Name, Pass = std::move(Pass)](StringRef PassName) {
277+
if (Name == PassName)
285278
this->PM.addPass(std::move(Pass));
286279
});
287280
}

llvm/lib/Passes/CodeGenPassBuilder.cpp

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,6 @@
1616
using namespace llvm;
1717

1818
namespace llvm {
19-
#define DUMMY_MACHINE_MODULE_PASS(NAME, PASS_NAME, CONSTRUCTOR) \
20-
MachinePassKey PASS_NAME::Key;
21-
#include "llvm/Passes/MachinePassRegistry.def"
22-
#define DUMMY_MACHINE_FUNCTION_PASS(NAME, PASS_NAME, CONSTRUCTOR) \
23-
MachinePassKey PASS_NAME::Key;
2419
#define DUMMY_MACHINE_FUNCTION_ANALYSIS(NAME, PASS_NAME, CONSTRUCTOR) \
2520
AnalysisKey PASS_NAME::Key;
2621
#include "llvm/Passes/MachinePassRegistry.def"

llvm/unittests/MIR/PassBuilderCallbacksTest.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,6 @@ template <typename DerivedT> class MockPassHandleBase {
248248
}
249249

250250
public:
251-
static MachinePassKey Key;
252251
PreservedAnalyses run(MachineFunction &IR,
253252
MachineFunctionAnalysisManager::Base &AM) {
254253
return Handle->run(IR, AM);
@@ -279,9 +278,6 @@ struct MockAnalysisHandle : public MockAnalysisHandleBase<MockAnalysisHandle> {
279278
MockAnalysisHandle() { setDefaults(); }
280279
};
281280

282-
template <typename DerivedT>
283-
MachinePassKey MockPassHandleBase<DerivedT>::Pass::Key;
284-
285281
template <typename DerivedT>
286282
AnalysisKey MockAnalysisHandleBase<DerivedT>::Analysis::Key;
287283

0 commit comments

Comments
 (0)