Skip to content

Commit 69e8157

Browse files
author
liujunchang
committed
[Pass][CodeGen] Add some necessary passes
1 parent 4f56d47 commit 69e8157

File tree

3 files changed

+41
-4
lines changed

3 files changed

+41
-4
lines changed

llvm/include/llvm/CodeGen/CodeGenPassBuilder.h

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,18 @@ namespace llvm {
9090
} \
9191
static AnalysisKey Key; \
9292
};
93-
#include "MachinePassRegistry.def"
93+
#define DUMMY_MACHINE_FUNCTION_ANALYSIS(NAME, PASS_NAME, CONSTRUCTOR) \
94+
struct PASS_NAME : public AnalysisInfoMixin<PASS_NAME> { \
95+
template <typename... Ts> PASS_NAME(Ts &&...) {} \
96+
using Result = struct {}; \
97+
template <typename IRUnitT, typename AnalysisManagerT, \
98+
typename... ExtraArgTs> \
99+
Result run(IRUnitT &, AnalysisManagerT &, ExtraArgTs &&...) { \
100+
return {}; \
101+
} \
102+
static AnalysisKey Key; \
103+
};
104+
#include "llvm/CodeGen/MachinePassRegistry.def"
94105

95106
/// This class provides access to building LLVM's passes.
96107
///

llvm/include/llvm/CodeGen/MachinePassRegistry.def

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ FUNCTION_PASS("replace-with-veclib", ReplaceWithVeclib, ())
4343
FUNCTION_PASS("partially-inline-libcalls", PartiallyInlineLibCallsPass, ())
4444
FUNCTION_PASS("ee-instrument", EntryExitInstrumenterPass, (false))
4545
FUNCTION_PASS("post-inline-ee-instrument", EntryExitInstrumenterPass, (true))
46-
FUNCTION_PASS("expand-large-div-rem", ExpandLargeDivRemPass, ())
47-
FUNCTION_PASS("expand-large-fp-convert", ExpandLargeFpConvertPass, ())
46+
FUNCTION_PASS("expand-large-div-rem", ExpandLargeDivRemPass, (TM))
47+
FUNCTION_PASS("expand-large-fp-convert", ExpandLargeFpConvertPass, (TM))
4848
FUNCTION_PASS("expand-reductions", ExpandReductionsPass, ())
4949
FUNCTION_PASS("expandvp", ExpandVectorPredicationPass, ())
5050
FUNCTION_PASS("lowerinvoke", LowerInvokePass, ())
@@ -136,6 +136,10 @@ DUMMY_MODULE_PASS("lower-emutls", LowerEmuTLSPass, ())
136136
#define DUMMY_MACHINE_MODULE_PASS(NAME, PASS_NAME, CONSTRUCTOR)
137137
#endif
138138
DUMMY_MACHINE_MODULE_PASS("machine-outliner", MachineOutlinerPass, ())
139+
DUMMY_MACHINE_MODULE_PASS("pseudo-probe-inserter", PseudoProbeInserterPass, ())
140+
DUMMY_MACHINE_MODULE_PASS("mir-debugify", DebugifyMachineModule, ())
141+
DUMMY_MACHINE_MODULE_PASS("mir-check-debugify", CheckDebugMachineModulePass, ())
142+
DUMMY_MACHINE_MODULE_PASS("mir-strip-debug", StripDebugMachineModulePass, (OnlyDebugified))
139143
#undef DUMMY_MACHINE_MODULE_PASS
140144

