================
@@ -20,34 +20,53 @@
 #include "llvm/IR/MDBuilder.h"
 #include "llvm/InitializePasses.h"
 #include "llvm/Pass.h"
+#include "llvm/Transforms/Instrumentation/SanitizerBinaryMetadata.h"
 #include <algorithm>
 
 using namespace llvm;
 
 namespace {
-class MachineSanitizerBinaryMetadata : public MachineFunctionPass {
+class MachineSanitizerBinaryMetadataLegacy : public MachineFunctionPass {
 public:
   static char ID;
 
-  MachineSanitizerBinaryMetadata();
+  MachineSanitizerBinaryMetadataLegacy();
   bool runOnMachineFunction(MachineFunction &F) override;
 };
+
+struct MachineSanitizerBinaryMetadata {
+  bool run(MachineFunction &MF);
+};
+
 } // namespace
 
-INITIALIZE_PASS(MachineSanitizerBinaryMetadata, "machine-sanmd",
+INITIALIZE_PASS(MachineSanitizerBinaryMetadataLegacy, "machine-sanmd",
                 "Machine Sanitizer Binary Metadata", false, false)
 
-char MachineSanitizerBinaryMetadata::ID = 0;
+char MachineSanitizerBinaryMetadataLegacy::ID = 0;
 char &llvm::MachineSanitizerBinaryMetadataID =
-    MachineSanitizerBinaryMetadata::ID;
+    MachineSanitizerBinaryMetadataLegacy::ID;
 
-MachineSanitizerBinaryMetadata::MachineSanitizerBinaryMetadata()
+MachineSanitizerBinaryMetadataLegacy::MachineSanitizerBinaryMetadataLegacy()
     : MachineFunctionPass(ID) {
-  initializeMachineSanitizerBinaryMetadataPass(
+  initializeMachineSanitizerBinaryMetadataLegacyPass(
       *PassRegistry::getPassRegistry());
 }
 
-bool MachineSanitizerBinaryMetadata::runOnMachineFunction(MachineFunction &MF) 
{
+bool MachineSanitizerBinaryMetadataLegacy::runOnMachineFunction(
+    MachineFunction &MF) {
+  return MachineSanitizerBinaryMetadata().run(MF);
+}
+
+PreservedAnalyses
+MachineSanitizerBinaryMetadataPass::run(MachineFunction &MF,
+                                        MachineFunctionAnalysisManager &MFAM) {
+  if (!MachineSanitizerBinaryMetadata().run(MF))
+    return PreservedAnalyses::all();
+  return getMachineFunctionPassPreservedAnalyses();
----------------
arsenm wrote:

Looks like it should preserve nearly everything, particularly CFG 

https://github.com/llvm/llvm-project/pull/130069
_______________________________________________
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to