https://gcc.gnu.org/g:40b414ce63a5448495df9161aea0bfb495b47c11
commit r17-5242-g40b414ce63a5448495df9161aea0bfb495b47c11 Author: Trevor Saunders <[email protected]> Date: Wed Oct 14 14:22:45 2026 +0200 use label_ref_label more gcc/ChangeLog: * cfgbuild.cc (make_edges): Read labels with label_ref_label. (mark_tablejump_edge): Take an rtx_insn *. (purge_dead_tablejump_edges): Read labels with label_ref_label. * cprop.cc (bypass_block): Likewise. Diff: --- gcc/cfgbuild.cc | 9 +++++---- gcc/cprop.cc | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/gcc/cfgbuild.cc b/gcc/cfgbuild.cc index deb6c87e49b5..ddc2eb6b647d 100644 --- a/gcc/cfgbuild.cc +++ b/gcc/cfgbuild.cc @@ -265,7 +265,7 @@ make_edges (basic_block min, basic_block max, int update_p) for (j = GET_NUM_ELEM (vec) - 1; j >= 0; --j) make_label_edge (edge_cache, bb, - XEXP (RTVEC_ELT (vec, j), 0), 0); + label_ref_label (RTVEC_ELT (vec, j)), 0); /* Some targets (eg, ARM) emit a conditional jump that also contains the out-of-range target. Scan for these and @@ -298,7 +298,8 @@ make_edges (basic_block min, basic_block max, int update_p) int i, n = ASM_OPERANDS_LABEL_LENGTH (tmp); for (i = 0; i < n; ++i) make_label_edge (edge_cache, bb, - XEXP (ASM_OPERANDS_LABEL (tmp, i), 0), 0); + label_ref_label (ASM_OPERANDS_LABEL (tmp, i)), + 0); } /* Otherwise, we have a plain conditional or unconditional jump. */ @@ -381,7 +382,7 @@ make_edges (basic_block min, basic_block max, int update_p) } static void -mark_tablejump_edge (rtx label) +mark_tablejump_edge (rtx_insn *label) { basic_block bb; @@ -406,7 +407,7 @@ purge_dead_tablejump_edges (basic_block bb, rtx_jump_table_data *table) vec = table->get_labels (); for (j = GET_NUM_ELEM (vec) - 1; j >= 0; --j) - mark_tablejump_edge (XEXP (RTVEC_ELT (vec, j), 0)); + mark_tablejump_edge (label_ref_label (RTVEC_ELT (vec, j))); /* Some targets (eg, ARM) emit a conditional jump that also contains the out-of-range target. Scan for these and diff --git a/gcc/cprop.cc b/gcc/cprop.cc index 8dc30c7537b5..d5ba8b1ba09c 100644 --- a/gcc/cprop.cc +++ b/gcc/cprop.cc @@ -1702,7 +1702,7 @@ bypass_block (basic_block bb, rtx_insn *setcc, rtx_insn *jump) } else if (GET_CODE (new_rtx) == LABEL_REF) { - dest = BLOCK_FOR_INSN (XEXP (new_rtx, 0)); + dest = BLOCK_FOR_INSN (label_ref_label (new_rtx)); /* Don't bypass edges containing instructions. */ if (dest) {
