[llvm] Revert "[WebAssembly] Remove FAKE_USEs before ExplicitLocals" (PR #160553)
Derek Schuff via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 24 09:22:43 PDT 2025
https://github.com/dschuff created https://github.com/llvm/llvm-project/pull/160553
Reverts llvm/llvm-project#160228
See https://github.com/llvm/llvm-project/pull/160228#issuecomment-3329752471
>From 9119e5cb91a81ec07a84dca19b88960f501b46e7 Mon Sep 17 00:00:00 2001
From: Derek Schuff <dschuff at chromium.org>
Date: Wed, 24 Sep 2025 09:22:03 -0700
Subject: [PATCH] Revert "[WebAssembly] Remove FAKE_USEs before ExplicitLocals
(#160228)"
This reverts commit d27654f9d8e2d0637a2f3de0d2aad7d70b3f71f8.
---
.../WebAssembly/WebAssemblyExplicitLocals.cpp | 14 --------------
llvm/test/CodeGen/WebAssembly/fake-use.ll | 15 ---------------
2 files changed, 29 deletions(-)
delete mode 100644 llvm/test/CodeGen/WebAssembly/fake-use.ll
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp
index 5c3127e2d3dc6..e6486e247209b 100644
--- a/llvm/lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp
+++ b/llvm/lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp
@@ -216,18 +216,6 @@ static MachineInstr *findStartOfTree(MachineOperand &MO,
return Def;
}
-// FAKE_USEs are no-ops, so remove them here so that the values used by them
-// will be correctly dropped later.
-static void removeFakeUses(MachineFunction &MF) {
- SmallVector<MachineInstr *> ToDelete;
- for (auto &MBB : MF)
- for (auto &MI : MBB)
- if (MI.isFakeUse())
- ToDelete.push_back(&MI);
- for (auto *MI : ToDelete)
- MI->eraseFromParent();
-}
-
bool WebAssemblyExplicitLocals::runOnMachineFunction(MachineFunction &MF) {
LLVM_DEBUG(dbgs() << "********** Make Locals Explicit **********\n"
"********** Function: "
@@ -238,8 +226,6 @@ bool WebAssemblyExplicitLocals::runOnMachineFunction(MachineFunction &MF) {
WebAssemblyFunctionInfo &MFI = *MF.getInfo<WebAssemblyFunctionInfo>();
const auto *TII = MF.getSubtarget<WebAssemblySubtarget>().getInstrInfo();
- removeFakeUses(MF);
-
// Map non-stackified virtual registers to their local ids.
DenseMap<unsigned, unsigned> Reg2Local;
diff --git a/llvm/test/CodeGen/WebAssembly/fake-use.ll b/llvm/test/CodeGen/WebAssembly/fake-use.ll
deleted file mode 100644
index d5732e628440a..0000000000000
--- a/llvm/test/CodeGen/WebAssembly/fake-use.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llc < %s | llvm-mc -triple=wasm32-unknown-unknown
-
-target triple = "wasm32-unknown-unknown"
-
-define void @fake_use_test() {
- %t = call i32 @foo()
- tail call void (...) @llvm.fake.use(i32 %t)
- ret void
-}
-
-declare void @foo()
-; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite)
-declare void @llvm.fake.use(...) #0
-
-attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) }
More information about the llvm-commits
mailing list