33 (void)RequireCodeGenSCCOrder;
34 assert(!RequireCodeGenSCCOrder &&
"not implemented");
37 if (VerifyMachineFunction) {
44 assert(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
Statically lint checks LLVM 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)