33 (void)RequireCodeGenSCCOrder;
34 assert(!RequireCodeGenSCCOrder &&
"not implemented");
37 if (VerifyMachineFunction) {
44 assert(llvm::any_cast<const MachineFunction *>(&
IR));
46 assert(MF &&
"Machine function should be valid for printing");
47 std::string Banner = std::string(
"After ") + std::string(PassID);
52 for (
auto &
F : InitializationFuncs) {
53 if (
auto Err =
F(M, MFAM))
61 for (; MachineModulePasses.count(
Idx) &&
Idx !=
Size; ++
Idx) {
62 if (
auto Err = MachineModulePasses.at(
Idx)(M, MFAM))
80 if (
F.hasAvailableExternallyLinkage())
86 for (
unsigned I = Begin,
E =
Idx;
I !=
E; ++
I) {
100 for (
auto &
F : FinalizationFuncs) {
101 if (
auto Err =
F(M, MFAM))
static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")
Returns the sub type a function will return at a given Idx Should correspond to the result type of an ExtractValue instruction executed with just that one unsigned Idx
Legalize the Machine IR a function s Machine IR
Provides implementations for PassManager and AnalysisManager template methods.
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
This templated class represents "all analyses that operate over <a particular IR unit>" (e....
A container for analyses that lazily runs them and caches their results.
void invalidate(IRUnitT &IR, const PreservedAnalyses &PA)
Invalidate cached analyses for an IR unit.
Lightweight error class with error context and mandatory checking.
static ErrorSuccess success()
Create a success value.
An AnalysisManager<MachineFunction> that also exposes IR analysis results.
PassT::Result & getResult(Function &F)
Get the result of an analysis pass for a Function.
Error run(Module &M, MachineFunctionAnalysisManager &MFAM)
Run machine passes for a Module.
An analysis that produces MachineInfo for a module.
A Module instance is used to store all the information related to an LLVM module.
Pseudo-analysis pass that exposes the PassInstrumentation to pass managers.
This class provides instrumentation entry points for the Pass Manager, doing calls to callbacks regis...
void pushBeforeNonSkippedPassCallback(CallableT C)
void runAfterPass(const PassT &Pass, const IRUnitT &IR, const PreservedAnalyses &PA) const
AfterPass instrumentation point - takes Pass instance that has just been executed and constant refere...
bool runBeforePass(const PassT &Pass, const IRUnitT &IR) const
BeforePass instrumentation point - takes Pass instance to be executed and constant reference to IR it...
Manages a sequence of passes over a particular unit of IR.
std::vector< std::unique_ptr< PassConceptT > > Passes
A set of analyses that are preserved following a run of a transformation pass.
StringRef - Represent a constant reference to a string, i.e.
This is an optimization pass for GlobalISel generic memory operations.
void verifyMachineFunction(MachineFunctionAnalysisManager *, const std::string &Banner, const MachineFunction &MF)