From 4214623116dc4ccbd534600b9f7220ecf4d41196 Mon Sep 17 00:00:00 2001 From: Pedro Lobo Date: Sun, 16 Mar 2025 18:58:10 +0000 Subject: [PATCH] [WebAssembly] Change placeholder from `undef` to `poison` Use `poison` instead of `undef` as a placeholder for phi entries of unreachable predecessors. --- .../Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp index 2d11019291a7a..0e79a13d4ccaa 100644 --- a/llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp +++ b/llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp @@ -1767,7 +1767,7 @@ void WebAssemblyLowerEmscriptenEHSjLj::handleLongjmpableCallsForWasmSjLj( I->eraseFromParent(); // Add entries for new predecessors to phis in unwind destinations. We use - // 'undef' as a placeholder value. We should make sure the phis have a valid + // 'poison' as a placeholder value. We should make sure the phis have a valid // set of predecessors before running SSAUpdater, because SSAUpdater // internally can use existing phis to gather predecessor info rather than // scanning the actual CFG (See FindPredecessorBlocks in SSAUpdater.cpp for @@ -1776,7 +1776,7 @@ void WebAssemblyLowerEmscriptenEHSjLj::handleLongjmpableCallsForWasmSjLj( for (PHINode &PN : UnwindDest->phis()) { for (auto *NewPred : NewPreds) { assert(PN.getBasicBlockIndex(NewPred) == -1); - PN.addIncoming(UndefValue::get(PN.getType()), NewPred); + PN.addIncoming(PoisonValue::get(PN.getType()), NewPred); } } }