llvmorg-github-actions[bot] wrote:

<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-backend-webassembly

Author: Aiden Grossman (boomanaiden154)

<details>
<summary>Changes</summary>

Standard NewPM pass porting.


---
Full diff: https://github.com/llvm/llvm-project/pull/209055.diff


5 Files Affected:

- (modified) llvm/lib/Target/WebAssembly/WebAssembly.h (+12-2) 
- (modified) llvm/lib/Target/WebAssembly/WebAssemblyCodeGenPassBuilder.cpp (+1) 
- (modified) llvm/lib/Target/WebAssembly/WebAssemblyNullifyDebugValueLists.cpp 
(+23-8) 
- (modified) llvm/lib/Target/WebAssembly/WebAssemblyPassRegistry.def (+2) 
- (modified) llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp (+2-2) 


``````````diff
diff --git a/llvm/lib/Target/WebAssembly/WebAssembly.h 
b/llvm/lib/Target/WebAssembly/WebAssembly.h
index c4820ce7b330a..1aaca95a1a5a6 100644
--- a/llvm/lib/Target/WebAssembly/WebAssembly.h
+++ b/llvm/lib/Target/WebAssembly/WebAssembly.h
@@ -18,6 +18,8 @@
 #include "GISel/WebAssemblyRegisterBankInfo.h"
 #include "WebAssemblySubtarget.h"
 #include "llvm/CodeGen/GlobalISel/InstructionSelector.h"
+#include "llvm/CodeGen/MachineFunction.h"
+#include "llvm/CodeGen/MachineFunctionAnalysisManager.h"
 #include "llvm/CodeGen/SelectionDAGISel.h"
 #include "llvm/IR/Analysis.h"
 #include "llvm/IR/PassManager.h"
@@ -127,7 +129,15 @@ FunctionPass *createWebAssemblyCleanCodeAfterTrap();
 
 // Late passes.
 FunctionPass *createWebAssemblyReplacePhysRegs();
-FunctionPass *createWebAssemblyNullifyDebugValueLists();
+
+class WebAssemblyNullifyDebugValueListsPass
+    : public RequiredPassInfoMixin<WebAssemblyNullifyDebugValueListsPass> {
+public:
+  PreservedAnalyses run(MachineFunction &MF,
+                        MachineFunctionAnalysisManager &MFAM);
+};
+
+FunctionPass *createWebAssemblyNullifyDebugValueListsLegacyPass();
 FunctionPass *createWebAssemblyOptimizeLiveIntervals();
 FunctionPass *createWebAssemblyMemIntrinsicResults();
 FunctionPass *createWebAssemblyRegStackify(CodeGenOptLevel OptLevel);
@@ -166,7 +176,7 @@ void initializeWebAssemblyLowerBrUnlessPass(PassRegistry &);
 void initializeWebAssemblyLowerEmscriptenEHSjLjLegacyPass(PassRegistry &);
 void initializeWebAssemblyMCLowerPrePassPass(PassRegistry &);
 void initializeWebAssemblyMemIntrinsicResultsPass(PassRegistry &);
