@@ -78,14 +78,14 @@ namespace llvm {
78
78
79
79
// FIXME: Dummy target independent passes definitions that have not yet been
80
80
// ported to new pass manager. Once they do, remove these.
81
- #define DUMMY_FUNCTION_PASS (NAME, PASS_NAME, CONSTRUCTOR ) \
81
+ #define DUMMY_FUNCTION_PASS (NAME, PASS_NAME ) \
82
82
struct PASS_NAME : public PassInfoMixin <PASS_NAME> { \
83
83
template <typename ... Ts> PASS_NAME (Ts &&...) {} \
84
84
PreservedAnalyses run (Function &, FunctionAnalysisManager &) { \
85
85
return PreservedAnalyses::all (); \
86
86
} \
87
87
};
88
- #define DUMMY_MACHINE_MODULE_PASS (NAME, PASS_NAME, CONSTRUCTOR ) \
88
+ #define DUMMY_MACHINE_MODULE_PASS (NAME, PASS_NAME ) \
89
89
struct PASS_NAME : public MachinePassInfoMixin <PASS_NAME> { \
90
90
template <typename ... Ts> PASS_NAME (Ts &&...) {} \
91
91
Error run (Module &, MachineFunctionAnalysisManager &) { \
@@ -96,25 +96,14 @@ namespace llvm {
96
96
llvm_unreachable (" this api is to make new PM api happy" ); \
97
97
} \
98
98
};
99
- #define DUMMY_MACHINE_FUNCTION_PASS (NAME, PASS_NAME, CONSTRUCTOR ) \
99
+ #define DUMMY_MACHINE_FUNCTION_PASS (NAME, PASS_NAME ) \
100
100
struct PASS_NAME : public MachinePassInfoMixin <PASS_NAME> { \
101
101
template <typename ... Ts> PASS_NAME (Ts &&...) {} \
102
102
PreservedAnalyses run (MachineFunction &, \
103
103
MachineFunctionAnalysisManager &) { \
104
104
return PreservedAnalyses::all (); \
105
105
} \
106
106
};
107
- #define DUMMY_MACHINE_FUNCTION_ANALYSIS (NAME, PASS_NAME, CONSTRUCTOR ) \
108
- struct PASS_NAME : public AnalysisInfoMixin <PASS_NAME> { \
109
- template <typename ... Ts> PASS_NAME (Ts &&...) {} \
110
- using Result = struct {}; \
111
- template <typename IRUnitT, typename AnalysisManagerT, \
112
- typename ... ExtraArgTs> \
113
- Result run (IRUnitT &, AnalysisManagerT &, ExtraArgTs &&...) { \
114
- return {}; \
115
- } \
116
- static AnalysisKey Key; \
117
- };
118
107
#include " llvm/Passes/MachinePassRegistry.def"
119
108
120
109
// / This class provides access to building LLVM's passes.
@@ -150,7 +139,6 @@ template <typename DerivedT> class CodeGenPassBuilder {
150
139
void registerModuleAnalyses (ModuleAnalysisManager &) const ;
151
140
void registerFunctionAnalyses (FunctionAnalysisManager &) const ;
152
141
void registerMachineFunctionAnalyses (MachineFunctionAnalysisManager &) const ;
153
- std::pair<StringRef, bool > getPassNameFromLegacyName (StringRef) const ;
154
142
155
143
void registerAnalyses (MachineFunctionAnalysisManager &MFAM) const {
156
144
registerModuleAnalyses (*MFAM.MAM );
@@ -608,8 +596,8 @@ static inline AAManager registerAAAnalyses() {
608
596
template <typename Derived>
609
597
void CodeGenPassBuilder<Derived>::registerModuleAnalyses(
610
598
ModuleAnalysisManager &MAM) const {
611
- #define MODULE_ANALYSIS (NAME, PASS_NAME, CONSTRUCTOR ) \
612
- MAM.registerPass ([&] { return PASS_NAME CONSTRUCTOR ; });
599
+ #define MODULE_ANALYSIS (NAME, CREATE_PASS ) \
600
+ MAM.registerPass ([&] { return CREATE_PASS ; });
613
601
#include " MachinePassRegistry.def"
614
602
derived ().registerTargetAnalysis (MAM);
615
603
}
@@ -619,68 +607,21 @@ void CodeGenPassBuilder<Derived>::registerFunctionAnalyses(
619
607
FunctionAnalysisManager &FAM) const {
620
608
FAM.registerPass ([this ] { return registerAAAnalyses (); });
621
609
622
- #define FUNCTION_ANALYSIS (NAME, PASS_NAME, CONSTRUCTOR ) \
623
- FAM.registerPass ([&] { return PASS_NAME CONSTRUCTOR ; });
610
+ #define FUNCTION_ANALYSIS (NAME, CREATE_PASS ) \
611
+ FAM.registerPass ([&] { return CREATE_PASS ; });
624
612
#include " MachinePassRegistry.def"
625
613
derived ().registerTargetAnalysis (FAM);
626
614
}
627
615
628
616
template <typename Derived>
629
617
void CodeGenPassBuilder<Derived>::registerMachineFunctionAnalyses(
630
618
MachineFunctionAnalysisManager &MFAM) const {
631
- #define MACHINE_FUNCTION_ANALYSIS (NAME, PASS_NAME, CONSTRUCTOR ) \
632
- MFAM.registerPass ([&] { return PASS_NAME CONSTRUCTOR ; });
619
+ #define MACHINE_FUNCTION_ANALYSIS (NAME, CREATE_PASS ) \
620
+ MFAM.registerPass ([&] { return CREATE_PASS ; });
633
621
#include " MachinePassRegistry.def"
634
622
derived ().registerTargetAnalysis (MFAM);
635
623
}
636
624
637
- // FIXME: For new PM, use pass name directly in commandline seems good.
638
- // Translate stringfied pass name to its old commandline name. Returns the
639
- // matching legacy name and a boolean value indicating if the pass is a machine
640
- // pass.
641
- template <typename Derived>
642
- std::pair<StringRef, bool >
643
- CodeGenPassBuilder<Derived>::getPassNameFromLegacyName(StringRef Name) const {
644
- std::pair<StringRef, bool > Ret;
645
- if (Name.empty ())
646
- return Ret;
647
-
648
- #define FUNCTION_PASS (NAME, PASS_NAME, CONSTRUCTOR ) \
649
- if (Name == NAME) \
650
- Ret = {#PASS_NAME, false };
651
- #define DUMMY_FUNCTION_PASS (NAME, PASS_NAME, CONSTRUCTOR ) \
652
- if (Name == NAME) \
653
- Ret = {#PASS_NAME, false };
654
- #define MODULE_PASS (NAME, PASS_NAME, CONSTRUCTOR ) \
655
- if (Name == NAME) \
656
- Ret = {#PASS_NAME, false };
657
- #define DUMMY_MODULE_PASS (NAME, PASS_NAME, CONSTRUCTOR ) \
658
- if (Name == NAME) \
659
- Ret = {#PASS_NAME, false };
660
- #define MACHINE_MODULE_PASS (NAME, PASS_NAME, CONSTRUCTOR ) \
661
- if (Name == NAME) \
662
- Ret = {#PASS_NAME, true };
663
- #define DUMMY_MACHINE_MODULE_PASS (NAME, PASS_NAME, CONSTRUCTOR ) \
664
- if (Name == NAME) \
665
- Ret = {#PASS_NAME, true };
666
- #define MACHINE_FUNCTION_PASS (NAME, PASS_NAME, CONSTRUCTOR ) \
667
- if (Name == NAME) \
668
- Ret = {#PASS_NAME, true };
669
- #define DUMMY_MACHINE_FUNCTION_PASS (NAME, PASS_NAME, CONSTRUCTOR ) \
670
- if (Name == NAME) \
671
- Ret = {#PASS_NAME, true };
672
- #include " llvm/Passes/MachinePassRegistry.def"
673
-
674
- if (Ret.first .empty ())
675
- Ret = derived ().getTargetPassNameFromLegacyName (Name);
676
-
677
- if (Ret.first .empty ())
678
- report_fatal_error (Twine (' \" ' ) + Twine (Name) +
679
- Twine (" \" pass could not be found." ));
680
-
681
- return Ret;
682
- }
683
-
684
625
template <typename Derived>
685
626
void CodeGenPassBuilder<Derived>::addISelPasses(AddIRPass &addPass) const {
686
627
derived ().addGlobalMergePass (addPass);
0 commit comments