diff options
author | Steven Bosscher <steven@gcc.gnu.org> | 2013-03-29 12:11:10 +0000 |
---|---|---|
committer | Steven Bosscher <steven@gcc.gnu.org> | 2013-03-29 12:11:10 +0000 |
commit | 34f0d87acdd74c804d95a89e2adcd31b6aa30dbd (patch) | |
tree | 8230af9f599ea90460f26ce09380d6f167c3704d /gcc/final.c | |
parent | 4ac761b0ba58f8095878de085e4de4ef90b68a3f (diff) | |
download | gcc-34f0d87acdd74c804d95a89e2adcd31b6aa30dbd.zip gcc-34f0d87acdd74c804d95a89e2adcd31b6aa30dbd.tar.gz gcc-34f0d87acdd74c804d95a89e2adcd31b6aa30dbd.tar.bz2 |
cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu of tests for JUMP_P and a ADDR_DIFF_VEC or...
* cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
(control_flow_insn_p): Likewise.
* cfgrtl.c (duplicate_insn_chain): Likewise.
* final.c (get_attr_length_1): Likewise.
(shorten_branches): Likewise.
(final_scan_insn): Likewise.
* function.c (instantiate_virtual_regs): Likewise.
* gcse.c (insert_insn_end_basic_block): Likewise.
* ira-costs.c (scan_one_insn): Likewise.
* lra-eliminations.c (eliminate_regs_in_insn): Likewise.
* lra.c (check_rtl): Likewise.
* reload1.c (elimination_costs_in_insn): Likewise.
* reorg.c (follow_jumps): Likewise.
* config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
(thumb_far_jump_used_p): Likewise.
* config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
(workaround_speculation): Likewise.
(add_sched_insns_for_speculation): Likewise.
* config/c6x/c6x.c (reorg_emit_nops): Likewise.
* config/frv/frv.c (frv_function_contains_far_jump): Likewise.
(frv_for_each_packet): Likewise.
* config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
* config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
(final_emit_insn_group_barriers): Likewise.
* config/m32r/m32r.c (m32r_is_insn): Likewise.
* config/mips/mips.c (USEFUL_INSN_P): Likewise.
(mips16_insn_length): Likewise.
* config/pa/pa.c (pa_reorg): Likewise.
(pa_combine_instructions): Likewise.
* config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
* config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
(sh_reorg): Likewise.
(split_branches): Likewise.
* config/spu/spu.c (get_branch_target): Likewise.
* config/s390/s390.c (s390_chunkify_start): Simplify logic using
JUMP_TABLE_DATA_P.
From-SVN: r197234
Diffstat (limited to 'gcc/final.c')
-rw-r--r-- | gcc/final.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/gcc/final.c b/gcc/final.c index d25b8e0..577d5eb 100644 --- a/gcc/final.c +++ b/gcc/final.c @@ -396,7 +396,7 @@ get_attr_length_1 (rtx insn, int (*fallback_fn) (rtx)) case JUMP_INSN: body = PATTERN (insn); - if (GET_CODE (body) == ADDR_VEC || GET_CODE (body) == ADDR_DIFF_VEC) + if (JUMP_TABLE_DATA_P (insn)) { /* Alignment is machine-dependent and should be handled by ADDR_VEC_ALIGN. */ @@ -1020,7 +1020,7 @@ shorten_branches (rtx first) int min_align; addr_diff_vec_flags flags; - if (!JUMP_P (insn) + if (! JUMP_TABLE_DATA_P (insn) || GET_CODE (PATTERN (insn)) != ADDR_DIFF_VEC) continue; pat = PATTERN (insn); @@ -1094,7 +1094,7 @@ shorten_branches (rtx first) continue; body = PATTERN (insn); - if (GET_CODE (body) == ADDR_VEC || GET_CODE (body) == ADDR_DIFF_VEC) + if (JUMP_TABLE_DATA_P (insn)) { /* This only takes room if read-only data goes into the text section. */ @@ -1230,7 +1230,8 @@ shorten_branches (rtx first) INSN_ADDRESSES (uid) = insn_current_address; #ifdef CASE_VECTOR_SHORTEN_MODE - if (optimize && JUMP_P (insn) + if (optimize + && JUMP_TABLE_DATA_P (insn) && GET_CODE (PATTERN (insn)) == ADDR_DIFF_VEC) { rtx body = PATTERN (insn); @@ -2404,7 +2405,7 @@ final_scan_insn (rtx insn, FILE *file, int optimize_p ATTRIBUTE_UNUSED, /* Detect insns that are really jump-tables and output them as such. */ - if (GET_CODE (body) == ADDR_VEC || GET_CODE (body) == ADDR_DIFF_VEC) + if (JUMP_TABLE_DATA_P (insn)) { #if !(defined(ASM_OUTPUT_ADDR_VEC) || defined(ASM_OUTPUT_ADDR_DIFF_VEC)) int vlen, idx; |