-void initializeWebAssemblyNullifyDebugValueListsPass(PassRegistry &);
+void initializeWebAssemblyNullifyDebugValueListsLegacyPass(PassRegistry &);
 void initializeWebAssemblyOptimizeLiveIntervalsPass(PassRegistry &);
 void initializeWebAssemblyPeepholePass(PassRegistry &);
 void initializeWebAssemblyRegColoringPass(PassRegistry &);
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyCodeGenPassBuilder.cpp 
b/llvm/lib/Target/WebAssembly/WebAssemblyCodeGenPassBuilder.cpp
index b5384b3e005c7..d396c6a7495a4 100644
--- a/llvm/lib/Target/WebAssembly/WebAssemblyCodeGenPassBuilder.cpp
+++ b/llvm/lib/Target/WebAssembly/WebAssemblyCodeGenPassBuilder.cpp
@@ -144,6 +144,7 @@ void WebAssemblyCodeGenPassBuilder::addPreEmitPass(
 
   // Nullify DBG_VALUE_LISTs that we cannot handle.
   // TODO(boomanaiden154): WebAssemblyNullifyDebugValueLists
+  addMachineFunctionPass(WebAssemblyNullifyDebugValueListsPass(), PMW);
 
   // Remove any unreachable blocks that may be left floating around.
   // Rare, but possible. Needed for WebAssemblyFixIrreducibleControlFlow.
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyNullifyDebugValueLists.cpp 
b/llvm/lib/Target/WebAssembly/WebAssemblyNullifyDebugValueLists.cpp
index 23062554aa171..1ebe6a785f6d5 100644
--- a/llvm/lib/Target/WebAssembly/WebAssemblyNullifyDebugValueLists.cpp
+++ b/llvm/lib/Target/WebAssembly/WebAssemblyNullifyDebugValueLists.cpp
@@ -15,13 +15,17 @@
 
//===----------------------------------------------------------------------===//
 
 #include "WebAssembly.h"
+#include "llvm/CodeGen/MachineFunctionAnalysisManager.h"
 #include "llvm/CodeGen/MachineFunctionPass.h"
+#include "llvm/CodeGen/MachinePassManager.h"
+#include "llvm/IR/Analysis.h"
 using namespace llvm;
 
 #define DEBUG_TYPE "wasm-nullify-dbg-value-lists"
 
 namespace {
-class WebAssemblyNullifyDebugValueLists final : public MachineFunctionPass {
+class WebAssemblyNullifyDebugValueListsLegacy final
+    : public MachineFunctionPass {
   StringRef getPassName() const override {
     return "WebAssembly Nullify DBG_VALUE_LISTs";
   }
@@ -30,20 +34,19 @@ class WebAssemblyNullifyDebugValueLists final : public 
MachineFunctionPass {
 
 public:
   static char ID; // Pass identification, replacement for typeid
-  WebAssemblyNullifyDebugValueLists() : MachineFunctionPass(ID) {}
+  WebAssemblyNullifyDebugValueListsLegacy() : MachineFunctionPass(ID) {}
 };
 } // end anonymous namespace
 
-char WebAssemblyNullifyDebugValueLists::ID = 0;
-INITIALIZE_PASS(WebAssemblyNullifyDebugValueLists, DEBUG_TYPE,
+char WebAssemblyNullifyDebugValueListsLegacy::ID = 0;
+INITIALIZE_PASS(WebAssemblyNullifyDebugValueListsLegacy, DEBUG_TYPE,
                 "WebAssembly Nullify DBG_VALUE_LISTs", false, false)
 
-FunctionPass *llvm::createWebAssemblyNullifyDebugValueLists() {
-  return new WebAssemblyNullifyDebugValueLists();
+FunctionPass *llvm::createWebAssemblyNullifyDebugValueListsLegacyPass() {
+  return new WebAssemblyNullifyDebugValueListsLegacy();
 }
 
-bool WebAssemblyNullifyDebugValueLists::runOnMachineFunction(
-    MachineFunction &MF) {
+static bool nullifyDebugValueLists(MachineFunction &MF) {
   LLVM_DEBUG(dbgs() << "********** Nullify DBG_VALUE_LISTs **********\n"
                        "********** Function: "
                     << MF.getName() << '\n');
@@ -61,3 +64,15 @@ bool WebAssemblyNullifyDebugValueLists::runOnMachineFunction(
   }
   return Changed;
 }
+
+bool WebAssemblyNullifyDebugValueListsLegacy::runOnMachineFunction(
+    MachineFunction &MF) {
+  return nullifyDebugValueLists(MF);
+}
+
+PreservedAnalyses WebAssemblyNullifyDebugValueListsPass::run(
+    MachineFunction &MF, MachineFunctionAnalysisManager &MFAM) {
+  return nullifyDebugValueLists(MF) ? getMachineFunctionPassPreservedAnalyses()
+                                          .preserveSet<CFGAnalyses>()
+                                    : PreservedAnalyses::all();
+}
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyPassRegistry.def 
b/llvm/lib/Target/WebAssembly/WebAssemblyPassRegistry.def
index a6da272bf3ba7..2c7988c5cef40 100644
--- a/llvm/lib/Target/WebAssembly/WebAssemblyPassRegistry.def
+++ b/llvm/lib/Target/WebAssembly/WebAssemblyPassRegistry.def
@@ -33,4 +33,6 @@ FUNCTION_PASS("wasm-ref-type-mem2local", 
WebAssemblyRefTypeMem2LocalPass())
 #define MACHINE_FUNCTION_PASS(NAME, CREATE_PASS)
 #endif
 MACHINE_FUNCTION_PASS("wasm-isel", WebAssemblyISelDAGToDAGPass(*this, 
getOptLevel()))
+MACHINE_FUNCTION_PASS("wasm-nullify-dbg-value-lists",
+                      WebAssemblyNullifyDebugValueListsPass())
 #undef MACHINE_FUNCTION_PASS
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp 
b/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
index 9d382451f5123..d402cf504d336 100644
--- a/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
+++ b/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
@@ -107,7 +107,7 @@ LLVMInitializeWebAssemblyTarget() {
   initializeWebAssemblyMemIntrinsicResultsPass(PR);
   initializeWebAssemblyRegStackifyPass(PR);
   initializeWebAssemblyRegColoringPass(PR);
-  initializeWebAssemblyNullifyDebugValueListsPass(PR);
+  initializeWebAssemblyNullifyDebugValueListsLegacyPass(PR);
   initializeWebAssemblyFixIrreducibleControlFlowPass(PR);
   initializeWebAssemblyLateEHPreparePass(PR);
   initializeWebAssemblyExceptionInfoPass(PR);
@@ -439,7 +439,7 @@ void WebAssemblyPassConfig::addPreEmitPass() {
   TargetPassConfig::addPreEmitPass();
 
   // Nullify DBG_VALUE_LISTs that we cannot handle.
-  addPass(createWebAssemblyNullifyDebugValueLists());
+  addPass(createWebAssemblyNullifyDebugValueListsLegacyPass());
 
   // Remove any unreachable blocks that may be left floating around.
   // Rare, but possible. Needed for WebAssemblyFixIrreducibleControlFlow.

``````````

</details>


https://github.com/llvm/llvm-project/pull/209055
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to