141145
#ifndef DUMMY_MACHINE_FUNCTION_PASS
@@ -175,6 +179,7 @@ DUMMY_MACHINE_FUNCTION_PASS("machine-sink", MachineSinkingPass, ())
175179
DUMMY_MACHINE_FUNCTION_PASS("postra-machine-sink", PostRAMachineSinkingPass, ())
176180
DUMMY_MACHINE_FUNCTION_PASS("peephole-opt", PeepholeOptimizerPass, ())
177181
DUMMY_MACHINE_FUNCTION_PASS("regalloc", RegAllocPass, ())
182+
DUMMY_MACHINE_FUNCTION_PASS("regallocscoringpass", RegAllocScoringPass, ())
178183
DUMMY_MACHINE_FUNCTION_PASS("virtregrewriter", VirtRegRewriterPass, ())
179184
DUMMY_MACHINE_FUNCTION_PASS("stack-slot-coloring", StackSlotColoringPass, ())
180185
DUMMY_MACHINE_FUNCTION_PASS("phi-node-elimination", PHIEliminationPass, ())
@@ -203,9 +208,28 @@ DUMMY_MACHINE_FUNCTION_PASS("irtranslator", IRTranslatorPass, ())
203208
DUMMY_MACHINE_FUNCTION_PASS("regbankselect", RegBankSelectPass, ())
204209
DUMMY_MACHINE_FUNCTION_PASS("instruction-select", InstructionSelectPass, ())
205210
DUMMY_MACHINE_FUNCTION_PASS("reset-machine-function", ResetMachineFunctionPass, ())
206-
DUMMY_MACHINE_FUNCTION_PASS("machineverifier", MachineVerifierPass, ())
211+
DUMMY_MACHINE_FUNCTION_PASS("machineverifier", MachineVerifierPass, (Banner))
207212
DUMMY_MACHINE_FUNCTION_PASS("print-machine-cycles", MachineCycleInfoPrinterPass, ())
208213
DUMMY_MACHINE_FUNCTION_PASS("machine-sanmd", MachineSanitizerBinaryMetadata, ())
209214
DUMMY_MACHINE_FUNCTION_PASS("machine-uniformity", MachineUniformityInfoWrapperPass, ())
210215
DUMMY_MACHINE_FUNCTION_PASS("print-machine-uniformity", MachineUniformityInfoPrinterPass, ())
216+
DUMMY_MACHINE_FUNCTION_PASS("unpack-mi-bundles", UnpackMachineBundlesPass, (Ftor))
217+
DUMMY_MACHINE_FUNCTION_PASS("machineinstr-printer", MachineFunctionPrinterPass, (OS, Banner))
218+
DUMMY_MACHINE_FUNCTION_PASS("kcfi", KCFIPass, ())
219+
DUMMY_MACHINE_FUNCTION_PASS("cfi-fixup", CFIFixupPass, ())
220+
DUMMY_MACHINE_FUNCTION_PASS("mirfs-discriminators", MIRAddFSDiscriminatorsPass, (P))
221+
DUMMY_MACHINE_FUNCTION_PASS("fs-profile-loader", MIRProfileLoaderPass, (File, ProfileFile, P, FS))
222+
DUMMY_MACHINE_FUNCTION_PASS("machine-function-splitter", MachineFunctionSplitterPass, ())
223+
DUMMY_MACHINE_FUNCTION_PASS("bbsections-prepare", BasicBlockSectionsPass, ())
224+
DUMMY_MACHINE_FUNCTION_PASS("bbsections-profile-reader", BasicBlockSectionsProfileReaderPass, (Buf))
225+
DUMMY_MACHINE_FUNCTION_PASS("fixup-statepoint-caller-saved", FixupStatepointCallerSavedPass, ())
226+
DUMMY_MACHINE_FUNCTION_PASS("gc-empty-basic-blocks", GCEmptyBasicBlocksPass, ())
227+
DUMMY_MACHINE_FUNCTION_PASS("stack-frame-layout", StackFrameLayoutAnalysisPass, ())
228+
DUMMY_MACHINE_FUNCTION_PASS("prologepilog", PrologEpilogCodeInserterPass, ())
211229
#undef DUMMY_MACHINE_FUNCTION_PASS
230+
231+
#ifndef DUMMY_MACHINE_FUNCTION_ANALYSIS
232+
#define DUMMY_MACHINE_FUNCTION_ANALYSIS(NAME, PASS_NAME, CONSTRUCTOR)
233+
#endif
234+
DUMMY_MACHINE_FUNCTION_ANALYSIS("gc-analysis", GCMachineCodeAnalysisPass, ())
235+
#undef DUMMY_MACHINE_FUNCTION_ANALYSIS

llvm/lib/CodeGen/CodeGenPassBuilder.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,7 @@ namespace llvm {
2121
#include "llvm/CodeGen/MachinePassRegistry.def"
2222
#define DUMMY_MACHINE_FUNCTION_PASS(NAME, PASS_NAME, CONSTRUCTOR) \
2323
AnalysisKey PASS_NAME::Key;
24+
#define DUMMY_MACHINE_FUNCTION_ANALYSIS(NAME, PASS_NAME, CONSTRUCTOR) \
25+
AnalysisKey PASS_NAME::Key;
2426
#include "llvm/CodeGen/MachinePassRegistry.def"
2527
} // namespace llvm

0 commit comments

Comments
 (0)