From 2c3c49dec31e8302e4cabceaaf1f9d04f968f41c Mon Sep 17 00:00:00 2001 From: Rodney Brown Date: Fri, 4 Aug 2000 20:28:08 +0000 Subject: alias.c (mark_constant_function): Use INSN_P. * alias.c (mark_constant_function): Use INSN_P. (init_alias_analysis): Likewise. * combine.c (combine_instructions): Use INSN_P. (can_combine_p): Likewise. (try_combine): Likewise. (distribute_notes): Likewise. (distribute_links): Likewise. * cse.c (cse_around_loop): Use INSN_P. (invalidate_skipped_block): Likewise. (cse_set_around_loop): Likewise. (cse_end_of_basic_block): Likewise. (delete_trivially_dead_insns): Likewise. * emit-rtl.c (unshare_all_rtl_again): Use INSN_P. (unshare_all_rtl_1): Likewise. (next_cc0_user): Likewise. (try_split make_insn_raw): Likewise. (remove_unnecessary_notes): Likewise. * final.c (shorten_branches): Use INSN_P. (leaf_renumber_regs): Likewise. (leaf_renumber_regs_insn): Likewise. * flow.c (find_label_refs): Use INSN_P. (verify_wide_reg): Likewise. (notice_stack_pointer_modification): Likewise. (count_or_remove_death_notes): Likewise. (verify_flow_info): Likewise. (clear_log_links): Likewise. * function.c (fixup_var_refs_insns): Use INSN_P. (compute_insns_for_mem): Likewise. * gcse.c (alloc_gcse_mem): Use INSN_P. (compute_sets): Likewise. (compute_hash_table): Likewise. (classic_gcse): Likewise. (cprop): Likewise. (insert_insn_end_bb): Likewise. (delete_null_pointer_checks_1): Likewise. * global.c (expand_preferences): Use INSN_P. (build_insn_chain): Likewise. * graph.c (node_data): Use INSN_P. * haifa-sched.c (priority): Use INSN_P. (rm_line_notes): Likewise. (rm_other_notes): Likewise. (find_insn_reg_weight): Likewise. (init_target_units): Likewise. (schedule_block): Likewise. (compute_block_forward_dependences): Likewise. (debug_dependencies): Likewise. (set_priorities): Likewise. * integrate.c (function_cannot_inline_p): Use INSN_P. (save_parm_insns): Likewise. (copy_insn_list): Likewise. * jump.c (mark_all_labels): Use INSN_P. (never_reached_warning): Likewise. * lcm.c (optimize_mode_switching): Use INSN_P. * local-alloc.c (validate_equiv_mem): Use INSN_P. (memref_used_between_p): Likewise. (update_equiv_regs): Likewise. (block_alloc): Likewise. (no_conflict_p): Likewise. * loop.c (scan_loop): Use INSN_P. (find_and_verify_loops): Likewise. (count_loop_regs_set): Likewise. (loop_reg_used_before_p): Likewise. (strength_reduce): Likewise. (recombine_givs): Likewise. (check_dbra_loop): Likewise. (load_mems): Likewise. (try_copy_prop): Likewise. * print-rtl.c (print_rtx): Use INSN_P. * recog.c (find_single_use): Use INSN_P. * reg-stack.c (stack_regs_mentioned): Use INSN_P. (next_flags_user): Likewise. (swap_rtx_condition): Likewise. * regmove.c (mark_flags_life_zones): Use INSN_P. (optimize_reg_copy_1): Likewise. (optimize_reg_copy_2): Likewise. (optimize_reg_copy_3): Likewise. (reg_is_remote_constant_p): Likewise. (fixup_match_2): Likewise. (regmove_optimize): Likewise. (fixup_match_1): Likewise. * regrename.c (build_def_use): Use INSN_P. (replace_reg_in_block): Likewise. (consider_use): Likewise. * reload.c (find_equiv_reg): Use INSN_P. * reload1.c (reload): Use INSN_P. (maybe_fix_stack_asms): Likewise. (calculate_needs_all_insns): Likewise. (reload_as_needed): Likewise. (emit_output_reload_insns): Likewise. (delete_address_reloads_1): Likewise. (reload_cse_regs_1): Likewise. (reload_combine): Likewise. (reload_cse_move2add): Likewise. * reorg.c (redundant_insn): Use INSN_P. (dbr_schedule): Likewise. * resource.c (find_dead_or_set_registers): Use INSN_P. (mark_target_live_regs): Likewise. * rtlanal.c (reg_used_between_p): Use INSN_P. (reg_referenced_between_p): Likewise. (reg_set_between_p): Likewise. (reg_set_p): Likewise. (single_set): Likewise. (multiple_sets): Likewise. (find_last_value): Likewise. (reg_set_last): Likewise. (find_reg_note): Likewise. (find_regno_note): Likewise. * sibcall.c (sequence_uses_addressof): Use INSN_P. * simplify-rtx.c (cselib_process_insn): Use INSN_P. * ssa.c (find_evaluations): Use INSN_P. (rename_block): Likewise. (rename_equivalent_regs): Likewise. * unroll.c (loop_find_equiv_value): Use INSN_P. (set_dominates_use): Likewise. * varasm.c (mark_constant_pool): Use INSN_P. (mark_constants): Likewise. * config/alpha/alpha.c (alpha_does_function_need_gp): Use INSN_P. (alphaev4_next_group): Likewise. (alphaev5_next_group): Likewise. * config/c4x/c4x.c (c4x_process_after_reload): Use INSN_P. (c4x_rptb_rpts_p): Likewise. * config/mips/mips.c (mips16_optimize_gp): Use INSN_P. * config/rs6000/rs6000.c (uses_TOC): Use INSN_P. (rs6000_adjust_priority): Likewise. * config/sh/sh.c (sh_loop_align): Use INSN_P. (machine_dependent_reorg): Likewise. (split_branches): Likewise. * config/tahoe/tahoe.c (tahoe_cmp_check): Use INSN_P. From-SVN: r35494 --- gcc/ChangeLog | 131 +++++++++++++++++++++++++++++++++++++++++++++ gcc/alias.c | 5 +- gcc/combine.c | 24 ++++----- gcc/config/alpha/alpha.c | 10 ++-- gcc/config/c4x/c4x.c | 6 +-- gcc/config/mips/mips.c | 8 +-- gcc/config/rs6000/rs6000.c | 4 +- gcc/config/sh/sh.c | 10 ++-- gcc/config/tahoe/tahoe.c | 2 +- gcc/cse.c | 21 ++++---- gcc/emit-rtl.c | 17 +++--- gcc/final.c | 12 ++--- gcc/flow.c | 12 ++--- gcc/function.c | 4 +- gcc/gcse.c | 20 +++---- gcc/global.c | 9 ++-- gcc/graph.c | 2 +- gcc/haifa-sched.c | 35 ++++++------ gcc/integrate.c | 6 +-- gcc/jump.c | 4 +- gcc/lcm.c | 2 +- gcc/local-alloc.c | 13 +++-- gcc/loop.c | 34 ++++++------ gcc/print-rtl.c | 2 +- gcc/recog.c | 2 +- gcc/reg-stack.c | 8 ++- gcc/regmove.c | 35 ++++++------ gcc/regrename.c | 6 +-- gcc/reload.c | 2 +- gcc/reload1.c | 25 +++++---- gcc/reorg.c | 4 +- gcc/resource.c | 4 +- gcc/rtlanal.c | 21 ++++---- gcc/sibcall.c | 2 +- gcc/simplify-rtx.c | 2 +- gcc/ssa.c | 6 +-- gcc/unroll.c | 6 +-- gcc/varasm.c | 6 +-- 38 files changed, 311 insertions(+), 211 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7450039..d982406 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,134 @@ +2000-08-04 Rodney Brown + + * alias.c (mark_constant_function): Use INSN_P. + (init_alias_analysis): Likewise. + * combine.c (combine_instructions): Use INSN_P. + (can_combine_p): Likewise. + (try_combine): Likewise. + (distribute_notes): Likewise. + (distribute_links): Likewise. + * cse.c (cse_around_loop): Use INSN_P. + (invalidate_skipped_block): Likewise. + (cse_set_around_loop): Likewise. + (cse_end_of_basic_block): Likewise. + (delete_trivially_dead_insns): Likewise. + * emit-rtl.c (unshare_all_rtl_again): Use INSN_P. + (unshare_all_rtl_1): Likewise. + (next_cc0_user): Likewise. + (try_split make_insn_raw): Likewise. + (remove_unnecessary_notes): Likewise. + * final.c (shorten_branches): Use INSN_P. + (leaf_renumber_regs): Likewise. + (leaf_renumber_regs_insn): Likewise. + * flow.c (find_label_refs): Use INSN_P. + (verify_wide_reg): Likewise. + (notice_stack_pointer_modification): Likewise. + (count_or_remove_death_notes): Likewise. + (verify_flow_info): Likewise. + (clear_log_links): Likewise. + * function.c (fixup_var_refs_insns): Use INSN_P. + (compute_insns_for_mem): Likewise. + * gcse.c (alloc_gcse_mem): Use INSN_P. + (compute_sets): Likewise. + (compute_hash_table): Likewise. + (classic_gcse): Likewise. + (cprop): Likewise. + (insert_insn_end_bb): Likewise. + (delete_null_pointer_checks_1): Likewise. + * global.c (expand_preferences): Use INSN_P. + (build_insn_chain): Likewise. + * graph.c (node_data): Use INSN_P. + * haifa-sched.c (priority): Use INSN_P. + (rm_line_notes): Likewise. + (rm_other_notes): Likewise. + (find_insn_reg_weight): Likewise. + (init_target_units): Likewise. + (schedule_block): Likewise. + (compute_block_forward_dependences): Likewise. + (debug_dependencies): Likewise. + (set_priorities): Likewise. + * integrate.c (function_cannot_inline_p): Use INSN_P. + (save_parm_insns): Likewise. + (copy_insn_list): Likewise. + * jump.c (mark_all_labels): Use INSN_P. + (never_reached_warning): Likewise. + * lcm.c (optimize_mode_switching): Use INSN_P. + * local-alloc.c (validate_equiv_mem): Use INSN_P. + (memref_used_between_p): Likewise. + (update_equiv_regs): Likewise. + (block_alloc): Likewise. + (no_conflict_p): Likewise. + * loop.c (scan_loop): Use INSN_P. + (find_and_verify_loops): Likewise. + (count_loop_regs_set): Likewise. + (loop_reg_used_before_p): Likewise. + (strength_reduce): Likewise. + (recombine_givs): Likewise. + (check_dbra_loop): Likewise. + (load_mems): Likewise. + (try_copy_prop): Likewise. + * print-rtl.c (print_rtx): Use INSN_P. + * recog.c (find_single_use): Use INSN_P. + * reg-stack.c (stack_regs_mentioned): Use INSN_P. + (next_flags_user): Likewise. + (swap_rtx_condition): Likewise. + * regmove.c (mark_flags_life_zones): Use INSN_P. + (optimize_reg_copy_1): Likewise. + (optimize_reg_copy_2): Likewise. + (optimize_reg_copy_3): Likewise. + (reg_is_remote_constant_p): Likewise. + (fixup_match_2): Likewise. + (regmove_optimize): Likewise. + (fixup_match_1): Likewise. + * regrename.c (build_def_use): Use INSN_P. + (replace_reg_in_block): Likewise. + (consider_use): Likewise. + * reload.c (find_equiv_reg): Use INSN_P. + * reload1.c (reload): Use INSN_P. + (maybe_fix_stack_asms): Likewise. + (calculate_needs_all_insns): Likewise. + (reload_as_needed): Likewise. + (emit_output_reload_insns): Likewise. + (delete_address_reloads_1): Likewise. + (reload_cse_regs_1): Likewise. + (reload_combine): Likewise. + (reload_cse_move2add): Likewise. + * reorg.c (redundant_insn): Use INSN_P. + (dbr_schedule): Likewise. + * resource.c (find_dead_or_set_registers): Use INSN_P. + (mark_target_live_regs): Likewise. + * rtlanal.c (reg_used_between_p): Use INSN_P. + (reg_referenced_between_p): Likewise. + (reg_set_between_p): Likewise. + (reg_set_p): Likewise. + (single_set): Likewise. + (multiple_sets): Likewise. + (find_last_value): Likewise. + (reg_set_last): Likewise. + (find_reg_note): Likewise. + (find_regno_note): Likewise. + * sibcall.c (sequence_uses_addressof): Use INSN_P. + * simplify-rtx.c (cselib_process_insn): Use INSN_P. + * ssa.c (find_evaluations): Use INSN_P. + (rename_block): Likewise. + (rename_equivalent_regs): Likewise. + * unroll.c (loop_find_equiv_value): Use INSN_P. + (set_dominates_use): Likewise. + * varasm.c (mark_constant_pool): Use INSN_P. + (mark_constants): Likewise. + * config/alpha/alpha.c (alpha_does_function_need_gp): Use INSN_P. + (alphaev4_next_group): Likewise. + (alphaev5_next_group): Likewise. + * config/c4x/c4x.c (c4x_process_after_reload): Use INSN_P. + (c4x_rptb_rpts_p): Likewise. + * config/mips/mips.c (mips16_optimize_gp): Use INSN_P. + * config/rs6000/rs6000.c (uses_TOC): Use INSN_P. + (rs6000_adjust_priority): Likewise. + * config/sh/sh.c (sh_loop_align): Use INSN_P. + (machine_dependent_reorg): Likewise. + (split_branches): Likewise. + * config/tahoe/tahoe.c (tahoe_cmp_check): Use INSN_P. + Fri Aug 4 11:43:49 2000 John Wehle (john@feith.com) * combine.c (recog_for_combine): Remove the old notes diff --git a/gcc/alias.c b/gcc/alias.c index 28f34c1..f879da3 100644 --- a/gcc/alias.c +++ b/gcc/alias.c @@ -1833,8 +1833,7 @@ mark_constant_function () /* Determine if this is a constant function. */ for (insn = get_insns (); insn; insn = NEXT_INSN (insn)) - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i' - && nonlocal_reference_p (insn)) + if (INSN_P (insn) && nonlocal_reference_p (insn)) return; /* Mark the function. */ @@ -1979,7 +1978,7 @@ init_alias_analysis () /* Walk the insns adding values to the new_reg_base_value array. */ for (insn = get_insns (); insn; insn = NEXT_INSN (insn)) { - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) { rtx note, set; diff --git a/gcc/combine.c b/gcc/combine.c index 0d43891..e424317 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -588,7 +588,7 @@ combine_instructions (f, nregs) subst_low_cuid = i; subst_insn = insn; - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) { note_stores (PATTERN (insn), set_nonzero_bits_and_sign_copies, NULL); @@ -629,7 +629,7 @@ combine_instructions (f, nregs) if (GET_CODE (insn) == CODE_LABEL) label_tick++; - else if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + else if (INSN_P (insn)) { /* See if we know about function return values before this insn based upon SUBREG flags. */ @@ -1166,8 +1166,7 @@ can_combine_p (insn, i3, pred, succ, pdest, psrc) return 0; for (p = NEXT_INSN (insn); p != i3; p = NEXT_INSN (p)) - if (GET_RTX_CLASS (GET_CODE (p)) == 'i' - && p != succ && volatile_refs_p (PATTERN (p))) + if (INSN_P (p) && p != succ && volatile_refs_p (PATTERN (p))) return 0; } @@ -1182,8 +1181,7 @@ can_combine_p (insn, i3, pred, succ, pdest, psrc) they might affect machine state. */ for (p = NEXT_INSN (insn); p != i3; p = NEXT_INSN (p)) - if (GET_RTX_CLASS (GET_CODE (p)) == 'i' - && p != succ && volatile_insn_p (PATTERN (p))) + if (INSN_P (p) && p != succ && volatile_insn_p (PATTERN (p))) return 0; /* If INSN or I2 contains an autoincrement or autodecrement, @@ -1518,9 +1516,7 @@ try_combine (i3, i2, i1, new_direct_jump_p) REG_LIBCALL note since we don't want to disrupt the contiguity of a libcall. */ - if (GET_RTX_CLASS (GET_CODE (i3)) != 'i' - || GET_RTX_CLASS (GET_CODE (i2)) != 'i' - || (i1 && GET_RTX_CLASS (GET_CODE (i1)) != 'i') + if (! INSN_P (i3) || ! INSN_P (i2) || (i1 && ! INSN_P (i1)) #if 0 /* ??? This gives worse code, and appears to be unnecessary, since no pass after flow uses REG_LIBCALL/REG_RETVAL notes. */ @@ -2323,8 +2319,7 @@ try_combine (i3, i2, i1, new_direct_jump_p) || insn != BLOCK_HEAD (this_basic_block + 1)); insn = NEXT_INSN (insn)) { - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i' - && reg_referenced_p (ni2dest, PATTERN (insn))) + if (INSN_P (insn) && reg_referenced_p (ni2dest, PATTERN (insn))) { for (link = LOG_LINKS (insn); link; link = XEXP (link, 1)) @@ -2525,7 +2520,7 @@ try_combine (i3, i2, i1, new_direct_jump_p) temp && (this_basic_block == n_basic_blocks - 1 || BLOCK_HEAD (this_basic_block) != temp); temp = NEXT_INSN (temp)) - if (temp != i3 && GET_RTX_CLASS (GET_CODE (temp)) == 'i') + if (temp != i3 && INSN_P (temp)) for (link = LOG_LINKS (temp); link; link = XEXP (link, 1)) if (XEXP (link, 0) == i2) XEXP (link, 0) = i3; @@ -12213,7 +12208,7 @@ distribute_notes (notes, from_insn, i3, i2, elim_i2, elim_i1) for (tem = PREV_INSN (i3); place == 0; tem = PREV_INSN (tem)) { - if (GET_RTX_CLASS (GET_CODE (tem)) != 'i') + if (! INSN_P (tem)) { if (tem == bb->head) break; @@ -12554,8 +12549,7 @@ distribute_links (links) (insn && (this_basic_block == n_basic_blocks - 1 || BLOCK_HEAD (this_basic_block + 1) != insn)); insn = NEXT_INSN (insn)) - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i' - && reg_overlap_mentioned_p (reg, PATTERN (insn))) + if (INSN_P (insn) && reg_overlap_mentioned_p (reg, PATTERN (insn))) { if (reg_referenced_p (reg, PATTERN (insn))) place = insn; diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c index d1eae54..1332af7 100644 --- a/gcc/config/alpha/alpha.c +++ b/gcc/config/alpha/alpha.c @@ -4174,7 +4174,7 @@ alpha_does_function_need_gp () pop_topmost_sequence (); for (; insn; insn = NEXT_INSN (insn)) - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i' + if (INSN_P (insn) && GET_CODE (PATTERN (insn)) != USE && GET_CODE (PATTERN (insn)) != CLOBBER) { @@ -5453,7 +5453,7 @@ alphaev4_next_group (insn, pin_use, plen) len = in_use = 0; - if (GET_RTX_CLASS (GET_CODE (insn)) != 'i' + if (! INSN_P (insn) || GET_CODE (PATTERN (insn)) == CLOBBER || GET_CODE (PATTERN (insn)) == USE) goto next_and_done; @@ -5518,7 +5518,7 @@ alphaev4_next_group (insn, pin_use, plen) next: insn = next_nonnote_insn (insn); - if (!insn || GET_RTX_CLASS (GET_CODE (insn)) != 'i') + if (!insn || ! INSN_P (insn)) goto done; /* Let Haifa tell us where it thinks insn group boundaries are. */ @@ -5553,7 +5553,7 @@ alphaev5_next_group (insn, pin_use, plen) len = in_use = 0; - if (GET_RTX_CLASS (GET_CODE (insn)) != 'i' + if (! INSN_P (insn) || GET_CODE (PATTERN (insn)) == CLOBBER || GET_CODE (PATTERN (insn)) == USE) goto next_and_done; @@ -5651,7 +5651,7 @@ alphaev5_next_group (insn, pin_use, plen) next: insn = next_nonnote_insn (insn); - if (!insn || GET_RTX_CLASS (GET_CODE (insn)) != 'i') + if (!insn || ! INSN_P (insn)) goto done; /* Let Haifa tell us where it thinks insn group boundaries are. */ diff --git a/gcc/config/c4x/c4x.c b/gcc/config/c4x/c4x.c index 261215f..c8d865c 100644 --- a/gcc/config/c4x/c4x.c +++ b/gcc/config/c4x/c4x.c @@ -2353,7 +2353,7 @@ c4x_process_after_reload (first) for (insn = first; insn; insn = NEXT_INSN (insn)) { /* Look for insn. */ - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) { int insn_code_number; rtx old; @@ -4696,13 +4696,13 @@ c4x_rptb_rpts_p (insn, op) insn = next_nonnote_insn (insn); /* This should be our first insn in the loop. */ - if (GET_RTX_CLASS (GET_CODE (insn)) != 'i') + if (! INSN_P (insn)) return 0; /* Skip any notes. */ insn = next_nonnote_insn (insn); - if (GET_RTX_CLASS (GET_CODE (insn)) != 'i') + if (! INSN_P (insn)) return 0; if (recog_memoized (insn) != CODE_FOR_rptb_end) diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index f4d0d12..85e28c5 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -8699,7 +8699,7 @@ mips16_optimize_gp (first) { rtx set; - if (GET_RTX_CLASS (GET_CODE (insn)) != 'i') + if (! INSN_P (insn)) continue; set = PATTERN (insn); @@ -8798,10 +8798,10 @@ mips16_optimize_gp (first) if (next == NULL_RTX) break; - if (GET_RTX_CLASS (GET_CODE (insn)) != 'i') + if (! INSN_P (insn)) continue; - if (GET_RTX_CLASS (GET_CODE (next)) != 'i') + if (! INSN_P (next)) continue; set1 = PATTERN (insn); @@ -8854,7 +8854,7 @@ mips16_optimize_gp (first) { rtx set; - if (GET_RTX_CLASS (GET_CODE (insn)) != 'i') + if (! INSN_P (insn)) continue; set = PATTERN (insn); diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 67ff693..4c6577c 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -4950,7 +4950,7 @@ uses_TOC () rtx insn; for (insn = get_insns (); insn; insn = NEXT_INSN (insn)) - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) { rtx pat = PATTERN (insn); int i; @@ -6975,7 +6975,7 @@ rs6000_adjust_priority (insn, priority) operationss. */ #if 0 - if (GET_RTX_CLASS (GET_CODE (insn)) != 'i') + if (! INSN_P (insn)) return priority; if (GET_CODE (PATTERN (insn)) == USE) diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c index e63796a..3c49386 100644 --- a/gcc/config/sh/sh.c +++ b/gcc/config/sh/sh.c @@ -2825,7 +2825,7 @@ sh_loop_align (label) while (next && GET_CODE (next) == CODE_LABEL); if (! next - || GET_RTX_CLASS (GET_CODE (next)) != 'i' + || ! INSN_P (next) || GET_CODE (PATTERN (next)) == ADDR_DIFF_VEC || recog_memoized (next) == CODE_FOR_consttable_2) return 0; @@ -2863,7 +2863,7 @@ machine_dependent_reorg (first) dependent REG_NOTE, or some other approach entirely. */ for (insn = first; insn; insn = NEXT_INSN (insn)) { - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) { rtx note; @@ -2928,7 +2928,7 @@ machine_dependent_reorg (first) scan && GET_CODE (scan) != CODE_LABEL; scan = PREV_INSN (scan)) { - if (GET_RTX_CLASS (GET_CODE (scan)) != 'i') + if (! INSN_P (scan)) continue; if (! reg_mentioned_p (reg, scan)) @@ -2981,7 +2981,7 @@ machine_dependent_reorg (first) if (GET_CODE (scan) == CODE_LABEL && ! foundinsn) break; - if (GET_RTX_CLASS (GET_CODE (scan)) != 'i') + if (! INSN_P (scan)) continue; /* Don't try to trace forward past a JUMP. To optimize @@ -3309,7 +3309,7 @@ split_branches (first) bzero ((char *) uid_branch, max_uid * sizeof *uid_branch); for (insn = first; insn; insn = NEXT_INSN (insn)) - if (GET_RTX_CLASS (GET_CODE (insn)) != 'i') + if (! INSN_P (insn)) continue; else if (INSN_DELETED_P (insn)) { diff --git a/gcc/config/tahoe/tahoe.c b/gcc/config/tahoe/tahoe.c index 8ad8bef..cbd6871 100644 --- a/gcc/config/tahoe/tahoe.c +++ b/gcc/config/tahoe/tahoe.c @@ -543,7 +543,7 @@ tahoe_cmp_check (insn, op, max) && (INTVAL (op) < 0 || INTVAL (op) > max)) return 0; - if (GET_RTX_CLASS (GET_CODE (next)) == 'i') + if (INSN_P (next)) { next = PATTERN (next); if (GET_CODE (next) == SET diff --git a/gcc/cse.c b/gcc/cse.c index f7f5bd4..5992158 100644 --- a/gcc/cse.c +++ b/gcc/cse.c @@ -6306,12 +6306,11 @@ cse_around_loop (loop_start) && NOTE_LINE_NUMBER (insn) == NOTE_INSN_LOOP_END); insn = NEXT_INSN (insn)) { - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i' + if (INSN_P (insn) && (GET_CODE (PATTERN (insn)) == SET || GET_CODE (PATTERN (insn)) == CLOBBER)) cse_set_around_loop (PATTERN (insn), insn, loop_start); - else if (GET_RTX_CLASS (GET_CODE (insn)) == 'i' - && GET_CODE (PATTERN (insn)) == PARALLEL) + else if (INSN_P (insn) && GET_CODE (PATTERN (insn)) == PARALLEL) for (i = XVECLEN (PATTERN (insn), 0) - 1; i >= 0; i--) if (GET_CODE (XVECEXP (PATTERN (insn), 0, i)) == SET || GET_CODE (XVECEXP (PATTERN (insn), 0, i)) == CLOBBER) @@ -6371,7 +6370,7 @@ invalidate_skipped_block (start) for (insn = start; insn && GET_CODE (insn) != CODE_LABEL; insn = NEXT_INSN (insn)) { - if (GET_RTX_CLASS (GET_CODE (insn)) != 'i') + if (! INSN_P (insn)) continue; if (GET_CODE (insn) == CALL_INSN) @@ -6471,7 +6470,7 @@ cse_set_around_loop (x, insn, loop_start) rtx q; rtx cse_check_loop_start_value = SET_SRC (x); for (q = p; q != loop_start; q = NEXT_INSN (q)) - if (GET_RTX_CLASS (GET_CODE (q)) == 'i') + if (INSN_P (q)) note_stores (PATTERN (q), cse_check_loop_start, &cse_check_loop_start_value); @@ -6543,8 +6542,7 @@ cse_end_of_basic_block (insn, data, follow_jumps, after_loop, skip_blocks) rtx p = insn, q; int nsets = 0; int low_cuid = INSN_CUID (insn), high_cuid = INSN_CUID (insn); - rtx next = - GET_RTX_CLASS (GET_CODE (insn)) == 'i' ? insn : next_real_insn (insn); + rtx next = INSN_P (insn) ? insn : next_real_insn (insn); int path_size = data->path_size; int path_entry = 0; int i; @@ -6602,8 +6600,7 @@ cse_end_of_basic_block (insn, data, follow_jumps, after_loop, skip_blocks) /* A PARALLEL can have lots of SETs in it, especially if it is really an ASM_OPERANDS. */ - if (GET_RTX_CLASS (GET_CODE (p)) == 'i' - && GET_CODE (PATTERN (p)) == PARALLEL) + if (INSN_P (p) && GET_CODE (PATTERN (p)) == PARALLEL) nsets += XVECLEN (PATTERN (p), 0); else if (GET_CODE (p) != NOTE) nsets += 1; @@ -7270,7 +7267,7 @@ delete_trivially_dead_insns (insns, nreg) insn in the function. We must not skip that insn or we may end up deleting code that is not really dead. */ insn = get_last_insn (); - if (GET_RTX_CLASS (GET_CODE (insn)) != 'i') + if (! INSN_P (insn)) insn = prev_real_insn (insn); for (; insn; insn = prev) @@ -7331,7 +7328,7 @@ delete_trivially_dead_insns (insns, nreg) else if (GET_CODE (SET_DEST (PATTERN (insn))) == CC0 && ! side_effects_p (SET_SRC (PATTERN (insn))) && ((tem = next_nonnote_insn (insn)) == 0 - || GET_RTX_CLASS (GET_CODE (tem)) != 'i' + || ! INSN_P (tem) || ! reg_referenced_p (cc0_rtx, PATTERN (tem)))) ; #endif @@ -7363,7 +7360,7 @@ delete_trivially_dead_insns (insns, nreg) else if (GET_CODE (SET_DEST (elt)) == CC0 && ! side_effects_p (SET_SRC (elt)) && ((tem = next_nonnote_insn (insn)) == 0 - || GET_RTX_CLASS (GET_CODE (tem)) != 'i' + || ! INSN_P (tem) || ! reg_referenced_p (cc0_rtx, PATTERN (tem)))) ; #endif diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 122c585..ec8f06d 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -1761,7 +1761,7 @@ unshare_all_rtl_again (insn) tree decl; for (p = insn; p; p = NEXT_INSN (p)) - if (GET_RTX_CLASS (GET_CODE (p)) == 'i') + if (INSN_P (p)) { reset_used_flags (PATTERN (p)); reset_used_flags (REG_NOTES (p)); @@ -1788,7 +1788,7 @@ unshare_all_rtl_1 (insn) rtx insn; { for (; insn; insn = NEXT_INSN (insn)) - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) { PATTERN (insn) = copy_rtx_if_shared (PATTERN (insn)); REG_NOTES (insn) = copy_rtx_if_shared (REG_NOTES (insn)); @@ -2354,8 +2354,7 @@ next_cc0_user (insn) if (insn && GET_CODE (insn) == INSN && GET_CODE (PATTERN (insn)) == SEQUENCE) insn = XVECEXP (PATTERN (insn), 0, 0); - if (insn && GET_RTX_CLASS (GET_CODE (insn)) == 'i' - && reg_mentioned_p (cc0_rtx, PATTERN (insn))) + if (insn && INSN_P (insn) && reg_mentioned_p (cc0_rtx, PATTERN (insn))) return insn; return 0; @@ -2450,10 +2449,8 @@ try_split (pat, trial, last) set LAST and continue from the insn after the one returned. We can't use next_active_insn here since AFTER may be a note. Ignore deleted insns, which can be occur if not optimizing. */ - for (tem = NEXT_INSN (before); tem != after; - tem = NEXT_INSN (tem)) - if (! INSN_DELETED_P (tem) - && GET_RTX_CLASS (GET_CODE (tem)) == 'i') + for (tem = NEXT_INSN (before); tem != after; tem = NEXT_INSN (tem)) + if (! INSN_DELETED_P (tem) && INSN_P (tem)) tem = try_split (PATTERN (tem), tem, 1); } /* Avoid infinite loop if the result matches the original pattern. */ @@ -2503,7 +2500,7 @@ make_insn_raw (pattern) #ifdef ENABLE_RTL_CHECKING if (insn - && GET_RTX_CLASS (GET_CODE (insn)) == 'i' + && INSN_P (insn) && (returnjump_p (insn) || (GET_CODE (insn) == SET && SET_DEST (insn) == pc_rtx))) @@ -2865,7 +2862,7 @@ remove_unnecessary_notes () don't include labels; if the only thing in the block is a label, then there are still no PC values that lie within the block. */ - if (GET_RTX_CLASS (GET_CODE (prev)) == 'i') + if (INSN_P (prev)) break; /* We're only interested in NOTEs. */ diff --git a/gcc/final.c b/gcc/final.c index 7bdd403..e580d5b 100644 --- a/gcc/final.c +++ b/gcc/final.c @@ -990,7 +990,7 @@ shorten_branches (first) we must split them before we compute the address/length info. */ for (insn = NEXT_INSN (first); insn; insn = NEXT_INSN (insn)) - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) { rtx old = insn; /* Don't split the insn if it has been deleted. */ @@ -1037,7 +1037,7 @@ shorten_branches (first) int log; INSN_SHUID (insn) = i++; - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) { /* reorg might make the first insn of a loop being run once only, and delete the label in front of it. Then we want to apply @@ -1086,7 +1086,7 @@ shorten_branches (first) { rtx label; - for (label = insn; label && GET_RTX_CLASS (GET_CODE (label)) != 'i'; + for (label = insn; label && ! INSN_P (label); label = NEXT_INSN (label)) if (GET_CODE (label) == CODE_LABEL) { @@ -4206,10 +4206,10 @@ leaf_renumber_regs (first) The reg-notes can contain frame pointer refs, and renumbering them could crash, and should not be needed. */ for (insn = first; insn; insn = NEXT_INSN (insn)) - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) leaf_renumber_regs_insn (PATTERN (insn)); for (insn = current_function_epilogue_delay_list; insn; insn = XEXP (insn, 1)) - if (GET_RTX_CLASS (GET_CODE (XEXP (insn, 0))) == 'i') + if (INSN_P (XEXP (insn, 0))) leaf_renumber_regs_insn (PATTERN (XEXP (insn, 0))); } @@ -4255,7 +4255,7 @@ leaf_renumber_regs_insn (in_rtx) in_rtx->used = 1; } - if (GET_RTX_CLASS (GET_CODE (in_rtx)) == 'i') + if (INSN_P (in_rtx)) { /* Inside a SEQUENCE, we find insns. Renumber just the patterns of these insns, diff --git a/gcc/flow.c b/gcc/flow.c index 0b92d48..1839530 100644 --- a/gcc/flow.c +++ b/gcc/flow.c @@ -570,7 +570,7 @@ find_label_refs (f, lvl) rtx insn; for (insn = f; insn; insn = NEXT_INSN (insn)) - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) { rtx note; @@ -2708,7 +2708,7 @@ verify_wide_reg (regno, head, end) { while (1) { - if (GET_RTX_CLASS (GET_CODE (head)) == 'i' + if (INSN_P (head) && for_each_rtx (&PATTERN (head), verify_wide_reg_1, ®no)) return; if (head == end) @@ -2990,7 +2990,7 @@ notice_stack_pointer_modification (f) for (insn = f; insn; insn = NEXT_INSN (insn)) { - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) { /* Check if insn modifies the stack pointer. */ note_stores (PATTERN (insn), notice_stack_pointer_modification_1, @@ -6330,7 +6330,7 @@ count_or_remove_death_notes (blocks, kill) for (insn = bb->head; ; insn = NEXT_INSN (insn)) { - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) { rtx *pprev = ®_NOTES (insn); rtx link = *pprev; @@ -6642,7 +6642,7 @@ verify_flow_info () } } - if (GET_RTX_CLASS (GET_CODE (x)) == 'i' + if (INSN_P (x) && GET_CODE (x) == JUMP_INSN && returnjump_p (x) && ! condjump_p (x) && ! (NEXT_INSN (x) && GET_CODE (NEXT_INSN (x)) == BARRIER)) @@ -7938,7 +7938,7 @@ clear_log_links (insns) int b; for (i = insns; i; i = NEXT_INSN (i)) - if (GET_RTX_CLASS (GET_CODE (i)) == 'i') + if (INSN_P (i)) LOG_LINKS (i) = 0; for (b = 0; b < n_basic_blocks; b++) diff --git a/gcc/function.c b/gcc/function.c index 51a7bb9..1b57409 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -1647,7 +1647,7 @@ fixup_var_refs_insns (var, promoted_mode, unsignedp, insn, toplevel, ht) rtx set, prev, prev_set; rtx note; - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) { /* Remember the notes in case we delete the insn. */ note = REG_NOTES (insn); @@ -3248,7 +3248,7 @@ compute_insns_for_mem (insns, last_insn, ht) for (ifmwi.pass = 0; ifmwi.pass < 2; ++ifmwi.pass) for (insn = insns; insn != last_insn; insn = NEXT_INSN (insn)) - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) { ifmwi.insn = insn; for_each_rtx (&insn, insns_for_mem_walk, &ifmwi); diff --git a/gcc/gcse.c b/gcc/gcse.c index 9825794..680eb4f 100644 --- a/gcc/gcse.c +++ b/gcc/gcse.c @@ -892,7 +892,7 @@ alloc_gcse_mem (f) bzero ((char *) uid_cuid, n); for (insn = f, i = 0; insn; insn = NEXT_INSN (insn)) { - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) uid_cuid[INSN_UID (insn)] = i++; else uid_cuid[INSN_UID (insn)] = i; @@ -905,7 +905,7 @@ alloc_gcse_mem (f) cuid_insn = (rtx *) gmalloc (n); bzero ((char *) cuid_insn, n); for (insn = f, i = 0; insn; insn = NEXT_INSN (insn)) - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) CUID_INSN (i++) = insn; /* Allocate vars to track sets of regs. */ @@ -1164,7 +1164,7 @@ compute_sets (f) rtx insn; for (insn = f; insn != 0; insn = NEXT_INSN (insn)) - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) note_stores (PATTERN (insn), record_set_info, insn); } @@ -2132,7 +2132,7 @@ compute_hash_table (set_p) } #endif - if (GET_RTX_CLASS (GET_CODE (insn)) != 'i') + if (! INSN_P (insn)) continue; if (GET_CODE (insn) == CALL_INSN) @@ -2166,7 +2166,7 @@ compute_hash_table (set_p) for (insn = BLOCK_HEAD (bb), in_libcall_block = 0; insn && insn != NEXT_INSN (BLOCK_END (bb)); insn = NEXT_INSN (insn)) - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) { if (find_reg_note (insn, REG_LIBCALL, NULL_RTX)) in_libcall_block = 1; @@ -3226,7 +3226,7 @@ classic_gcse () /* Keep track of everything modified by this insn. */ /* ??? Need to be careful w.r.t. mods done to INSN. */ - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) mark_oprs_set (insn); } } @@ -3939,7 +3939,7 @@ cprop (alter_jumps) insn != NULL && insn != NEXT_INSN (BLOCK_END (bb)); insn = NEXT_INSN (insn)) { - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) { changed |= cprop_insn (insn, alter_jumps); @@ -4265,7 +4265,7 @@ insert_insn_end_bb (expr, bb, pre) { rtx maybe_cc0_setter = prev_nonnote_insn (insn); if (maybe_cc0_setter - && GET_RTX_CLASS (GET_CODE (maybe_cc0_setter)) == 'i' + && INSN_P (maybe_cc0_setter) && sets_cc0_p (PATTERN (maybe_cc0_setter))) insn = maybe_cc0_setter; } @@ -4356,7 +4356,7 @@ insert_insn_end_bb (expr, bb, pre) rtx insn = XVECEXP (pat, 0, i); set_block_num (insn, bb); - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) add_label_notes (PATTERN (insn), new_insn); note_stores (PATTERN (insn), record_set_info, insn); @@ -4908,7 +4908,7 @@ delete_null_pointer_checks_1 (block_reg, nonnull_avin, nonnull_avout, npi) rtx reg; /* Ignore anything that is not a normal insn. */ - if (GET_RTX_CLASS (GET_CODE (insn)) != 'i') + if (! INSN_P (insn)) continue; /* Basically ignore anything that is not a simple SET. We do have diff --git a/gcc/global.c b/gcc/global.c index 4ad1e19..8f308fc 100644 --- a/gcc/global.c +++ b/gcc/global.c @@ -835,7 +835,7 @@ expand_preferences () where this wins are reg-reg copies. */ for (insn = get_insns (); insn; insn = NEXT_INSN (insn)) - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i' + if (INSN_P (insn) && (set = single_set (insn)) != 0 && GET_CODE (SET_DEST (set)) == REG && reg_allocno[REGNO (SET_DEST (set))] >= 0) @@ -1798,7 +1798,7 @@ build_insn_chain (first) c->insn = first; c->block = b; - if (GET_RTX_CLASS (GET_CODE (first)) == 'i') + if (INSN_P (first)) { rtx link; @@ -1820,7 +1820,7 @@ build_insn_chain (first) else COPY_REG_SET (&c->live_throughout, live_relevant_regs); - if (GET_RTX_CLASS (GET_CODE (first)) == 'i') + if (INSN_P (first)) { rtx link; @@ -1845,8 +1845,7 @@ build_insn_chain (first) if (b == n_basic_blocks) { for (first = NEXT_INSN (first) ; first; first = NEXT_INSN (first)) - if (GET_RTX_CLASS (GET_CODE (first)) == 'i' - && GET_CODE (PATTERN (first)) != USE) + if (INSN_P (first) && GET_CODE (PATTERN (first)) != USE) abort (); break; } diff --git a/gcc/graph.c b/gcc/graph.c index 9dd5c8d..8718319 100644 --- a/gcc/graph.c +++ b/gcc/graph.c @@ -152,7 +152,7 @@ darkgrey\n shape: ellipse" : "white", name = GET_NOTE_INSN_NAME (NOTE_LINE_NUMBER (tmp_rtx)); fprintf (fp, " %s", name); } - else if (GET_RTX_CLASS (GET_CODE (tmp_rtx)) == 'i') + else if (INSN_P (tmp_rtx)) print_rtl_single (fp, PATTERN (tmp_rtx)); else print_rtl_single (fp, tmp_rtx); diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c index 8878cca..6371b45 100644 --- a/gcc/haifa-sched.c +++ b/gcc/haifa-sched.c @@ -3132,7 +3132,7 @@ priority (insn) int this_priority; rtx link; - if (GET_RTX_CLASS (GET_CODE (insn)) != 'i') + if (! INSN_P (insn)) return 0; if ((this_priority = INSN_PRIORITY (insn)) == 0) @@ -4415,8 +4415,7 @@ rm_line_notes (bb) get_bb_head_tail (bb, &head, &tail); - if (head == tail - && (GET_RTX_CLASS (GET_CODE (head)) != 'i')) + if (head == tail && (! INSN_P (head))) return; next_tail = NEXT_INSN (tail); @@ -4597,8 +4596,7 @@ rm_other_notes (head, tail) rtx next_tail; rtx insn; - if (head == tail - && (GET_RTX_CLASS (GET_CODE (head)) != 'i')) + if (head == tail && (! INSN_P (head))) return; next_tail = NEXT_INSN (tail); @@ -4644,7 +4642,7 @@ find_insn_reg_weight (b) rtx x; /* Handle register life information. */ - if (GET_RTX_CLASS (GET_CODE (insn)) != 'i') + if (! INSN_P (insn)) continue; /* Increment weight for each register born here. */ @@ -4819,7 +4817,7 @@ init_target_units () for (insn = get_last_insn (); insn; insn = PREV_INSN (insn)) { - if (GET_RTX_CLASS (GET_CODE (insn)) != 'i') + if (! INSN_P (insn)) continue; unit = insn_unit (insn); @@ -5811,7 +5809,7 @@ schedule_block (bb, rgn_n_insns) FIXME: Probably the same thing should be done with REG_SAVE_NOTEs referencing NOTE_INSN_SETJMP at the end of the block. */ - if (GET_RTX_CLASS (GET_CODE (head)) == 'i') + if (INSN_P (head)) { rtx note; @@ -5834,8 +5832,7 @@ schedule_block (bb, rgn_n_insns) /* If the only insn left is a NOTE or a CODE_LABEL, then there is no need to schedule this block. */ - if (head == tail - && (GET_RTX_CLASS (GET_CODE (head)) != 'i')) + if (head == tail && (! INSN_P (head))) return (sched_n_insns); /* Debug info. */ @@ -5900,12 +5897,12 @@ schedule_block (bb, rgn_n_insns) { rtx next; - if (GET_RTX_CLASS (GET_CODE (insn)) != 'i') + if (! INSN_P (insn)) continue; next = NEXT_INSN (insn); if (INSN_DEP_COUNT (insn) == 0 - && (SCHED_GROUP_P (next) == 0 || GET_RTX_CLASS (GET_CODE (next)) != 'i')) + && (SCHED_GROUP_P (next) == 0 || ! INSN_P (next))) ready[n_ready++] = insn; if (!(SCHED_GROUP_P (insn))) target_n_insns++; @@ -5925,13 +5922,12 @@ schedule_block (bb, rgn_n_insns) src_next_tail = NEXT_INSN (tail); src_head = head; - if (head == tail - && (GET_RTX_CLASS (GET_CODE (head)) != 'i')) + if (head == tail && (! INSN_P (head))) continue; for (insn = src_head; insn != src_next_tail; insn = NEXT_INSN (insn)) { - if (GET_RTX_CLASS (GET_CODE (insn)) != 'i') + if (! INSN_P (insn)) continue; if (!CANT_MOVE (insn) @@ -5949,7 +5945,7 @@ schedule_block (bb, rgn_n_insns) if (INSN_DEP_COUNT (insn) == 0 && (! next || SCHED_GROUP_P (next) == 0 - || GET_RTX_CLASS (GET_CODE (next)) != 'i')) + || ! INSN_P (next))) ready[n_ready++] = insn; } } @@ -6213,7 +6209,7 @@ compute_block_forward_dependences (bb) next_tail = NEXT_INSN (tail); for (insn = head; insn != next_tail; insn = NEXT_INSN (insn)) { - if (GET_RTX_CLASS (GET_CODE (insn)) != 'i') + if (! INSN_P (insn)) continue; insn = group_leader (insn); @@ -6599,7 +6595,7 @@ debug_dependencies () rtx link; int unit, range; - if (GET_RTX_CLASS (GET_CODE (insn)) != 'i') + if (! INSN_P (insn)) { int n; fprintf (dump, ";; %6d ", INSN_UID (insn)); @@ -6659,8 +6655,7 @@ set_priorities (bb) get_bb_head_tail (bb, &head, &tail); prev_head = PREV_INSN (head); - if (head == tail - && (GET_RTX_CLASS (GET_CODE (head)) != 'i')) + if (head == tail && (! INSN_P (head))) return 0; n_insn = 0; diff --git a/gcc/integrate.c b/gcc/integrate.c index 93ed6d4..2cf8813 100644 --- a/gcc/integrate.c +++ b/gcc/integrate.c @@ -211,7 +211,7 @@ function_cannot_inline_p (fndecl) for (ninsns = 0, insn = get_first_nonparm_insn (); insn && ninsns < max_insns; insn = NEXT_INSN (insn)) - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) ninsns++; if (ninsns >= max_insns) @@ -480,7 +480,7 @@ save_parm_insns (insn, first_nonparm_insn) if (insn == first_nonparm_insn) in_nonparm_insns = 1; - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) { /* Record what interesting things happen to our parameters. */ note_stores (PATTERN (insn), note_modified_parmregs, NULL); @@ -1577,7 +1577,7 @@ copy_insn_list (insns, map, static_chain_value) are valid across the entire function. */ map->const_age++; for (insn = insns; insn; insn = NEXT_INSN (insn)) - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i' + if (INSN_P (insn) && map->insn_map[INSN_UID (insn)] && REG_NOTES (insn)) { diff --git a/gcc/jump.c b/gcc/jump.c index 5f57589..848094c 100644 --- a/gcc/jump.c +++ b/gcc/jump.c @@ -855,7 +855,7 @@ mark_all_labels (f, cross_jump) rtx insn; for (insn = f; insn; insn = NEXT_INSN (insn)) - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) { if (GET_CODE (insn) == CALL_INSN && GET_CODE (PATTERN (insn)) == CALL_PLACEHOLDER) @@ -3095,7 +3095,7 @@ never_reached_warning (avoided_insn) two_avoided_lines |= (NOTE_LINE_NUMBER (a_line_note) != NOTE_LINE_NUMBER (insn)); } - else if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + else if (INSN_P (insn)) contains_insn = 1; } if (two_avoided_lines && contains_insn) diff --git a/gcc/lcm.c b/gcc/lcm.c index 472c8fe..dc03797 100644 --- a/gcc/lcm.c +++ b/gcc/lcm.c @@ -1061,7 +1061,7 @@ optimize_mode_switching (file) insn != NULL && insn != NEXT_INSN (BLOCK_END (bb)); insn = NEXT_INSN (insn)) { - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) { int mode = MODE_NEEDED (e, insn); rtx link; diff --git a/gcc/local-alloc.c b/gcc/local-alloc.c index b93102b..02e9694 100644 --- a/gcc/local-alloc.c +++ b/gcc/local-alloc.c @@ -472,7 +472,7 @@ validate_equiv_mem (start, reg, memref) for (insn = start; insn && ! equiv_mem_modified; insn = NEXT_INSN (insn)) { - if (GET_RTX_CLASS (GET_CODE (insn)) != 'i') + if (! INSN_P (insn)) continue; if (find_reg_note (insn, REG_DEAD, reg)) @@ -632,8 +632,7 @@ memref_used_between_p (memref, start, end) for (insn = NEXT_INSN (start); insn != NEXT_INSN (end); insn = NEXT_INSN (insn)) - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i' - && memref_referenced_p (memref, PATTERN (insn))) + if (INSN_P (insn) && memref_referenced_p (memref, PATTERN (insn))) return 1; return 0; @@ -698,7 +697,7 @@ update_equiv_regs () loop_depth--; } - if (GET_RTX_CLASS (GET_CODE (insn)) != 'i') + if (! INSN_P (insn)) continue; for (note = REG_NOTES (insn); note; note = XEXP (note, 1)) @@ -909,7 +908,7 @@ update_equiv_regs () && BLOCK_HEAD (block + 1) == insn) ++block; - if (GET_RTX_CLASS (GET_CODE (insn)) != 'i') + if (! INSN_P (insn)) { if (GET_CODE (insn) == NOTE) { @@ -1076,7 +1075,7 @@ block_alloc (b) if (GET_CODE (insn) != NOTE) insn_number++; - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) { register rtx link, set; register int win = 0; @@ -2168,7 +2167,7 @@ no_conflict_p (insn, r0, r1) last = XEXP (note, 0); for (p = NEXT_INSN (insn); p && p != last; p = NEXT_INSN (p)) - if (GET_RTX_CLASS (GET_CODE (p)) == 'i') + if (INSN_P (p)) { if (find_reg_note (p, REG_DEAD, r1)) ok = 1; diff --git a/gcc/loop.c b/gcc/loop.c index 4903cec..3e1be34 100644 --- a/gcc/loop.c +++ b/gcc/loop.c @@ -637,7 +637,7 @@ scan_loop (loop, flags) for (p = NEXT_INSN (loop_start); p != loop_end - && GET_CODE (p) != CODE_LABEL && GET_RTX_CLASS (GET_CODE (p)) != 'i' + && GET_CODE (p) != CODE_LABEL && ! INSN_P (p) && (GET_CODE (p) != NOTE || (NOTE_LINE_NUMBER (p) != NOTE_INSN_LOOP_BEG && NOTE_LINE_NUMBER (p) != NOTE_INSN_LOOP_END)); @@ -753,11 +753,9 @@ scan_loop (loop, flags) p != NULL_RTX; p = next_insn_in_loop (loop, p)) { - if (GET_RTX_CLASS (GET_CODE (p)) == 'i' - && find_reg_note (p, REG_LIBCALL, NULL_RTX)) + if (INSN_P (p) && find_reg_note (p, REG_LIBCALL, NULL_RTX)) in_libcall = 1; - else if (GET_RTX_CLASS (GET_CODE (p)) == 'i' - && find_reg_note (p, REG_RETVAL, NULL_RTX)) + else if (INSN_P (p) && find_reg_note (p, REG_RETVAL, NULL_RTX)) in_libcall = 0; if (GET_CODE (p) == INSN @@ -2736,7 +2734,7 @@ find_and_verify_loops (f, loops) possible second cse pass. */ for (insn = f; insn; insn = NEXT_INSN (insn)) - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) { struct loop *this_loop = uid_loop[INSN_UID (insn)]; @@ -3556,7 +3554,7 @@ count_loop_regs_set (from, to, may_not_move, single_usage, count_ptr, nregs) for (insn = from; insn != to; insn = NEXT_INSN (insn)) { - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) { ++count; @@ -3609,8 +3607,7 @@ loop_reg_used_before_p (loop, set, insn) are done. Otherwise, if we hit LOOP->END, wrap around to LOOP->START. */ for (p = loop->scan_start; p != insn; p = NEXT_INSN (p)) { - if (GET_RTX_CLASS (GET_CODE (p)) == 'i' - && reg_overlap_mentioned_p (reg, PATTERN (p))) + if (INSN_P (p) && reg_overlap_mentioned_p (reg, PATTERN (p))) return 1; if (p == loop->end) @@ -4107,8 +4104,7 @@ strength_reduce (loop, insn_count, flags) && insn_dependent_p (giv_insn, next))) break; #ifdef HAVE_cc0 - if (! INSN_P (next) - || ! sets_cc0_p (PATTERN (next))) + if (! INSN_P (next) || ! sets_cc0_p (PATTERN (next))) #endif dominator = next; } @@ -4352,7 +4348,7 @@ strength_reduce (loop, insn_count, flags) { rtx note; - if (GET_RTX_CLASS (GET_CODE (p)) != 'i') + if (! INSN_P (p)) continue; if (reg_mentioned_p (old_reg, PATTERN (p))) { @@ -4747,7 +4743,7 @@ strength_reduce (loop, insn_count, flags) if ((auto_inc_opt == 1 && sets_cc0_p (PATTERN (v->insn))) || (auto_inc_opt == -1 && (prev = prev_nonnote_insn (v->insn)) != 0 - && GET_RTX_CLASS (GET_CODE (prev)) == 'i' + && INSN_P (prev) && sets_cc0_p (PATTERN (prev)))) auto_inc_opt = 0; } @@ -7474,7 +7470,7 @@ recombine_givs (loop, bl, unroll_p) if (p == loop->start) p = loop->end; p = PREV_INSN (p); - if (GET_RTX_CLASS (GET_CODE (p)) != 'i') + if (! INSN_P (p)) continue; ends_need_computing -= find_life_end (PATTERN (p), stats, p, biv); } @@ -7913,7 +7909,7 @@ check_dbra_loop (loop, insn_count) see if perhaps there are no uses except to count. */ no_use_except_counting = 1; for (p = loop_start; p != loop_end; p = NEXT_INSN (p)) - if (GET_RTX_CLASS (GET_CODE (p)) == 'i') + if (INSN_P (p)) { rtx set = single_set (p); @@ -7951,7 +7947,7 @@ check_dbra_loop (loop, insn_count) else if (num_mem_sets <= 1) { for (p = loop_start; p != loop_end; p = NEXT_INSN (p)) - if (GET_RTX_CLASS (GET_CODE (p)) == 'i') + if (INSN_P (p)) num_nonfixed_reads += count_nonfixed_reads (loop, PATTERN (p)); /* If the loop has a single store, and the destination address is @@ -8292,7 +8288,7 @@ check_dbra_loop (loop, insn_count) remove all REG_EQUAL notes based on the reversed biv here. */ for (p = loop_start; p != loop_end; p = NEXT_INSN (p)) - if (GET_RTX_CLASS (GET_CODE (p)) == 'i') + if (INSN_P (p)) { rtx *pnote; rtx set = single_set (p); @@ -9552,7 +9548,7 @@ load_mems (loop) rtx_and_int ri; rtx set; - if (GET_RTX_CLASS (GET_CODE (p)) == 'i') + if (INSN_P (p)) { /* See if this copies the mem into a register that isn't modified afterwards. We'll try to do copy propagation @@ -9745,7 +9741,7 @@ try_copy_prop (loop, replacement, regno) if (GET_CODE (insn) == CODE_LABEL && init_insn) break; - if (GET_RTX_CLASS (GET_CODE (insn)) != 'i') + if (! INSN_P (insn)) continue; /* Is this the initializing insn? */ diff --git a/gcc/print-rtl.c b/gcc/print-rtl.c index 16a64db..5d7cd5f 100644 --- a/gcc/print-rtl.c +++ b/gcc/print-rtl.c @@ -89,7 +89,7 @@ print_rtx (in_rtx) return; } - is_insn = (GET_RTX_CLASS (GET_CODE (in_rtx)) == 'i'); + is_insn = (INSN_P (in_rtx)); /* When printing in VCG format we write INSNs, NOTE, LABEL, and BARRIER in separate nodes and therefore have to handle them special here. */ diff --git a/gcc/recog.c b/gcc/recog.c index 9e7b9fa..87a8ec4 100644 --- a/gcc/recog.c +++ b/gcc/recog.c @@ -856,7 +856,7 @@ find_single_use (dest, insn, ploc) for (next = next_nonnote_insn (insn); next != 0 && GET_CODE (next) != CODE_LABEL; next = next_nonnote_insn (next)) - if (GET_RTX_CLASS (GET_CODE (next)) == 'i' && dead_or_set_p (next, dest)) + if (INSN_P (next) && dead_or_set_p (next, dest)) { for (link = LOG_LINKS (next); link; link = XEXP (link, 1)) if (XEXP (link, 0) == insn) diff --git a/gcc/reg-stack.c b/gcc/reg-stack.c index 99b9eec..0063cbd 100644 --- a/gcc/reg-stack.c +++ b/gcc/reg-stack.c @@ -302,7 +302,7 @@ stack_regs_mentioned (insn) unsigned int uid, max; int test; - if (GET_RTX_CLASS (GET_CODE (insn)) != 'i') + if (! INSN_P (insn)) return 0; uid = INSN_UID (insn); @@ -342,8 +342,7 @@ next_flags_user (insn) if (!insn) return NULL_RTX; - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i' - && reg_mentioned_p (ix86_flags_rtx, PATTERN (insn))) + if (INSN_P (insn) && reg_mentioned_p (ix86_flags_rtx, PATTERN (insn))) return insn; if (GET_CODE (insn) == JUMP_INSN @@ -1237,8 +1236,7 @@ swap_rtx_condition (insn) insn = NEXT_INSN (insn); if (insn == NULL_RTX) return 0; - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i' - && reg_mentioned_p (dest, insn)) + if (INSN_P (insn) && reg_mentioned_p (dest, insn)) break; if (GET_CODE (insn) == JUMP_INSN) return 0; diff --git a/gcc/regmove.c b/gcc/regmove.c index 69d7f88..1d6578f 100644 --- a/gcc/regmove.c +++ b/gcc/regmove.c @@ -284,7 +284,7 @@ mark_flags_life_zones (flags) alive, death, birth. This lets more important info overwrite the mode of lesser info. */ - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) { #ifdef HAVE_cc0 /* In the cc0 case, death is not marked in reg notes, @@ -414,7 +414,7 @@ optimize_reg_copy_1 (insn, dest, src) if (flag_exceptions && GET_CODE (p) == CALL_INSN) break; - if (GET_RTX_CLASS (GET_CODE (p)) != 'i') + if (! INSN_P (p)) continue; if (reg_set_p (src, p) || reg_set_p (dest, p) @@ -599,7 +599,7 @@ optimize_reg_copy_2 (insn, dest, src) if (flag_exceptions && GET_CODE (p) == CALL_INSN) break; - if (GET_RTX_CLASS (GET_CODE (p)) != 'i') + if (! INSN_P (p)) continue; set = single_set (p); @@ -611,7 +611,7 @@ optimize_reg_copy_2 (insn, dest, src) /* Set to stop at next insn. */ for (q = insn; q != NEXT_INSN (p); q = NEXT_INSN (q)) - if (GET_RTX_CLASS (GET_CODE (q)) == 'i') + if (INSN_P (q)) { if (reg_mentioned_p (dest, PATTERN (q))) PATTERN (q) = replace_rtx (PATTERN (q), dest, src); @@ -673,7 +673,7 @@ optimize_reg_copy_3 (insn, dest, src) if (flag_exceptions && GET_CODE (p) == CALL_INSN) return; - if (GET_RTX_CLASS (GET_CODE (p)) != 'i') + if (! INSN_P (p)) continue; } if (! p) @@ -709,7 +709,7 @@ optimize_reg_copy_3 (insn, dest, src) subreg = gen_rtx_SUBREG (old_mode, src_reg, 0); while (p = NEXT_INSN (p), p != insn) { - if (GET_RTX_CLASS (GET_CODE (p)) != 'i') + if (! INSN_P (p)) continue; /* Make a tenative change. */ @@ -884,7 +884,7 @@ reg_is_remote_constant_p (reg, insn, first) { rtx s; - if (GET_RTX_CLASS (GET_CODE (p)) != 'i') + if (! INSN_P (p)) continue; s = single_set (p); if (s != 0 @@ -952,7 +952,7 @@ fixup_match_2 (insn, dst, src, offset, regmove_dump_file) if (flag_exceptions && GET_CODE (p) == CALL_INSN) break; - if (GET_RTX_CLASS (GET_CODE (p)) != 'i') + if (! INSN_P (p)) continue; if (find_regno_note (p, REG_DEAD, REGNO (dst))) @@ -991,7 +991,7 @@ fixup_match_2 (insn, dst, src, offset, regmove_dump_file) if (GET_CODE (p) == CODE_LABEL || GET_CODE (p) == JUMP_INSN) break; - if (GET_RTX_CLASS (GET_CODE (p)) != 'i') + if (! INSN_P (p)) continue; if (reg_overlap_mentioned_p (dst, PATTERN (p))) { @@ -1005,7 +1005,7 @@ fixup_match_2 (insn, dst, src, offset, regmove_dump_file) if (GET_CODE (p) == CODE_LABEL || GET_CODE (p) == JUMP_INSN) break; - if (GET_RTX_CLASS (GET_CODE (p)) != 'i') + if (! INSN_P (p)) continue; if (reg_overlap_mentioned_p (dst, PATTERN (p))) { @@ -1225,7 +1225,7 @@ regmove_optimize (f, nregs, regmove_dump_file) for (insn = get_last_insn (); insn; insn = PREV_INSN (insn)) { - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) { int op_no, match_no; int success = 0; @@ -1384,7 +1384,7 @@ regmove_optimize (f, nregs, regmove_dump_file) if (flag_exceptions && GET_CODE (p) == CALL_INSN) break; - if (GET_RTX_CLASS (GET_CODE (p)) != 'i') + if (! INSN_P (p)) continue; length++; @@ -1669,7 +1669,7 @@ fixup_match_1 (insn, set, src, src_subreg, dst, backward, operand_number, if (flag_exceptions && GET_CODE (p) == CALL_INSN) break; - if (GET_RTX_CLASS (GET_CODE (p)) != 'i') + if (! INSN_P (p)) continue; length++; @@ -1723,7 +1723,7 @@ fixup_match_1 (insn, set, src, src_subreg, dst, backward, operand_number, break; } - if (GET_RTX_CLASS (GET_CODE (q)) != 'i') + if (! INSN_P (q)) continue; if (reg_overlap_mentioned_p (src, PATTERN (q)) || reg_set_p (src, q)) @@ -1859,8 +1859,7 @@ fixup_match_1 (insn, set, src, src_subreg, dst, backward, operand_number, /* emit_insn_after_with_line_notes has no return value, so search for the new insn. */ insn = p; - while (GET_RTX_CLASS (GET_CODE (insn)) != 'i' - || PATTERN (insn) != pat) + while (! INSN_P (insn) || PATTERN (insn) != pat) insn = PREV_INSN (insn); REG_NOTES (insn) = notes; @@ -1899,7 +1898,7 @@ fixup_match_1 (insn, set, src, src_subreg, dst, backward, operand_number, break; } - if (GET_RTX_CLASS (GET_CODE (q)) != 'i') + if (! INSN_P (q)) continue; s_length2++; if (reg_set_p (src, q)) @@ -1964,7 +1963,7 @@ fixup_match_1 (insn, set, src, src_subreg, dst, backward, operand_number, if (flag_exceptions && GET_CODE (q) == CALL_INSN) break; - if (GET_RTX_CLASS (GET_CODE (q)) != 'i') + if (! INSN_P (q)) continue; if (src != inc_dest && (reg_overlap_mentioned_p (src, PATTERN (q)) || reg_set_p (src, q))) diff --git a/gcc/regrename.c b/gcc/regrename.c index b29046b..fb0a3be 100644 --- a/gcc/regrename.c +++ b/gcc/regrename.c @@ -465,7 +465,7 @@ build_def_use (b, ebb, regs_used, du, defs_live_exit) struct resources insn_res; struct resources insn_sets; - if (GET_RTX_CLASS (GET_CODE (insn)) != 'i') + if (! INSN_P (insn)) continue; CLEAR_RESOURCE (&insn_sets); @@ -559,7 +559,7 @@ replace_reg_in_block (du, uid_ruid, def, reg_def, avail_reg) /* Now replace in the uses. */ for (du_idx = def + 1; du_idx < du->high_bound; du_idx++) { - if (GET_RTX_CLASS (GET_CODE (VARRAY_RTX (*uid_ruid, du_idx))) != 'i') + if (! INSN_P (VARRAY_RTX (*uid_ruid, du_idx))) continue; reg_use = regno_use_in (r, PATTERN (VARRAY_RTX (*uid_ruid, du_idx))); @@ -802,7 +802,7 @@ consider_use (insn, regno, def_block, use_block) edge e; basic_block ub = BASIC_BLOCK (use_block); - if (GET_RTX_CLASS (GET_CODE (insn)) != 'i') + if (! INSN_P (insn)) return 0; /* If a use's basic block is different than the def's basic block, diff --git a/gcc/reload.c b/gcc/reload.c index 01286ba..c18da00 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -6309,7 +6309,7 @@ find_equiv_reg (goal, insn, class, other, reload_reg_p, goalreg, mode) return 0; #endif - if (GET_RTX_CLASS (GET_CODE (p)) == 'i') + if (INSN_P (p)) { pat = PATTERN (p); diff --git a/gcc/reload1.c b/gcc/reload1.c index 35fbc9e..d77d08e 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -773,7 +773,7 @@ reload (first, global, dumpfile) = gen_rtx_INSN_LIST (VOIDmode, insn, reg_equiv_init[REGNO (SET_SRC (set))]); - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) scan_paradoxical_subregs (PATTERN (insn)); } @@ -1113,7 +1113,7 @@ reload (first, global, dumpfile) and regenerate REG_INC notes that may have been moved around. */ for (insn = first; insn; insn = NEXT_INSN (insn)) - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) { rtx *pnote; @@ -1225,7 +1225,7 @@ maybe_fix_stack_asms () HARD_REG_SET clobbered, allowed; rtx pat; - if (GET_RTX_CLASS (GET_CODE (chain->insn)) != 'i' + if (! INSN_P (chain->insn) || (noperands = asm_noperands (PATTERN (chain->insn))) < 0) continue; pat = PATTERN (chain->insn); @@ -1360,11 +1360,10 @@ calculate_needs_all_insns (global) known offsets at labels. */ if (GET_CODE (insn) == CODE_LABEL || GET_CODE (insn) == JUMP_INSN - || (GET_RTX_CLASS (GET_CODE (insn)) == 'i' - && REG_NOTES (insn) != 0)) + || (INSN_P (insn) && REG_NOTES (insn) != 0)) set_label_offsets (insn, insn, 0); - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) { rtx old_body = PATTERN (insn); int old_code = INSN_CODE (insn); @@ -3746,7 +3745,7 @@ reload_as_needed (live_known) if (GET_CODE (insn) == CODE_LABEL) set_offsets_for_label (insn); - else if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + else if (INSN_P (insn)) { rtx oldpat = PATTERN (insn); @@ -3834,7 +3833,7 @@ reload_as_needed (live_known) if (asm_noperands (PATTERN (insn)) >= 0) for (p = NEXT_INSN (prev); p != next; p = NEXT_INSN (p)) - if (p != insn && GET_RTX_CLASS (GET_CODE (p)) == 'i' + if (p != insn && INSN_P (p) && (recog_memoized (p) < 0 || (extract_insn (p), ! constrain_operands (1)))) { @@ -6560,7 +6559,7 @@ emit_output_reload_insns (chain, rl, j) /* Look at all insns we emitted, just to be safe. */ for (p = get_insns (); p; p = NEXT_INSN (p)) - if (GET_RTX_CLASS (GET_CODE (p)) == 'i') + if (INSN_P (p)) { rtx pat = PATTERN (p); @@ -7635,7 +7634,7 @@ delete_address_reloads_1 (dead_insn, x, current_insn) { if (GET_CODE (i2) == CODE_LABEL) break; - if (GET_RTX_CLASS (GET_CODE (i2)) != 'i') + if (! INSN_P (i2)) continue; if (reg_referenced_p (dst, PATTERN (i2))) { @@ -7969,7 +7968,7 @@ reload_cse_regs_1 (first) for (insn = first; insn; insn = NEXT_INSN (insn)) { - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) reload_cse_simplify (insn); cselib_process_insn (insn); @@ -8424,7 +8423,7 @@ reload_combine () if (! fixed_regs[r]) reg_state[r].use_index = RELOAD_COMBINE_MAX_USES; - if (GET_RTX_CLASS (GET_CODE (insn)) != 'i') + if (! INSN_P (insn)) continue; reload_combine_ruid++; @@ -8855,7 +8854,7 @@ reload_cse_move2add (first) if (GET_CODE (insn) == CODE_LABEL) last_label_luid = move2add_luid; - if (GET_RTX_CLASS (GET_CODE (insn)) != 'i') + if (! INSN_P (insn)) continue; pat = PATTERN (insn); /* For simplicity, we only perform this optimization on diff --git a/gcc/reorg.c b/gcc/reorg.c index e5c5887..99f24c8 100644 --- a/gcc/reorg.c +++ b/gcc/reorg.c @@ -1631,7 +1631,7 @@ redundant_insn (insn, target, delay_list) if (GET_CODE (trial) == CODE_LABEL) return 0; - if (GET_RTX_CLASS (GET_CODE (trial)) != 'i') + if (! INSN_P (trial)) continue; pat = PATTERN (trial); @@ -3594,7 +3594,7 @@ dbr_schedule (first, file) next = NEXT_INSN (insn); if (GET_CODE (insn) == INSN && GET_CODE (PATTERN (insn)) == USE - && GET_RTX_CLASS (GET_CODE (XEXP (PATTERN (insn), 0))) == 'i') + && INSN_P (XEXP (PATTERN (insn), 0))) next = delete_insn (insn); } diff --git a/gcc/resource.c b/gcc/resource.c index 606e2e9..de33cb1 100644 --- a/gcc/resource.c +++ b/gcc/resource.c @@ -452,7 +452,7 @@ find_dead_or_set_registers (target, res, jump_target, jump_count, set, needed) /* If INSN is a USE made by update_block, we care about the underlying insn. Any registers set by the underlying insn are live since the insn is being done somewhere else. */ - if (GET_RTX_CLASS (GET_CODE (XEXP (PATTERN (insn), 0))) == 'i') + if (INSN_P (XEXP (PATTERN (insn), 0))) mark_set_resources (XEXP (PATTERN (insn), 0), res, 0, MARK_SRC_DEST_CALL); @@ -991,7 +991,7 @@ mark_target_live_regs (insns, target, res) /* If this insn is a USE made by update_block, we care about the underlying insn. */ if (GET_CODE (insn) == INSN && GET_CODE (PATTERN (insn)) == USE - && GET_RTX_CLASS (GET_CODE (XEXP (PATTERN (insn), 0))) == 'i') + && INSN_P (XEXP (PATTERN (insn), 0))) real_insn = XEXP (PATTERN (insn), 0); if (GET_CODE (real_insn) == CALL_INSN) diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c index 105c39a..22e0566 100644 --- a/gcc/rtlanal.c +++ b/gcc/rtlanal.c @@ -418,7 +418,7 @@ reg_used_between_p (reg, from_insn, to_insn) return 0; for (insn = NEXT_INSN (from_insn); insn != to_insn; insn = NEXT_INSN (insn)) - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i' + if (INSN_P (insn) && (reg_overlap_mentioned_p (reg, PATTERN (insn)) || (GET_CODE (insn) == CALL_INSN && (find_reg_fusage (insn, USE, reg) @@ -517,7 +517,7 @@ reg_referenced_between_p (reg, from_insn, to_insn) return 0; for (insn = NEXT_INSN (from_insn); insn != to_insn; insn = NEXT_INSN (insn)) - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i' + if (INSN_P (insn) && (reg_referenced_p (reg, PATTERN (insn)) || (GET_CODE (insn) == CALL_INSN && find_reg_fusage (insn, USE, reg)))) @@ -538,8 +538,7 @@ reg_set_between_p (reg, from_insn, to_insn) return 0; for (insn = NEXT_INSN (from_insn); insn != to_insn; insn = NEXT_INSN (insn)) - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i' - && reg_set_p (reg, insn)) + if (INSN_P (insn) && reg_set_p (reg, insn)) return 1; return 0; } @@ -571,7 +570,7 @@ reg_set_p (reg, insn) /* We can be passed an insn or part of one. If we are passed an insn, check if a side-effect of the insn clobbers REG. */ - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) { if (FIND_REG_INC_NOTE (insn, reg) || (GET_CODE (insn) == CALL_INSN @@ -802,7 +801,7 @@ single_set (insn) rtx set; int i; - if (GET_RTX_CLASS (GET_CODE (insn)) != 'i') + if (! INSN_P (insn)) return 0; if (GET_CODE (PATTERN (insn)) == SET) @@ -852,7 +851,7 @@ multiple_sets (insn) int i; /* INSN must be an insn. */ - if (GET_RTX_CLASS (GET_CODE (insn)) != 'i') + if (! INSN_P (insn)) return 0; /* Only a PARALLEL can have multiple SETs. */ @@ -891,7 +890,7 @@ find_last_value (x, pinsn, valid_to, allow_hwreg) for (p = PREV_INSN (*pinsn); p && GET_CODE (p) != CODE_LABEL; p = PREV_INSN (p)) - if (GET_RTX_CLASS (GET_CODE (p)) == 'i') + if (INSN_P (p)) { rtx set = single_set (p); rtx note = find_reg_note (p, REG_EQUAL, NULL_RTX); @@ -1194,7 +1193,7 @@ reg_set_last (x, insn) && ! (GET_CODE (insn) == CALL_INSN && reg_set_last_last_regno <= FIRST_PSEUDO_REGISTER); insn = PREV_INSN (insn)) - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) { note_stores (PATTERN (insn), reg_set_last_1, NULL); if (reg_set_last_unknown) @@ -1427,7 +1426,7 @@ find_reg_note (insn, kind, datum) register rtx link; /* Ignore anything that is not an INSN, JUMP_INSN or CALL_INSN. */ - if (GET_RTX_CLASS (GET_CODE (insn)) != 'i') + if (! INSN_P (insn)) return 0; for (link = REG_NOTES (insn); link; link = XEXP (link, 1)) @@ -1451,7 +1450,7 @@ find_regno_note (insn, kind, regno) register rtx link; /* Ignore anything that is not an INSN, JUMP_INSN or CALL_INSN. */ - if (GET_RTX_CLASS (GET_CODE (insn)) != 'i') + if (! INSN_P (insn)) return 0; for (link = REG_NOTES (insn); link; link = XEXP (link, 1)) diff --git a/gcc/sibcall.c b/gcc/sibcall.c index 120b641..78e855e 100644 --- a/gcc/sibcall.c +++ b/gcc/sibcall.c @@ -301,7 +301,7 @@ sequence_uses_addressof (seq) rtx insn; for (insn = seq; insn; insn = NEXT_INSN (insn)) - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) { /* If this is a CALL_PLACEHOLDER, then recursively call ourselves with each nonempty sequence attached to the CALL_PLACEHOLDER. */ diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c index 02af1d0..e97e7b7 100644 --- a/gcc/simplify-rtx.c +++ b/gcc/simplify-rtx.c @@ -3189,7 +3189,7 @@ cselib_process_insn (insn) return; } - if (GET_RTX_CLASS (GET_CODE (insn)) != 'i') + if (! INSN_P (insn)) { cselib_current_insn = 0; return; diff --git a/gcc/ssa.c b/gcc/ssa.c index ec9cc48..a328368 100644 --- a/gcc/ssa.c +++ b/gcc/ssa.c @@ -491,7 +491,7 @@ find_evaluations (evals, nregs) last = BLOCK_END (bb); while (1) { - if (GET_RTX_CLASS (GET_CODE (p)) == 'i') + if (INSN_P (p)) note_stores (PATTERN (p), find_evaluations_1, NULL); if (p == last) @@ -999,7 +999,7 @@ rename_block (bb, idom) do { insn = next; - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) { struct rename_context context; context.done_renames = set_data; @@ -2122,7 +2122,7 @@ rename_equivalent_regs (reg_partition) do { insn = next; - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) { for_each_rtx (&PATTERN (insn), rename_equivalent_regs_in_insn, diff --git a/gcc/unroll.c b/gcc/unroll.c index 3197053..6976eba 100644 --- a/gcc/unroll.c +++ b/gcc/unroll.c @@ -3522,8 +3522,7 @@ loop_find_equiv_value (loop, reg) if (GET_CODE (insn) == CODE_LABEL) break; - else if (GET_RTX_CLASS (GET_CODE (insn)) == 'i' - && reg_set_p (reg, insn)) + else if (INSN_P (insn) && reg_set_p (reg, insn)) { /* We found the last insn before the loop that sets the register. If it sets the entire register, and has a REG_EQUAL note, @@ -4125,8 +4124,7 @@ set_dominates_use (regno, first_uid, last_uid, copy_start, copy_end) } /* Verify that FIRST_UID is an insn that entirely sets REGNO. */ - if (GET_RTX_CLASS (GET_CODE (p)) != 'i' - || ! dead_or_set_regno_p (p, regno)) + if (! INSN_P (p) || ! dead_or_set_regno_p (p, regno)) return 0; /* FIRST_UID is always executed. */ diff --git a/gcc/varasm.c b/gcc/varasm.c index 8883cc2..5b934e8 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -3889,13 +3889,13 @@ mark_constant_pool () pool->mark = 0; for (insn = get_insns (); insn; insn = NEXT_INSN (insn)) - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) mark_constants (PATTERN (insn)); for (insn = current_function_epilogue_delay_list; insn; insn = XEXP (insn, 1)) - if (GET_RTX_CLASS (GET_CODE (insn)) == 'i') + if (INSN_P (insn)) mark_constants (PATTERN (insn)); /* It's possible that the only reference to a symbol is in a symbol @@ -3953,7 +3953,7 @@ mark_constants (x) /* Insns may appear inside a SEQUENCE. Only check the patterns of insns, not any notes that may be attached. We don't want to mark a constant just because it happens to appear in a REG_EQUIV note. */ - if (GET_RTX_CLASS (GET_CODE (x)) == 'i') + if (INSN_P (x)) { mark_constants (PATTERN (x)); return; -- cgit v1.1