From 5dc2a8afda812ea6a2cae0ea01a6481b660465b4 Mon Sep 17 00:00:00 2001 From: "Vladimir N. Makarov" Date: Mon, 27 Apr 2026 14:16:43 -0400 Subject: [PATCH] [LRA]: Fix reg notes update There is a typo in using dead_set instead of set in clear_sparseset_regnos and regnos_in_sparseset_p. This can result in wrong unused (stalled) notes and wrong or worse code generation by optimizations using unused notes after RA. gcc/ChangeLog: * lra-lives.cc (clear_sparseset_regnos, regnos_in_sparseset_p): Use set instead of dead_set. --- gcc/lra-lives.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gcc/lra-lives.cc b/gcc/lra-lives.cc index 1d8f53d5960..15b6b7c8c54 100644 --- a/gcc/lra-lives.cc +++ b/gcc/lra-lives.cc @@ -632,7 +632,7 @@ clear_sparseset_regnos (sparseset set, int regno, enum machine_mode mode) { if (regno >= FIRST_PSEUDO_REGISTER) { - sparseset_clear_bit (dead_set, regno); + sparseset_clear_bit (set, regno); return; } for (int last = end_hard_regno (mode, regno); regno < last; regno++) @@ -645,7 +645,7 @@ static bool regnos_in_sparseset_p (sparseset set, int regno, enum machine_mode mode) { if (regno >= FIRST_PSEUDO_REGISTER) - return sparseset_bit_p (dead_set, regno); + return sparseset_bit_p (set, regno); for (int last = end_hard_regno (mode, regno); regno < last; regno++) if (!sparseset_bit_p (set, regno)) return false;