[llvm-branch-commits] [llvm] [CodeGen][NPM] Port MachineSanitizerBinaryMetadata to NPM (PR #130069)

Matt Arsenault via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Sun Mar 9 22:47:10 PDT 2025


================
@@ -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:

This pass also violates the assumption that machine passes never modify the underlying IR 

https://github.com/llvm/llvm-project/pull/130069


More information about the llvm-branch-commits mailing list