[llvm] [Instrumentation] Support MachineFunctionProperties (PR #83668)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Mon Mar 4 00:20:17 PST 2024
================
@@ -2415,6 +2416,35 @@ void PrintCrashIRInstrumentation::registerCallbacks(
});
}
+void MachineFunctionPropertiesInstrumentation::registerCallbacks(
+ PassInstrumentationCallbacks &PIC, bool Verify) {
+ if (Verify) {
+ PIC.registerBeforeNonSkippedMachineFunctionPassCallback(
+ [](const detail::MachinePassConcept &Pass, MachineFunction &MF) {
+ auto &MFProps = MF.getProperties();
+ auto RequiredProperties = Pass.getRequiredProperties();
+ if (!MFProps.verifyRequiredProperties(RequiredProperties)) {
+ errs() << "MachineFunctionProperties required by " << Pass.name()
+ << " pass are not met by function " << MF.getName() << ".\n"
+ << "Required properties: ";
+ RequiredProperties.print(errs());
+ errs() << "\nCurrent properties: ";
+ MFProps.print(errs());
+ errs() << "\n";
----------------
arsenm wrote:
```suggestion
errs() << '\n';
```
https://github.com/llvm/llvm-project/pull/83668
More information about the llvm-commits
mailing list