make LABEL_REF_LABEL a rtx_insn *
authorTrevor Saunders <tbsaunde+gcc@tbsaunde.org>
Fri, 21 Oct 2016 12:32:56 +0000 (12:32 +0000)
committerTrevor Saunders <tbsaunde@gcc.gnu.org>
Fri, 21 Oct 2016 12:32:56 +0000 (12:32 +0000)
commit04a121a757f20a4807d47e1d0c7418145b147d69
tree4a775485f6f8a9a86ec778a975da372fc9d35d4b
parent1d64ceb0579f2da8fec5f26932d5b182653c60d7
make LABEL_REF_LABEL a rtx_insn *

While changing LABEL_REF_LABEL it might as well become an inline
function, so that its clearer what types are involved.  Unfortunately
because it is still possible to use XEXP and related macros on a
LABEL_REF rtx you can still set the field to be a non insn rtx.  The
other unfortunate thing is that the generators actually create LABEL_REF
rtx that refer to MATCH_x rtx, so there we actually need to use XEXP to
bypass the checking this patch adds.

gcc/ChangeLog:

2016-10-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* rtl.h (label_ref_label): New function.
(set_label_ref_label): New function.
(LABEL_REF_LABEL): Delete.
* alias.c (rtx_equal_for_memref_p): Adjust.
* cfgbuild.c (make_edges): Likewise.
(purge_dead_tablejump_edges): Likewise.
* cfgexpand.c (convert_debug_memory_address): Likewise.
* cfgrtl.c (patch_jump_insn): Likewise.
* combine.c (distribute_notes): Likewise.
* cse.c (hash_rtx_cb): Likewise.
(exp_equiv_p): Likewise.
(fold_rtx): Likewise.
(check_for_label_ref): Likewise.
* cselib.c (rtx_equal_for_cselib_1): Likewise.
(cselib_hash_rtx): Likewise.
* emit-rtl.c (mark_label_nuses): Likewise.
* explow.c (convert_memory_address_addr_space_1): Likewise.
* final.c (output_asm_label): Likewise.
(output_addr_const): Likewise.
* gcse.c (add_label_notes): Likewise.
* genconfig.c (walk_insn_part): Likewise.
* genrecog.c (validate_pattern): Likewise.
* ifcvt.c (cond_exec_get_condition): Likewise.
(noce_emit_store_flag): Likewise.
(noce_get_alt_condition): Likewise.
(noce_get_condition): Likewise.
* jump.c (maybe_propagate_label_ref): Likewise.
(mark_jump_label_1): Likewise.
(redirect_exp_1): Likewise.
(rtx_renumbered_equal_p): Likewise.
* lra-constraints.c (operands_match_p): Likewise.
* print-rtl.c (print_value): Likewise.
* reload.c (find_reloads): Likewise.
* reload1.c (set_label_offsets): Likewise.
* reorg.c (get_branch_condition): Likewise.
* rtl-tests.c (test_uncond_jump): Likewise.
* rtl.c (rtx_equal_p_cb): Likewise.
(rtx_equal_p): Likewise.
* rtlanal.c (reg_mentioned_p): Likewise.
(rtx_referenced_p): Likewise.
(get_condition): Likewise.
* varasm.c (const_hash_1): Likewise.
(compare_constant): Likewise.
(const_rtx_hash_1): Likewise.
(output_constant_pool_1): Likewise.

From-SVN: r241401
26 files changed:
gcc/ChangeLog
gcc/alias.c
gcc/cfgbuild.c
gcc/cfgexpand.c
gcc/cfgrtl.c
gcc/combine.c
gcc/cse.c
gcc/cselib.c
gcc/emit-rtl.c
gcc/explow.c
gcc/final.c
gcc/gcse.c
gcc/genconfig.c
gcc/genrecog.c
gcc/ifcvt.c
gcc/jump.c
gcc/lra-constraints.c
gcc/print-rtl.c
gcc/reload.c
gcc/reload1.c
gcc/reorg.c
gcc/rtl-tests.c
gcc/rtl.c
gcc/rtl.h
gcc/rtlanal.c
gcc/varasm.c