diff --git a/lib/Canonicalize/ExitSSAPass.cpp b/lib/Canonicalize/ExitSSAPass.cpp index fd7880538..8b8594a5d 100644 --- a/lib/Canonicalize/ExitSSAPass.cpp +++ b/lib/Canonicalize/ExitSSAPass.cpp @@ -433,11 +433,11 @@ static void replacePHIEquivalenceClass(const SetVector &PHIs, for (Use &U : llvm::make_early_inc_range(PHI->uses())) { revng_log(Log, "in User: " << dumpToString(U.getUser())); - Value *NewOperand = nullptr; - if (isa(U.getUser())) + Value *NewOperand = NewLoad; + if (auto *PHIUser = dyn_cast(U.getUser()); + PHIUser and PHIs.contains(PHIUser)) { NewOperand = UndefValue::get(PHI->getType()); - else - NewOperand = NewLoad; + } revng_log(Log, "replaced with: " << dumpToString(NewOperand)); U.set(NewOperand); }