[llvm] Revert "[WebAssembly] Remove FAKE_USEs before ExplicitLocals" (PR #160553)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 24 09:23:23 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-backend-webassembly
Author: Derek Schuff (dschuff)
<details>
<summary>Changes</summary>
Reverts llvm/llvm-project#<!-- -->160228
See https://github.com/llvm/llvm-project/pull/160228#issuecomment-3329752471
---
Full diff: https://github.com/llvm/llvm-project/pull/160553.diff
2 Files Affected:
- (modified) llvm/lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp (-14)
- (removed) llvm/test/CodeGen/WebAssembly/fake-use.ll (-15)
``````````diff
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) }
``````````
</details>
https://github.com/llvm/llvm-project/pull/160553
More information about the llvm-commits
mailing list