diff options
| author | Max Bernstein <max.bernstein@shopify.com> | 2025-03-20 13:28:40 -0400 |
|---|---|---|
| committer | Takashi Kokubun <takashikkbn@gmail.com> | 2025-04-18 21:53:00 +0900 |
| commit | a5330afed9ca07018c5c2109f9ed8bbcd4609426 (patch) | |
| tree | d683ef8dbe37ef3cefbb9d7676e825918fe815bb | |
| parent | eb3045f23d600a22c0261b2a3f9043fddf08c45e (diff) | |
Fix another case of single-arm match
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/13131
| -rw-r--r-- | zjit/src/hir.rs | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/zjit/src/hir.rs b/zjit/src/hir.rs index 8e0e907da4..6957f2a41a 100644 --- a/zjit/src/hir.rs +++ b/zjit/src/hir.rs @@ -540,13 +540,10 @@ impl Function { let rpo = self.rpo(); // Walk the graph, computing predecessor blocks for block in &rpo { - for insn in &self.blocks[block.0].insns { - match self.find(*insn) { - Insn::IfTrue { target, .. } - | Insn::IfFalse { target, .. } - | Insn::Jump(target) => - preds[target.target.0].push(*insn), - _ => {} + for insn_id in &self.blocks[block.0].insns { + let insn = self.find(*insn_id); + if let Insn::IfTrue { target, .. } | Insn::IfFalse { target, .. } | Insn::Jump(target) = insn { + preds[target.target.0].push(*insn_id); } } } |
