[llvm] 3bdf05a - Revert "[WebAssembly] Remove FAKE_USEs before ExplicitLocals" (#160553)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 24 09:55:52 PDT 2025
Author: Derek Schuff
Date: 2025-09-24T16:55:48Z
New Revision: 3bdf05a05a8128931684556dea7edf4ebc1053d0
URL: https://github.com/llvm/llvm-project/commit/3bdf05a05a8128931684556dea7edf4ebc1053d0
DIFF: https://github.com/llvm/llvm-project/commit/3bdf05a05a8128931684556dea7edf4ebc1053d0.diff
LOG: Revert "[WebAssembly] Remove FAKE_USEs before ExplicitLocals" (#160553)
Reverts llvm/llvm-project#160228
See
https://github.com/llvm/llvm-project/pull/160228#issuecomment-3329752471
Added:
Modified:
llvm/lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp
Removed:
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