aboutsummaryrefslogtreecommitdiff
path: root/gcc/emit-rtl.c
AgeCommit message (Collapse)AuthorFilesLines
2014-09-09INSN_LOCATION takes an rtx_insnDavid Malcolm1-5/+5
gcc/ChangeLog: 2014-09-09 David Malcolm <dmalcolm@redhat.com> * rtl.h (INSN_LOCATION): Strengthen param from const_rtx to const rtx_insn *, and from rtx to rtx_insn * for the other overloaded variant. (RTL_LOCATION): Add a checked cast to rtx_insn * when invoking INSN_LOCATION, since we know INSN_P holds. (insn_line): Strengthen param from const_rtx to const rtx_insn *. (insn_file): Likewise. (insn_scope): Likewise. (insn_location): Likewise. * config/mips/mips.c (mips16_gp_pseudo_reg): Strengthen local "insn" from rtx to rtx_insn *, introducing a new local rtx "set" for the result of gen_load_const_gp. * config/rs6000/rs6000-protos.h (output_call): Strengthen first param from rtx to rtx_insn *. * config/rs6000/rs6000.c (output_call): Likewise. * dwarf2out.c (dwarf2out_var_location): Likewise for local "prev", introducing a checked cast to rtx_sequence * and use of the insn method. * emit-rtl.c (emit_copy_of_insn_after): Strengthen both params from rtx to rtx_insn *. (insn_scope): Strengthen param from const_rtx to const rtx_insn *. (insn_line): Likewise. (insn_file): Likewise. (insn_location): Likewise. * emit-rtl.h (emit_copy_of_insn_after): Strengthen both params from rtx to rtx_insn *. * print-rtl.c (print_rtx): Introduce local "in_insn" via a checked cast, using it for calls to INSN_HAS_LOCATION and insn_location. * recog.c (peep2_attempt): Introduce local rtx_insn * "peepinsn" via a checked cast. * reorg.c (relax_delay_slots): Strengthen locals named "after" from rtx to rtx_insn *; use methods of "pat" for type-safety. From-SVN: r215084
2014-09-09Handcode gen_rtx_INSNDavid Malcolm1-0/+11
gcc/ChangeLog: 2014-09-09 David Malcolm <dmalcolm@redhat.com> * combine.c (try_combine): Eliminate checked cast on result of gen_rtx_INSN. * emit-rtl.c (gen_rtx_INSN): New function, improving over the prior autogenerated one by strengthening the return type and params 2 and 3 from rtx to rtx_insn *, and by naming the params. * gengenrtl.c (special_rtx): Add INSN to those that are special-cased. * rtl.h (gen_rtx_INSN): New prototype. From-SVN: r215083
2014-09-05make several emit functions take an rtx_insn *Trevor Saunders1-9/+9
gcc/ChangeLog: 2014-09-04 Trevor Saunders <tsaunders@mozilla.com> * emit-rtl.c (emit_insn_before_noloc): Take an rtx_insn * instead of an rtx. (emit_jump_insn_before_noloc): Likewise. (emit_call_insn_before_noloc): Likewise. (emit_label_before): Likewise. (emit_label_after): Likewise. (emit_insn_before_setloc): Likewise. (emit_jump_insn_before_setloc): Likewise. (emit_call_insn_before_setloc): Likewise. (emit_call_insn_before): Likewise. * rtl.h: Adjust. From-SVN: r214933
2014-09-05fixup_args_size_notes takes a pair of rtx_insnDavid Malcolm1-1/+1
gcc/ 2014-09-05 David Malcolm <dmalcolm@redhat.com> * emit-rtl.c (try_split): Update NULL_RTX to NULL in call to fixup_args_size_notes. * expr.c (fixup_args_size_notes): Strengthen first two params from rtx to rtx_insn *, eliminating a checked cast. * rtl.h (fixup_args_size_notes): Strengthen first two params from rtx to rtx_insn *. From-SVN: r214930
2014-09-04Change the types of arguments and return values for several functions from ↵Trevor Saunders1-5/+3
rtx to rtx_insn * gcc/ChangeLog: 2014-09-04 Trevor Saunders <tsaunders@mozilla.com> * emit-rtl.c (get_first_nonnote_insn): Return rtx_insn * instead of rtx. (get_last_nonnote_insn): Likewise. (next_nonnote_insn_bb): Take rtx_insn * instead of rtx. * resource.c (find_basic_block): Likewise. * rtl.h: Adjust. * rtlanal.c (keep_with_call_p): Take const rtx_insn * instead of const_rtx. From-SVN: r214922
2014-08-29Make next_insn and previous_insn require an rtx_insn *David Malcolm1-4/+2
gcc/ 2014-08-28 David Malcolm <dmalcolm@redhat.com> * rtl.h (previous_insn): Strengthen param from rtx to rtx_insn *. (next_insn): Likewise. * emit-rtl.c (next_insn): Likewise. (previous_insn): Likewise. * config/pa/pa.c (remove_useless_addtr_insns): Strenghten locals "insn" and "next" from rtx to rtx_insn *. * config/picochip/picochip.c (picochip_reorg): Likewise for locals "insn", "insn1", "vliw_start", "prologue_end_note", "last_insn_in_packet". From-SVN: r214708
2014-08-28Work towards NEXT_INSN/PREV_INSN requiring insns as their paramsDavid Malcolm1-68/+104
gcc/ 2014-08-28 David Malcolm <dmalcolm@redhat.com> * cfgexpand.c (pass_expand::execute): Strengthen local "after" from rtx to rtx_insn *. * cfgrtl.c (force_nonfallthru_and_redirect): Replace use of local rtx "note" with new local rtx_insn * "new_head" when calculating head insn of new basic block. * combine.c (combine_split_insns): Strengthen return type and local "ret" from rtx to rtx_insn *. (likely_spilled_retval_p): Likewise for locals "use" and "p". (try_combine): Eliminate local "m_split", splitting into new locals "m_split_insn" and "m_split_pat". (find_split_point): Strengthen local "seq" from rtx into rtx_insn *. * config/spu/spu.c (spu_machine_dependent_reorg): Likewise for locals "label", "branch". * config/spu/spu.md (define_expand "smulsi3_highpart"): Likewise for local "insn". (define_expand "umulsi3_highpart"): Likewise for local "insn". * dse.c (note_add_store_info): Likewise for fields "first", "current". (note_add_store): Likewise for local "insn". (emit_inc_dec_insn_before): Likewise for locals "insn", "new_insn", "cur". (find_shift_sequence): Likewise for locals "shift_seq", "insn". (replace_read): Likewise for locals "insns", "this_insn". * dwarf2cfi.c (dw_trace_info): Likewise for field "eh_head". (notice_eh_throw): Likewise for param "insn". (before_next_cfi_note): Likewise for return type, param, and local "prev". (connect_traces): Likewise for local "note". * emit-rtl.c (reset_all_used_flags): Likewise for local "p". (verify_rtl_sharing): Likewise. (unshare_all_rtl_in_chain): Likewise for param "insn". (get_first_nonnote_insn): Likewise for local "insn". (get_last_nonnote_insn): Likewise. Introduce local rtx_sequence * "seq" and use its methods to clarify things. (next_insn): Strengthen return type from rtx to rtx_insn *. Rename param "insn" to "uncast_insn" and reintroduce "insn" as a local rtx_insn * using a checked cast, dropping a checked cast made redundant by this change. Use a cast to and method of rtx_sequence to clarify the code. (previous_insn): Rename param "insn" to "uncast_insn" and reintroduce "insn" as a local rtx_insn * using a checked cast, dropping a checked cast made redundant by this change. Use a cast to and method of rtx_sequence to clarify the code. (next_nonnote_insn): Rename param "insn" to "uncast_insn" and reintroduce "insn" as a local rtx_insn * using a checked cast, dropping a checked cast made redundant by this change. (next_nonnote_insn_bb): Likewise. (prev_nonnote_insn): Likewise. (prev_nonnote_insn_bb): Likewise. (next_nondebug_insn): Likewise. (prev_nondebug_insn): Likewise. (next_nonnote_nondebug_insn): Likewise. (prev_nonnote_nondebug_insn): Likewise. (next_real_insn): Likewise. (prev_real_insn): Likewise. (next_active_insn): Likewise. (prev_active_insn): Likewise. (next_cc0_user): Likewise. Use rtx_sequence and a method for clarity. (prev_cc0_setter): Likewise. (try_split): Rename param "trial" to "uncast_trial" and reintroduce "insn" as a local rtx_insn * using a checked cast, dropping checked casts made redundant by this change. Strengthen locals "seq", "tem", "insn_last", "insn", "next" from rtx to rtx_insn *. (remove_insn): Rename param "insn" to "uncast_insn" and reintroduce "insn" as a local rtx_insn * using a checked cast. (emit_pattern_after_setloc): Likewise for param "after", as "uncast_after". (emit_pattern_after): Likewise. Strengthen local "prev" from rtx to rtx_insn *. (emit_pattern_before_setloc): Rename param "before" to "uncast_before" and reintroduce "before" as a local rtx_insn * using a checked cast. Strengthen locals "first", "last" from rtx to rtx_insn *. (emit_pattern_before): Likewise rename/cast param "before" to "uncast_before". Strengthen local "next" from rtx to rtx_insn *. * except.c (copy_reg_eh_region_note_forward): Strengthen param "first" and local "insn" from rtx to rtx_insn *. (copy_reg_eh_region_note_backward): Likewise for param "last" and local "insn". * expr.c (fixup_args_size_notes): Rename param "last" to "uncast_last" and reintroduce "last" as a local rtx_insn * using a checked cast. Strengthen local "insn" from rtx to rtx_insn *. * function.c (set_insn_locations): Strengthen param "insn" from rtx to rtx_insn *. (record_insns): Likewise for param "insns" and local "tmp". (active_insn_between): Rename param "tail" to "uncast_tail" and reintroduce "tail" as a local rtx_insn * using a checked cast. (thread_prologue_and_epilogue_insns): Split out top-level local rtx "seq" into three different rtx_insn * locals. Strengthen local "prologue_seq" from rtx to rtx_insn *. * gcse.c (insert_insn_end_basic_block): Strenghen local "insn" from rtx to rtx_insn *. * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise. (priority): Likewise for locals "prev_first", "twin". (setup_insn_max_reg_pressure): Likewise for param "after". (sched_setup_bb_reg_pressure_info): Likewise. (no_real_insns_p): Strengthen params from const_rtx to const rtx_insn *. (schedule_block): Strengthen local "next_tail" from rtx to rtx_insn *. * ifcvt.c (find_active_insn_before): Strengthen return type and param "insn" from rtx to rtx_insn *. (find_active_insn_after): Likewise. (cond_exec_process_insns): Likewise for param "start" and local "insn". (cond_exec_process_if_block): Likewise for locals "then_start", "then_end", "else_start", "else_end", "insn", "start", "end", "from". (noce_process_if_block): Likewise for local "jump". (merge_if_block): Likewise for two locals named "end". (cond_exec_find_if_block): Likewise for local "last_insn". * jump.c (delete_related_insns): Rename param "insn" to "uncast_insn" and reintroduce "insn" as a local rtx_insn * using a checked cast. Strengthen local "p" from rtx to rtx_insn *. * lra-constraints.c (inherit_reload_reg): Replace NULL_RTX with NULL. (split_reg): Likewise. * lra.c (lra_process_new_insns): Likewise. * modulo-sched.c (permute_partial_schedule): Strengthen param "last" from rtx to rtx_insn *. * optabs.c (add_equal_note): Likewise for param "insns" and local "last_insn". (expand_binop_directly): Add checked casts to rtx_insn * within NEXT_INSN (pat) uses. (expand_unop_direct): Likewise. (maybe_emit_unop_insn): Likewise. * recog.c (peep2_attempt): Strengthen locals "last", "before_try", "x" from rtx to rtx_insn *. * reorg.c (optimize_skip): Strengthen return type and local "delay_list" from rtx to rtx_insn_list *. Strengthen param "insn" and locals "trial", "next_trial" from rtx to rtx_insn *. * resource.c (next_insn_no_annul): Strengthen return type and param "insn" from rtx to rtx_insn *. Use a cast to and method of rtx_sequence to clarify the code. (mark_referenced_resources): Add a checked cast to rtx_insn * within PREV_INSN (x). (find_dead_or_set_registers): Strengthen return type, param "target", locals "insn", "next", "jump_insn", "this_jump_insn" from rtx to rtx_insn *. Strengthen param "jump_target" from rtx * to rtx_insn **. (mark_target_live_regs): Strengthen params "insns" and "target", locals "insn", "jump_target", "start_insn", "stop_insn" from rtx to rtx_insn *. Use cast to and method of rtx_sequence to clarify the code. * resource.h (mark_target_live_regs): Strengthen params 1 and 2 from rtx to rtx_insn *. * rtl.h (copy_reg_eh_region_note_forward): Strengthen second param from rtx to rtx_insn *. (copy_reg_eh_region_note_backward): Likewise. (unshare_all_rtl_in_chain): Likewise for sole param. (dump_rtl_slim): Strengthen second and third params from const_rtx to const rtx_insn *. * sched-deps.c (sched_free_deps): Strengthen params "head" and "tail" and locals "insn", "next_tail" from rtx to rtx_insn *. * sched-ebb.c (init_ready_list): Strengthen locals "prev_head", "next_tail" from rtx to rtx_insn *. (begin_move_insn): Likewise for local "next". * sched-int.h (sched_free_deps): Likewise for first and second params. (no_real_insns_p): Strengthen both params from const_rtx to const rtx_insn *. (sched_setup_bb_reg_pressure_info): Strengthen second params from rtx to rtx_insn *. * sched-rgn.c (init_ready_list): Likewise for locals "prev_head", "next_tail". * sched-vis.c (dump_rtl_slim): Strengthen params "first", "last" and locals "insn", "tail" from const_rtx to const rtx_insn *. (rtl_dump_bb_for_graph): Strengthen local "insn" from rtx to rtx_insn *. (debug_rtl_slim): Strengthen params "first" and "last" from const_rtx to const rtx_insn *. * shrink-wrap.c (try_shrink_wrapping): Strengthen param "prologue_seq" and locals "seq", "p_insn" from rtx to rtx_insn *. (convert_to_simple_return): Likewise for param "returnjump". * shrink-wrap.h (try_shrink_wrapping): Likewise for param "prologue_seq". (convert_to_simple_return): Likewise for param "returnjump". * valtrack.c (propagate_for_debug): Likewise for params "insn", "last". * valtrack.h (propagate_for_debug): Likewise for second param. From-SVN: r214693
2014-08-28Make SET_NEXT_INSN/SET_PREV_INSN require an rtx_insnDavid Malcolm1-15/+42
gcc/ 2014-08-28 David Malcolm <dmalcolm@redhat.com> * rtl.h (SET_PREV_INSN): Strengthen param from rtx to rtx_insn *. (SET_NEXT_INSN): Likewise. (gen_rtvec_v): Add an overload for param types (int, rtx_insn **). * config/c6x/c6x.c (gen_one_bundle): Strengthen param "slot" from rtx * to rtx_insn **. Introduce a new local rtx "seq", using it to split out the SEQUENCE from local "bundle", strengthening the latter from rtx to rtx_insn * to hold the insn holding the SEQUENCE. Strengthen locals "t" and "insn" from rtx to rtx_insn *. (c6x_gen_bundles): Strengthen locals "insn", "next", "last_call" and the type of the elements of the "slot" array from rtx to rtx_insn *. (reorg_split_calls): Likewise for locals "insn" and "next", and the type of the elements of the "slot" array. * config/frv/frv.c (frv_nops): Likewise for the elements of this array. (frv_function_prologue): Likewise for locals "insn", "next", "last_call". (frv_register_nop): Introduce a local "nop_insn" to be the rtx_insn * containing rtx "nop". * config/mep/mep.c (mep_make_bundle): Param "core" is sometimes used as an insn and sometimes as a pattern, so rename it to "core_insn_or_pat", and introduce local rtx_insn * "core_insn", using it where dealing with the core insn. * config/picochip/picochip.c (reorder_var_tracking_notes): Strengthen locals "insn", "next", "last_insn", "queue", "next_queue", "prev" from rtx to rtx_insn *. * emit-rtl.c (gen_rtvec_v): Add overloaded implementation for when the second param is an rtx_insn ** rather than an rtx **. (link_insn_into_chain): Strengthen locals "seq" and "sequence" from rtx to rtx_sequence *, and introduce local named "sequence", using methods of rtx_sequence to clarify the code. (remove_insn): Introduce local rtx_sequence * named "sequence" and use its methods. (emit_insn_after_1): Strengthen return type from rtx to rtx_insn *. Rename param "after" to "uncast_after", reintroducing "after" as a local rtx_insn * with a checked cast. (emit_pattern_after_noloc): Rename param "after" to "uncast_after", reintroducing "after" as a local rtx_insn * with a checked cast. Strengthen local "last" from rtx to rtx_insn * and remove the now-redundant checked casts. (copy_delay_slot_insn): Strengthen return type and param from rtx to rtx_insn *. * haifa-sched.c (reemit_notes): Strengthen params "insn" and "last" from rtx to rtx_insn *. From-SVN: r214685
2014-08-28Use rtx subclasses in more places in reorg.cDavid Malcolm1-3/+3
gcc/ 2014-08-28 David Malcolm <dmalcolm@redhat.com> * emit-rtl.h (copy_delay_slot_insn): Strengthen return type and param from rtx to rtx_insn *. * emit-rtl.c (copy_delay_slot_insn): Likewise. * reorg.c (skip_consecutive_labels): Strengthen return type, param and local "insn" from rtx to rtx_insn *. (unfilled_slots_base): Strengthen type from rtx * to rtx_insn **. (unfilled_slots_next): Likewise. (function_return_label): Strengthen from rtx to rtx_code_label *. (function_simple_return_label): Likewise. (first_active_target_insn): Strengthen return type and param from rtx to rtx_insn *. (find_end_label): Strengthen return type from rtx to rtx_code_label *; strengthen locals as appropriate. (emit_delay_sequence): Strengthen return type, param "insn" and local "seq_insn" from rtx to rtx_insn *. Strengthen param "list" and local "li" from rtx to rtx_insn_list *, using methods of rtx_insn_list for clarity and typesafety. (add_to_delay_list): Strengthen return type and param "insn" from rtx to rtx_insn *. Strengthen param "delay_list" from rtx to rtx_insn_list * and use methods of rtx_insn_list. (delete_from_delay_slot): Strengthen return type, param "insn", locals "trial", "seq_insn", "prev" from rtx to rtx_insn *. Strengthen local "seq" from rtx to rtx_sequence *, and local "delay_list" from rtx to rtx_insn_list *, using methods of rtx_sequence for clarity and type-safety. (delete_scheduled_jump): Add checked cast when invoking delete_from_delay_slot. Strengthen local "trial" from rtx to rtx_insn *. (optimize_skip): Strengthen return type and local "delay_list" from rtx to rtx_insn_list *. Strengthen local "trial" from rtx to rtx_insn *. (steal_delay_list_from_target): Strengthen return type, param "delay_list" and local "new_delay_list" from rtx to rtx_insn_list *. Strengthen param "seq" from rtx to rtx_sequence *. Strengthen param "pnew_thread" from rtx * to rtx_insn **. Split out local "temp" into multiple more-tightly scoped locals: sometimes an rtx_insn_list *, and once a rtx_insn *. Use methods of rtx_insn_list and rtx_sequence for clarity and typesafety. Strengthen locals named "trial" from rtx to rtx_insn *. (steal_delay_list_from_fallthrough): Strengthen return type and param "delay_list" from rtx to rtx_insn_list *. Strengthen param "seq" from rtx to rtx_sequence *. Use methods of rtx_sequence. Strengthen local "trial" from rtx to rtx_insn *. (try_merge_delay_insns): Strength local "merged_insns" from rtx to rtx_insn_list * and use its methods. Strengthen local "pat" from rtx to rtx_sequence * and use its methods. Strengthen locals "dtrial" and "new_rtx" from rtx to rtx_insn *. (get_label_before): Strengthen return type and local "label" from rtx to rtx_insn *. (fill_simple_delay_slots): Likewise for locals "insn", "trial", "next_trial", "next", prev". Strengthen local "delay_list" from rtx to rtx_insn_list * Strengthen local "tmp" from rtx * to rtx_insn **. (follow_jumps): Strengthen return type, param "label" and locals "insn", "next", "value", "this_label" from rtx to rtx_insn *. (fill_slots_from_thread): Strengthen return type, param "delay_list" from rtx to rtx_insn_list *. Strengthen params "insn", "thread", "opposite_thread" and locals "new_thread", "trial", "temp", "ninsn" from rtx to rtx_insn *. Introduce local "sequence" from a checked cast to rtx_sequence so that we can call steal_delay_list_from_target and steal_delay_list_from_fallthrough with an rtx_sequence *. (fill_eager_delay_slots): Strengthen locals "insn", "target_label", "insn_at_target", "fallthrough_insn" from rtx to rtx_insn *. Strengthen local "delay_list" from rtx to rtx_insn_list *. (relax_delay_slots): Strengthen param "first" and locals "insn", "next", "trial", "delay_insn", "target_label" from rtx to rtx_insn *. Strengthen local "pat" from rtx to rtx_sequence *. Introduce a local "trial_seq" for PATTERN (trial) of type rtx_sequence *, in both cases using methods of rtx_sequence. (dbr_schedule): Strengthen param "first" and locals "insn", "next", "epilogue_insn" from rtx to rtx_insn *. From-SVN: r214684
2014-08-28emit-rtl.c: Include rtl-iter.h.Richard Sandiford1-22/+10
gcc/ * emit-rtl.c: Include rtl-iter.h. (find_auto_inc): Turn from being a for_each_rtx callback to being a function that examines each subrtx itself. Assume the first operand to an RTX_AUTOINC is the automodified register. (try_split): Update call accordingly. From-SVN: r214638
2014-08-27emit-rtl.c (set_unique_reg_note): Discard notes with side effects.Richard Sandiford1-0/+8
gcc/ * emit-rtl.c (set_unique_reg_note): Discard notes with side effects. From-SVN: r214609
2014-08-27rtl_data.x_stack_slot_list becomes an rtx_expr_listDavid Malcolm1-1/+2
gcc/ 2014-08-27 David Malcolm <dmalcolm@redhat.com> * function.h (struct rtl_data): Strengthen field "x_stack_slot_list" from rtx to rtx_expr_list *. * emit-rtl.c (unshare_all_rtl_1): Add a checked cast when assigning to stack_slot_list. From-SVN: r214604
2014-08-27Introduce rtx_expr_list subclass of rtx_defDavid Malcolm1-0/+7
gcc/ 2014-08-27 David Malcolm <dmalcolm@redhat.com> * coretypes.h (class rtx_expr_list): Add forward declaration. * emit-rtl.c (gen_rtx_EXPR_LIST): New. * gengenrtl.c (special_rtx): Add EXPR_LIST. * rtl.h (class rtx_expr_list): New subclass of rtx_def, adding invariant: GET_CODE (X) == EXPR_LIST. (is_a_helper <rtx_expr_list *>::test): New. (rtx_expr_list::next): New. (rtx_expr_list::element): New. (gen_rtx_EXPR_LIST): New. From-SVN: r214601
2014-08-27Introduce rtx_insn_list subclass of rtx_defDavid Malcolm1-0/+7
gcc/ 2014-08-27 David Malcolm <dmalcolm@redhat.com> * coretypes.h (class rtx_insn_list): Add forward declaration. * rtl.h (class rtx_insn_list): New subclass of rtx_def (is_a_helper <rtx_insn_list *>::test): New. (rtx_insn_list::next): New. (rtx_insn_list::insn): New. (gen_rtx_INSN_LIST): Add prototype. * emit-rtl.c (gen_rtx_INSN_LIST): New. * gengenrtl.c (special_rtx): Add INSN_LIST. From-SVN: r214589
2014-08-26Remove DF_REF_INSN scaffoldingDavid Malcolm1-3/+3
gcc/ 2014-08-26 David Malcolm <dmalcolm@redhat.com> * df.h (df_dump_insn_problem_function): Strengthen first param of this callback from const_rtx to const rtx_insn *. (struct df_insn_info): Strengthen field "insn" from rtx to rtx_insn *. (DF_REF_INSN): Eliminate this function, reinstating the older macro definition. (df_find_def): Strengthen param 1 from rtx to rtx_insn *. (df_reg_defined): Likewise. (df_find_use): Likewise. (df_reg_used): Likewise. (df_dump_insn_top): Strengthen param 1 from const_rtx to const rtx_insn *. (df_dump_insn_bottom): Likewise. (df_insn_debug): Strengthen param 1 from rtx to rtx_insn *. (df_insn_debug_regno): Likewise. (debug_df_insn): Likewise. (df_rd_simulate_one_insn): Likewise for param 2. (df_word_lr_simulate_defs): Likewise for param 1. (df_word_lr_simulate_uses): Likewise. (df_md_simulate_one_insn): Likewise for param 2. (df_simulate_find_noclobber_defs): Likewise for param 1. (df_simulate_find_defs): Likewise. (df_simulate_defs): Likewise. (df_simulate_uses): Likewise. (df_simulate_one_insn_backwards): Likewise for param 2. (df_simulate_one_insn_forwards): Likewise. (df_uses_create): Likewise for param 2. (df_insn_create_insn_record): Likewise for param 1. (df_insn_delete): Likewise. (df_insn_rescan): Likewise. (df_insn_rescan_debug_internal): Likewise. (df_insn_change_bb): Likewise. (df_notes_rescan): Likewise. * rtl.h (remove_death): Likewise for param 2. (print_rtl_with_bb): Strengthen param 2 from const_rtx to const rtx_insn *. * sched-int.h (reemit_notes): Strengthen param from rtx to rtx_insn *. * valtrack.h (propagate_for_debug): Likewise for param 1. * cfgrtl.c (print_rtl_with_bb): Strengthen param "rtx_first" and local "tmp_rtx" from const_rtx to const rtx_insn *. * combine.c (remove_death): Strengthen param "insn" from rtx to rtx_insn *. (move_deaths): Likewise for local "where_dead". * cse.c (delete_trivially_dead_insns): Introduce local "bind_var_loc" so that "bind" can be strengthened to an rtx_insn *. * df-core.c (df_find_def): Strengthen param "insn" from rtx to rtx_insn *. (df_reg_defined): Likewise. (df_find_use): Likewise. (df_reg_used): Likewise. (df_dump_insn_problem_data): Strengthen param "insn" from const_rtx to const rtx_insn *. (df_dump_insn_top): Likewise. (df_dump_insn_bottom): Likewise. (df_insn_debug): Strengthen param "insn" from rtx to rtx_insn *. (df_insn_debug_regno): Likewise. (debug_df_insn): Likewise. (DF_REF_INSN): Delete. * df-problems.c (df_rd_simulate_one_insn): Strengthen param "insn" from rtx to rtx_insn *. (df_chain_insn_top_dump): Strengthen param "insn" from const_rtx to const rtx_insn *. (df_chain_insn_bottom_dump): Likewise. (df_word_lr_simulate_defs): Strengthen param "insn" from rtx to rtx_insn *. (df_word_lr_simulate_uses): Likewise. (df_print_note): Likewise. (df_remove_dead_and_unused_notes): Likewise. (df_set_unused_notes_for_mw): Likewise. (df_set_dead_notes_for_mw): Likewise. (df_create_unused_note): Likewise. (df_simulate_find_defs): Likewise. (df_simulate_find_uses): Likewise. (df_simulate_find_noclobber_defs): Likewise. (df_simulate_defs): Likewise. (df_simulate_uses): Likewise. (df_simulate_one_insn_backwards): Likewise. (df_simulate_one_insn_forwards): Likewise. (df_md_simulate_one_insn): Likewise. * df-scan.c (df_uses_create): Likewise. (df_insn_create_insn_record): Likewise. (df_insn_delete): Likewise. (df_insn_rescan): Likewise. (df_insn_rescan_debug_internal): Likewise. (df_insn_change_bb): Likewise. (df_notes_rescan): Likewise. (df_refs_add_to_chains): Likewise. (df_insn_refs_verify): Likewise. * emit-rtl.c (set_insn_deleted): Add checked cast to rtx_insn * when invoking df_insn_delete. (reorder_insns): Strengthen local "x" from rtx to rtx_insn *. (set_unique_reg_note): Add checked cast. * final.c (cleanup_subreg_operands): Likewise. * gcse.c (update_ld_motion_stores): Likewise, strengthening local "insn" from rtx to rtx_insn *. * haifa-sched.c (reemit_notes): Strengthen param "insn" and local "last" from rtx to rtx_insn *. * ira-emit.c (change_regs_in_insn): New function. (change_loop): Strengthen local "insn" from rtx to rtx_insn *. Invoke change_regs_in_insn rather than change_regs. * ira.c (update_equiv_regs): Strengthen locals "insn", "init_insn", "new_insn" from rtx to rtx_insn *. Invoke for_each_rtx_in_insn rather than for_each_rtx. * recog.c (confirm_change_group): Add checked casts. (peep2_update_life): Strengthen local "x" from rtx to rtx_insn *. Add checked cast. (peep2_fill_buffer): Add checked cast. * rtlanal.c (remove_note): Likewise. * valtrack.c (propagate_for_debug): Strengthen param "insn" and locals "next" "end" from rtx to rtx_insn *. / 2014-08-26 David Malcolm <dmalcolm@redhat.com> * rtx-classes-status.txt (TODO): DF_REF_INSN is done. From-SVN: r214548
2014-08-26Strengthen various insn emission functionsDavid Malcolm1-8/+8
gcc/ 2014-08-26 David Malcolm <dmalcolm@redhat.com> * rtl.h (push_to_sequence): Strengthen param from rtx to rtx_insn *. (push_to_sequence2): Likewise for both params. (delete_insns_since): Likewise for param. (reorder_insns_nobb): Likewise for all three params. (set_new_first_and_last_insn): Likewise for both params. * emit-rtl.h (set_first_insn): Strengthen param "insn" from rtx to rtx_insn *. Remove now-redundant cast. (set_last_insn): Likewise. * builtins.c (expand_builtin_return): Strengthen local "call_fusage" from rtx to rtx_insn *. * cfgrtl.c (create_basic_block_structure): Likewise for local "after". * emit-rtl.c (set_new_first_and_last_insn): Likewise for params "first", "last" and local "insn". (delete_insns_since): Likewise for param "from". (reorder_insns_nobb): Likewise for params "from", "to", "after" and local "x". (push_to_sequence): Likewise for param "first" and local "last". (push_to_sequence2): Likewise for params "first" and "last". * lra.c (emit_add3_insn): Likewise for local "last". (lra_emit_add): Likewise. * lra-constraints.c (base_to_reg): Likewise for locals "insn", "last_insn". (process_address_1): Likewise for locals "insn", last". * modulo-sched.c (ps_first_note): Likewise for return type. * optabs.c (expand_binop_directly): Likewise for param "last". From-SVN: r214539
2014-08-26get_last_insn_anywhere returns an rtx_insnDavid Malcolm1-1/+1
gcc/ 2014-08-26 David Malcolm <dmalcolm@redhat.com> * rtl.h (get_last_insn_anywhere): Strengthen return type from rtx to rtx_insn*. * emit-rtl.c (get_last_insn_anywhere): Likewise. From-SVN: r214538
2014-08-26Params of add_insn and unlink_insn_chainDavid Malcolm1-12/+17
gcc/ 2014-08-26 David Malcolm <dmalcolm@redhat.com> * rtl.h (add_insn): Strengthen param from rtx to rtx_insn *. (unlink_insn_chain): Strengthen both params from rtx to rtx_insn *. * cfgrtl.c (cfg_layout_function_header): Likewise for this variable. (unlink_insn_chain): Likewise for params "first" and "last". Remove now-redundant checked cast. (record_effective_endpoints): Replace use of NULL_RTX with NULL. (fixup_reorder_chain): Strengthen local "insn" from rtx to rtx_insn *. * emit-rtl.c (link_insn_into_chain): Likewise for all three params. (add_insn): Likewise for param "insn" and local "prev". (add_insn_after_nobb): Likewise for both params and local "next". (add_insn_before_nobb): Likewise for both params and local "prev". (add_insn_after): Rename param "after" to "uncast_after", introducing local "after" with another checked cast. (add_insn_before): Rename params "insn" and "before", giving them "uncast_" prefixes, adding the old names back using checked casts. (emit_note_after): Likewise for param "after". (emit_note_before): Likewise for param "before". (emit_label): Add a checked cast. From-SVN: r214536
2014-08-26Remove BB_HEAD, BB_END, BB_HEADER scaffoldingDavid Malcolm1-13/+14
gcc/ * basic-block.h (struct rtl_bb_info): Strengthen fields "end_" and "header_" from rtx to rtx_insn *. (struct basic_block_d): Likewise for field "head_" within "x" field of union basic_block_il_dependent. (BB_HEAD): Drop function... (SET_BB_HEAD): ...and this function in favor of... (BB_HEAD): ...reinstate macro. (BB_END): Drop function... (SET_BB_END): ...and this function in favor of... (BB_END): ...reinstate macro. (BB_HEADER): Drop function... (SET_BB_HEADER): ...and this function in favor of... (BB_HEADER): ...reinstate macro. * bb-reorder.c (add_labels_and_missing_jumps): Drop use of BB_END. (fix_crossing_unconditional_branches): Likewise. * caller-save.c (save_call_clobbered_regs): Likewise. (insert_one_insn): Drop use of SET_BB_HEAD and SET_BB_END. * cfgbuild.c (find_bb_boundaries): Drop use of SET_BB_END. * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise. (merge_blocks_move_successor_nojumps): Likewise. (outgoing_edges_match): Update use of for_each_rtx to for_each_rtx_in_insn. * cfgexpand.c (expand_gimple_cond): Drop use of SET_BB_END. (expand_gimple_cond): Likewise. (expand_gimple_tailcall): Likewise. (expand_gimple_basic_block): Drop use of SET_BB_HEAD and SET_BB_END. (construct_exit_block): Drop use of SET_BB_END. * cfgrtl.c (cfg_layout_function_footer): Strengthen from rtx to rtx_insn *. (delete_insn): Rename param "insn" to "uncast_insn", introducing a new local "insn" with a checked cast to rtx_insn *. Drop use of SET_BB_HEAD and SET_BB_END. (create_basic_block_structure): Drop use of SET_BB_HEAD and SET_BB_END. (rtl_delete_block): Drop use of SET_BB_HEAD. (rtl_split_block): Drop use of SET_BB_END. (emit_nop_for_unique_locus_between): Likewise. (rtl_merge_blocks): Drop use of SET_BB_END and SET_BB_HEAD. (block_label): Drop use of SET_BB_HEAD. (fixup_abnormal_edges): Drop use of SET_BB_END. (record_effective_endpoints): Drop use of SET_BB_HEADER. (relink_block_chain): Likewise. (fixup_reorder_chain): Drop use of SET_BB_END. (cfg_layout_duplicate_bb): Drop use of SET_BB_HEADER. (cfg_layout_delete_block): Strengthen local "to" from rtx * to rtx_insn **. Drop use of SET_BB_HEADER. (cfg_layout_merge_blocks): Drop use of SET_BB_HEADER, SET_BB_END, SET_BB_HEAD. (BB_HEAD): Delete this function. (SET_BB_HEAD): Likewise. (BB_END): Likewise. (SET_BB_END): Likewise. (BB_HEADER): Likewise. (SET_BB_HEADER): Likewise. * emit-rtl.c (add_insn_after): Rename param "insn" to "uncast_insn", adding a new local "insn" and a checked cast to rtx_insn *. Drop use of SET_BB_END. (remove_insn): Strengthen locals "next" and "prev" from rtx to rtx_insn *. Drop use of SET_BB_HEAD and SET_BB_END. (reorder_insns): Drop use of SET_BB_END. (emit_insn_after_1): Strengthen param "first" and locals "last", "after_after" from rtx to rtx_insn *. Drop use of SET_BB_END. (emit_pattern_after_noloc): Add checked cast. * haifa-sched.c (get_ebb_head_tail): Drop use of SET_BB_END. (restore_other_notes): Likewise. (move_insn): Likewise. (sched_extend_bb): Likewise. (fix_jump_move): Likewise. * ifcvt.c (noce_process_if_block): Likewise. (dead_or_predicable): Likewise. * ira.c (update_equiv_regs): Drop use of SET_BB_HEAD. * reg-stack.c (change_stack): Drop use of SET_BB_END. * sel-sched-ir.c (sel_move_insn): Likewise. * sel-sched.c (move_nop_to_previous_block): Likewise. * config/c6x/c6x.c (hwloop_optimize): Drop use of SET_BB_HEAD and SET_BB_END. * config/ia64/ia64.c (emit_predicate_relation_info): Likewise. / * rtx-classes-status.txt (TODO): SET_BB_HEAD, SET_BB_END, SET_BB_HEADER are done. From-SVN: r214534
2014-08-25unshare_all_rtl_again takes an rtx_insn *David Malcolm1-3/+3
gcc/ * rtl.h (unshare_all_rtl_again): Strengthen param "insn" from rtx to rtx_insn *. * emit-rtl.c (unshare_all_rtl_1): Likewise. (unshare_all_rtl_again): Likewise, also for local "p". From-SVN: r214475
2014-08-25reorder_insns requires rtx_insn *David Malcolm1-2/+2
gcc/ * rtl.h (reorder_insns): Strengthen params "from", "to", "after" from rtx to rtx_insn *. * emit-rtl.c (reorder_insns): Likewise, also for local "insn". From-SVN: r214473
2014-08-21try_split returns an rtx_insnDavid Malcolm1-6/+6
2014-08-21 David Malcolm <dmalcolm@redhat.com> * rtl.h (try_split): Strengthen return type from rtx to rtx_insn *. * emit-rtl.c (try_split): Likewise, also for locals "before" and "after". For now, don't strengthen param "trial", which requires adding checked casts when returning it. From-SVN: r214260
2014-08-19next_cc0_user and prev_cc0_setter scaffoldingDavid Malcolm1-6/+6
2014-08-19 David Malcolm <dmalcolm@redhat.com> * rtl.h (next_cc0_user): Strengthen return type from rtx to rtx_insn *. (prev_cc0_setter): Likewise. * emit-rtl.c (next_cc0_user): Strengthen return type from rtx to rtx_insn *, adding checked casts for now as necessary. (prev_cc0_setter): Likewise. From-SVN: r214196
2014-08-19emit_* functions return rtx_insnDavid Malcolm1-76/+78
2014-08-19 David Malcolm <dmalcolm@redhat.com> * emit-rtl.h (emit_copy_of_insn_after): Strengthen return type from rtx to rtx_insn *. * rtl.h (emit_insn_before): Likewise. (emit_insn_before_noloc): Likewise. (emit_insn_before_setloc): Likewise. (emit_jump_insn_before): Likewise. (emit_jump_insn_before_noloc): Likewise. (emit_jump_insn_before_setloc): Likewise. (emit_call_insn_before): Likewise. (emit_call_insn_before_noloc): Likewise. (emit_call_insn_before_setloc): Likewise. (emit_debug_insn_before): Likewise. (emit_debug_insn_before_noloc): Likewise. (emit_debug_insn_before_setloc): Likewise. (emit_label_before): Likewise. (emit_insn_after): Likewise. (emit_insn_after_noloc): Likewise. (emit_insn_after_setloc): Likewise. (emit_jump_insn_after): Likewise. (emit_jump_insn_after_noloc): Likewise. (emit_jump_insn_after_setloc): Likewise. (emit_call_insn_after): Likewise. (emit_call_insn_after_noloc): Likewise. (emit_call_insn_after_setloc): Likewise. (emit_debug_insn_after): Likewise. (emit_debug_insn_after_noloc): Likewise. (emit_debug_insn_after_setloc): Likewise. (emit_label_after): Likewise. (emit_insn): Likewise. (emit_debug_insn): Likewise. (emit_jump_insn): Likewise. (emit_call_insn): Likewise. (emit_label): Likewise. (gen_clobber): Likewise. (emit_clobber): Likewise. (gen_use): Likewise. (emit_use): Likewise. (emit): Likewise. (emit_barrier_before): Strengthen return type from rtx to rtx_barrier *. (emit_barrier_after): Likewise. (emit_barrier): Likewise. * emit-rtl.c (emit_pattern_before_noloc): Strengthen return type from rtx to rtx_insn *. Add checked casts for now when converting "last" from rtx to rtx_insn *. (emit_insn_before_noloc): Likewise for return type. (emit_jump_insn_before_noloc): Likewise. (emit_call_insn_before_noloc): Likewise. (emit_debug_insn_before_noloc): Likewise. (emit_barrier_before): Strengthen return type and local "insn" from rtx to rtx_barrier *. (emit_label_before): Strengthen return type from rtx to rtx_insn *. Add checked cast for now when returning param (emit_pattern_after_noloc): Strengthen return type from rtx to rtx_insn *. Add checked casts for now when converting "last" from rtx to rtx_insn *. (emit_insn_after_noloc): Strengthen return type from rtx to rtx_insn *. (emit_jump_insn_after_noloc): Likewise. (emit_call_insn_after_noloc): Likewise. (emit_debug_insn_after_noloc): Likewise. (emit_barrier_after): Strengthen return type from rtx to rtx_barrier *. (emit_label_after): Strengthen return type from rtx to rtx_insn *. Add checked cast for now when converting "label" from rtx to rtx_insn *. (emit_pattern_after_setloc): Strengthen return type from rtx to rtx_insn *. Add checked casts for now when converting "last" from rtx to rtx_insn *. (emit_pattern_after): Strengthen return type from rtx to rtx_insn *. (emit_insn_after_setloc): Likewise. (emit_insn_after): Likewise. (emit_jump_insn_after_setloc): Likewise. (emit_jump_insn_after): Likewise. (emit_call_insn_after_setloc): Likewise. (emit_call_insn_after): Likewise. (emit_debug_insn_after_setloc): Likewise. (emit_debug_insn_after): Likewise. (emit_pattern_before_setloc): Likewise. Add checked casts for now when converting "last" from rtx to rtx_insn *. (emit_pattern_before): Strengthen return type from rtx to rtx_insn *. (emit_insn_before_setloc): Likewise. (emit_insn_before): Likewise. (emit_jump_insn_before_setloc): Likewise. (emit_jump_insn_before): Likewise. (emit_call_insn_before_setloc): Likewise. (emit_call_insn_before): Likewise. (emit_debug_insn_before_setloc): Likewise. (emit_debug_insn_before): Likewise. (emit_insn): Strengthen return type and locals "last", "insn", "next" from rtx to rtx_insn *. Add checked cast to rtx_insn within cases where we know we have an insn. (emit_debug_insn): Likewise. (emit_jump_insn): Likewise. (emit_call_insn): Strengthen return type and local "insn" from rtx to rtx_insn *. (emit_label): Strengthen return type from rtx to rtx_insn *. Add a checked cast to rtx_insn * for now on "label". (emit_barrier): Strengthen return type from rtx to rtx_barrier *. (emit_clobber): Strengthen return type from rtx to rtx_insn *. (emit_use): Likewise. (gen_use): Likewise, also for local "seq". (emit): Likewise for return type and local "insn". (rtx_insn): Likewise for return type and local "new_rtx". * cfgrtl.c (emit_barrier_after_bb): Strengthen local "barrier" from rtx to rtx_barrier *. * config/sh/sh.c (output_stack_adjust): Since emit_insn has changed return type from rtx to rtx_insn *, we must update "emit_fn" type, and this in turn means updating... (frame_insn): ...this. Strengthen return type from rtx to rtx_insn *. Introduce a new local "insn" of the appropriate type. From-SVN: r214194
2014-08-19emit_jump_table_data returns an rtx_jump_table_data *David Malcolm1-2/+3
2014-08-19 David Malcolm <dmalcolm@redhat.com> * emit-rtl.c (emit_jump_table_data): Strengthen return type from rtx to rtx_jump_table_data *. Also for local. * rtl.h (emit_jump_table_data): Likewise. From-SVN: r214193
2014-08-19Convert various rtx to rtx_note *David Malcolm1-11/+11
2014-08-19 David Malcolm <dmalcolm@redhat.com> * basic-block.h (create_basic_block_structure): Strengthen third param "bb_note" from rtx to rtx_note *. * rtl.h (emit_note_before): Strengthen return type from rtx to rtx_note *. (emit_note_after): Likewise. (emit_note): Likewise. (emit_note_copy): Likewise. Also, strengthen param similarly. * function.h (struct rtl_data): Strengthen field "x_stack_check_probe_note" from rtx to rtx_note *. * cfgexpand.c (expand_gimple_basic_block): Strengthen local "note" from rtx to rtx_note *. * cfgrtl.c (create_basic_block_structure): Strengthen third param "bb_note" from rtx to rtx_note *. (duplicate_insn_chain): Likewise for local "last". Add a checked cast when calling emit_note_copy. * emit-rtl.c (make_note_raw): Strengthen return type from rtx to rtx_note *. (emit_note_after): Likewise. (emit_note_before): Likewise. (emit_note_copy): Likewise. Also, strengthen param similarly. (emit_note): Likewise. * except.c (emit_note_eh_region_end): Likewise for return type. Strengthen local "next" from rtx to rtx_insn *. (convert_to_eh_region_ranges): Strengthen local "note" from rtx to rtx_note *. * final.c (change_scope): Likewise. (reemit_insn_block_notes): Likewise, for both locals named "note". Also, strengthen local "insn" from rtx to rtx_insn *. * haifa-sched.c (sched_extend_bb): Strengthen local "note" from rtx to rtx_note *. * reg-stack.c (compensate_edge): Likewise for local "after". Also, strengthen local "seq" from rtx to rtx_insn *. * reload1.c (reload_as_needed): Strengthen local "marker" from rtx to rtx_note *. * sel-sched-ir.c (bb_note_pool): Strengthen from rtx_vec_t to vec<rtx_note *>. (get_bb_note_from_pool): Strengthen return type from rtx to rtx_note *. (sel_create_basic_block): Strengthen local "new_bb_note" from insn_t to rtx_note *. * var-tracking.c (emit_note_insn_var_location): Strengthen local "note" from rtx to rtx_note *. (emit_notes_in_bb): Likewise. From-SVN: r214192
2014-08-19make_insn_raw returns an rtx_insnDavid Malcolm1-21/+21
2014-08-19 David Malcolm <dmalcolm@redhat.com> * rtl.h (make_insn_raw): Strengthen return type from rtx to rtx_insn *. * emit-rtl.c (make_insn_raw): Strengthen return type and local "insn" from rtx to rtx_insn *. (make_debug_insn_raw): Strengthen return type from rtx to rtx_insn *; strengthen local "insn" from rtx to rtx_debug_insn *. (make_jump_insn_raw): Strengthen return type from rtx to rtx_insn *; strengthen local "insn" from rtx to rtx_jump_insn *. (make_call_insn_raw): Strengthen return type from rtx to rtx_insn *; strengthen local "insn" from rtx to rtx_call_insn *. (emit_pattern_before_noloc): Strengthen return type of "make_raw" callback from rtx to rtx_insn *; likewise for local "insn" and "next", adding a checked cast to rtx_insn in the relevant cases of the switch statement. (emit_pattern_after_noloc): Strengthen return type of "make_raw" callback from rtx to rtx_insn *. (emit_pattern_after_setloc): Likewise. (emit_pattern_after): Likewise. (emit_pattern_before_setloc): Likewise. (emit_pattern_before): Likewise. From-SVN: r214187
2014-08-19last_call_insn returns an rtx_call_insn *David Malcolm1-3/+3
2014-08-19 David Malcolm <dmalcolm@redhat.com> * emit-rtl.c (last_call_insn): Strengthen return type from rtx to rtx_call_insn *. * rtl.h (is_a_helper <rtx_call_insn *>::test): New overload, accepting an rtx_insn *. (last_call_insn): Strengthen return type from rtx to rtx_call_insn *. From-SVN: r214186
2014-08-19Strengthen return type of gen_label_rtxDavid Malcolm1-3/+4
2014-08-19 David Malcolm <dmalcolm@redhat.com> * rtl.h (gen_label_rtx): Strengthen return type from rtx to rtx_code_label *. * emit-rtl.c (gen_label_rtx): Likewise. From-SVN: r214179
2014-08-19Strengthen return types of various {next|prev}_*insn from rtx to rtx_insn *David Malcolm1-30/+30
2014-08-19 David Malcolm <dmalcolm@redhat.com> * rtl.h (previous_insn): Strengthen return type from rtx to rtx_insn *. (next_insn): Likewise. (prev_nonnote_insn): Likewise. (prev_nonnote_insn_bb): Likewise. (next_nonnote_insn): Likewise. (next_nonnote_insn_bb): Likewise. (prev_nondebug_insn): Likewise. (next_nondebug_insn): Likewise. (prev_nonnote_nondebug_insn): Likewise. (next_nonnote_nondebug_insn): Likewise. (prev_real_insn): Likewise. (next_real_insn): Likewise. (prev_active_insn): Likewise. (next_active_insn): Likewise. * emit-rtl.c (next_insn): Strengthen return type from rtx to rtx_insn *, adding a checked cast. (previous_insn): Likewise. (next_nonnote_insn): Likewise. (next_nonnote_insn_bb): Likewise. (prev_nonnote_insn): Likewise. (prev_nonnote_insn_bb): Likewise. (next_nondebug_insn): Likewise. (prev_nondebug_insn): Likewise. (next_nonnote_nondebug_insn): Likewise. (prev_nonnote_nondebug_insn): Likewise. (next_real_insn): Likewise. (prev_real_insn): Likewise. (next_active_insn): Likewise. (prev_active_insn): Likewise. * config/sh/sh-protos.h (sh_find_set_of_reg): Convert function ptr param "stepfunc" so that it returns an rtx_insn * rather than an rtx, to track the change to prev_nonnote_insn_bb, which is the only function this is called with. * config/sh/sh.c (sh_find_set_of_reg): Likewise. From-SVN: r214178
2014-08-19Split NEXT_INSN/PREV_INSN into lvalue and rvalue formsDavid Malcolm1-24/+24
/ 2014-08-19 David Malcolm <dmalcolm@redhat.com> * rtx-classes-status.txt: Add SET_NEXT_INSN, SET_PREV_INSN. gcc/ 2014-08-19 David Malcolm <dmalcolm@redhat.com> * rtl.h (PREV_INSN): Split macro in two: the existing one, for rvalues, and... (SET_PREV_INSN): New macro, for use as an lvalue. (NEXT_INSN, SET_NEXT_INSN): Likewise. * caller-save.c (save_call_clobbered_regs): Convert lvalue use of PREV_INSN/NEXT_INSN into SET_PREV_INSN/SET_NEXT_INSN. * cfgrtl.c (try_redirect_by_replacing_jump): Likewise. (fixup_abnormal_edges): Likewise. (unlink_insn_chain): Likewise. (fixup_reorder_chain): Likewise. (cfg_layout_delete_block): Likewise. (cfg_layout_merge_blocks): Likewise. * combine.c (update_cfg_for_uncondjump): Likewise. * emit-rtl.c (link_insn_into_chain): Likewise. (remove_insn): Likewise. (delete_insns_since): Likewise. (reorder_insns_nobb): Likewise. (emit_insn_after_1): Likewise. * final.c (rest_of_clean_state): Likewise. (final_scan_insn): Likewise. * gcse.c (can_assign_to_reg_without_clobbers_p): Likewise. * haifa-sched.c (concat_note_lists): Likewise. (remove_notes): Likewise. (restore_other_notes): Likewise. (move_insn): Likewise. (unlink_bb_notes): Likewise. (restore_bb_notes): Likewise. * jump.c (delete_for_peephole): Likewise. * optabs.c (emit_libcall_block_1): Likewise. * reorg.c (emit_delay_sequence): Likewise. (fill_simple_delay_slots): Likewise. * sel-sched-ir.c (sel_move_insn): Likewise. (sel_remove_insn): Likewise. (get_bb_note_from_pool): Likewise. * sel-sched.c (move_nop_to_previous_block): Likewise. * config/bfin/bfin.c (reorder_var_tracking_notes): Likewise. * config/c6x/c6x.c (gen_one_bundle): Likewise. (c6x_gen_bundles): Likewise. (hwloop_optimize): Likewise. * config/frv/frv.c (frv_function_prologue): Likewise. (frv_register_nop): Likewise. * config/ia64/ia64.c (ia64_init_dfa_pre_cycle_insn): Likewise. (ia64_reorg): Likewise. * config/mep/mep.c (mep_reorg_addcombine): Likewise. (mep_make_bundle): Likewise. (mep_bundle_insns): Likewise. * config/picochip/picochip.c (reorder_var_tracking_notes): Likewise. * config/tilegx/tilegx.c (reorder_var_tracking_notes): Likewise. * config/tilepro/tilepro.c (reorder_var_tracking_notes): Likewise. From-SVN: r214128
2014-08-18Split BB_HEAD et al into BB_HEAD/SET_BB_HEAD variantsDavid Malcolm1-6/+6
gcc/ 2014-08-18 David Malcolm <dmalcolm@redhat.com> * basic-block.h (BB_HEAD): Split macro in two: the existing one, for rvalues, and... (SET_BB_HEAD): New macro, for use as a lvalue. (BB_END, SET_BB_END): Likewise. (BB_HEADER, SET_BB_HEADER): Likewise. (BB_FOOTER, SET_BB_FOOTER): Likewise. * bb-reorder.c (add_labels_and_missing_jumps): Convert lvalue use of BB_* macros into SET_BB_* macros. (fix_crossing_unconditional_branches): Likewise. * caller-save.c (save_call_clobbered_regs): Likewise. (insert_one_insn): Likewise. * cfgbuild.c (find_bb_boundaries): Likewise. * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise. (outgoing_edges_match): Likewise. (try_optimize_cfg): Likewise. * cfgexpand.c (expand_gimple_cond): Likewise. (expand_gimple_tailcall): Likewise. (expand_gimple_basic_block): Likewise. (construct_exit_block): Likewise. * cfgrtl.c (delete_insn): Likewise. (create_basic_block_structure): Likewise. (rtl_delete_block): Likewise. (rtl_split_block): Likewise. (emit_nop_for_unique_locus_between): Likewise. (rtl_merge_blocks): Likewise. (block_label): Likewise. (try_redirect_by_replacing_jump): Likewise. (emit_barrier_after_bb): Likewise. (fixup_abnormal_edges): Likewise. (record_effective_endpoints): Likewise. (relink_block_chain): Likewise. (fixup_reorder_chain): Likewise. (fixup_fallthru_exit_predecessor): Likewise. (cfg_layout_duplicate_bb): Likewise. (cfg_layout_split_block): Likewise. (cfg_layout_delete_block): Likewise. (cfg_layout_merge_blocks): Likewise. * combine.c (update_cfg_for_uncondjump): Likewise. * emit-rtl.c (add_insn_after): Likewise. (remove_insn): Likewise. (reorder_insns): Likewise. (emit_insn_after_1): Likewise. * haifa-sched.c (get_ebb_head_tail): Likewise. (restore_other_notes): Likewise. (move_insn): Likewise. (sched_extend_bb): Likewise. (fix_jump_move): Likewise. * ifcvt.c (noce_process_if_block): Likewise. (dead_or_predicable): Likewise. * ira.c (update_equiv_regs): Likewise. * reg-stack.c (change_stack): Likewise. * sel-sched-ir.c (sel_move_insn): Likewise. * sel-sched.c (move_nop_to_previous_block): Likewise. * config/c6x/c6x.c (hwloop_optimize): Likewise. * config/ia64/ia64.c (emit_predicate_relation_info): Likewise. / 2014-08-18 David Malcolm <dmalcolm@redhat.com> * rtx-classes-status.txt (TODO): Add SET_BB_HEAD, SET_BB_END, SET_BB_HEADER, SET_BB_FOOTER From-SVN: r214121
2014-08-05re PR rtl-optimization/61672 (Less redundant instructions deleted by ↵Richard Biener1-1/+5
pre_delete after r208113.) 2014-08-05 Richard Biener <rguenther@suse.de> PR rtl-optimization/61672 * emit-rtl.h (mem_attrs_eq_p): Declare. * emit-rtl.c (mem_attrs_eq_p): Export. Handle NULL mem-attrs. * cse.c (exp_equiv_p): Use mem_attrs_eq_p. * cfgcleanup.c (merge_memattrs): Likewise. Include emit-rtl.h. From-SVN: r213638
2014-06-09re PR middle-end/61141 (c-common.c:1502:1: ICE: in reset_insn_used_flags, at ↵John David Anglin1-2/+10
emit-rtl.c:2677) 2014-05-18 John David Anglin <danglin@gcc.gnu.org> PR middle-end/61141 * emit-rtl.c (reset_all_used_flags): In a sequence, check that XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags. (verify_rtl_sharing): Likewise. From-SVN: r211380
2014-06-06rtl.h (insn_location): Declare.Eric Botcazou1-0/+7
* rtl.h (insn_location): Declare. * cfgcleanup.c (try_forward_edges): Compare the locus of locations with UNKNOWN_LOCATION. * emit-rtl.c (insn_location): New function. * final.c (notice_source_line): Check that the instruction has a location before retrieving it and use insn_location. * modulo-sched.c (loop_single_full_bb_p): Likewise. * print-rtl.c (print_rtx): Likewise. From-SVN: r211305
2014-06-02expr.h: Remove prototypes of functions defined in builtins.c.Andrew MacLeod1-0/+1
* expr.h: Remove prototypes of functions defined in builtins.c. * tree.h: (build_call_expr_*, build_string_literal): Add prototypes. Remove prototypes of functions defined in builtins.c. * builtins.h: Update prototype list to include all exported functions. * builtins.c: (default_libc_has_function, gnu_libc_has_function, no_c99_libc_has_function): Move to targhooks.c (build_string_literal, build_call_expr_loc_array, build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move to tree.c. (expand_builtin_object_size, fold_builtin_object_size): Make static. * targhooks.c (default_libc_has_function, gnu_libc_has_function, no_c99_libc_has_function): Relocate from builtins.c. * tree.c: Include builtins.h. (build_call_expr_loc_array, build_call_expr_loc_vec, build_call_expr_loc, build_call_expr, build_string_literal): Relocate from builtins.c. * fold-const.h (fold_fma): Move prototype to builtins.h. * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h. * fortran/trans.c (trans_runtime_error_vararg): Call fold_build_call_array_loc instead of fold_builtin_call_array. * asan.c: Include builtins.h. * cfgexpand.c: Likewise. * convert.c: Likewise. * emit-rtl.c: Likewise. * except.c: Likewise. * expr.c: Likewise. * fold-const.c: Likewise. * gimple-fold.c: Likewise. * gimple-ssa-strength-reduction.c: Likewise. * gimplify.c: Likewise. * ipa-inline.c: Likewise. * ipa-prop.c: Likewise. * lto-streamer-out.c: Likewise. * stmt.c: Likewise. * tree-inline.c: Likewise. * tree-object-size.c: Likewise. * tree-sra.c: Likewise. * tree-ssa-ccp.c: Likewise. * tree-ssa-forwprop.c: Likewise. * tree-ssa-loop-ivcanon.c: Likewise. * tree-ssa-loop-ivopts.c: Likewise. * tree-ssa-math-opts.c: Likewise. * tree-ssa-reassoc.c: Likewise. * tree-ssa-threadedge.c: Likewise. * tree-streamer-in.c: Likewise. * tree-vect-data-refs.c: Likewise. * tree-vect-patterns.c: Likewise. * tree-vect-stmts.c: Likewise. c * c-decl.c: Include builtins.h. * c-parser.c: Likewise. cp * decl.c: Include builtins.h. * semantics.c: Likewise. go * go-gcc.cc: Include builtins.h. lto * lto-symtab.c: Include builtins.h. config * aarch64/aarch64.c: Include builtins.h. * alpha/alpha.c: Likewise. * arc/arc.c: Likewise. * arm/arm.c: Likewise. * avr/avr.c: Likewise. * bfin/bfin.c: Likewise. * c6x/c6x.c: Likewise. * cr16/cr16.c: Likewise. * cris/cris.c: Likewise. * epiphany/epiphany.c: Likewise. * fr30/fr30.c: Likewise. * frv/frv.c: Likewise. * h8300/h8300.c: Likewise. * i386/i386.c: Likewise. * i386/winnt.c: Likewise. * ia64/ia64.c: Likewise. * iq2000/iq2000.c: Likewise. * lm32/lm32.c: Likewise. * m32c/m32c.c: Likewise. * m32r/m32r.c: Likewise. * m68k/m68k.c: Likewise. * mcore/mcore.c: Likewise. * mep/mep.c: Likewise. * microblaze/microblaze.c: Likewise. * mips/mips.c: Likewise. * mmix/mmix.c: Likewise. * mn10300/mn10300.c: Likewise. * moxie/moxie.c: Likewise. * msp430/msp430.c: Likewise. * nds32/nds32.c: Likewise. * pa/pa.c: Likewise. * pdp11/pdp11.c: Likewise. * picochip/picochip.c: Likewise. * rl78/rl78.c: Likewise. * rs6000/rs6000.c: Likewise. * rx/rx.c: Likewise. * s390/s390.c: Likewise. * score/score.c: Likewise. * sh/sh.c: Likewise. * sparc/sparc.c: Likewise. * spu/spu.c: Likewise. * stormy16/stormy16.c: Likewise. * tilegx/tilegx.c: Likewise. * tilepro/tilepro.c: Likewise. * v850/v850.c: Likewise. * vax/vax.c: Likewise. * xtensa/xtensa.c: Likewise. From-SVN: r211145
2014-05-28rtl.h (set_for_reg_notes): Declare.Richard Sandiford1-24/+50
2014-05-26 Richard Sandiford <rdsandiford@googlemail.com> Olivier Hainque <hainque@adacore.com> * rtl.h (set_for_reg_notes): Declare. * emit-rtl.c (set_for_reg_notes): New function. (set_unique_reg_note): Use it. * optabs.c (add_equal_note): Likewise Co-Authored-By: Olivier Hainque <hainque@adacore.com> From-SVN: r210998
2014-05-20re PR middle-end/61243 (verify_flow_info failed: No region crossing jump at ↵Richard Sandiford1-0/+1
section boundary in bb 65) gcc/ PR rtl-optimization/61243 * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P. From-SVN: r210658
2014-05-19reg-notes.def (CROSSING_JUMP): Likewise.Richard Sandiford1-2/+3
gcc/ * reg-notes.def (CROSSING_JUMP): Likewise. * rtl.h (rtx_def): Update comment for jump flag. (CROSSING_JUMP_P): Define. * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead of a REG_CROSSING_JUMP note. * cfghooks.c (tidy_fallthru_edges): Likewise. * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise. * emit-rtl.c (try_split): Likewise. * haifa-sched.c (sched_create_recovery_edges): Likewise. * ifcvt.c (find_if_case_1, find_if_case_2): Likewise. * jump.c (redirect_jump_2): Likewise. * reorg.c (follow_jumps, fill_slots_from_thread): Likewise. (relax_delay_slots): Likewise. * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise. (bbit_di): Likewise. * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise. * config/sh/sh.md (jump_compact): Likewise. * bb-reorder.c (rotate_loop): Likewise. (pass_duplicate_computed_gotos::execute): Likewise. (add_reg_crossing_jump_notes): Rename to... (update_crossing_jump_flags): ...this. (pass_partition_blocks::execute): Update accordingly. From-SVN: r210603
2014-05-17use templates instead of gengtype for typed allocation functionsTrevor Saunders1-5/+5
gcc/ChangeLog: * alias.c (record_alias_subset): Adjust. * bitmap.c (bitmap_element_allocate): Likewise. (bitmap_gc_alloc_stat): Likewise. * cfg.c (init_flow): Likewise. (alloc_block): Likewise. (unchecked_make_edge): Likewise. * cfgloop.c (alloc_loop): Likewise. (flow_loops_find): Likewise. (rescan_loop_exit): Likewise. * cfgrtl.c (init_rtl_bb_info): Likewise. * cgraph.c (insert_new_cgraph_node_version): Likewise. (cgraph_allocate_node): Likewise. (cgraph_create_edge_1): Likewise. (cgraph_allocate_init_indirect_info): Likewise. * cgraphclones.c (cgraph_clone_edge): Likewise. * cgraphunit.c (add_asm_node): Likewise. (init_lowered_empty_function): Likewise. * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise. * config/alpha/alpha.c (alpha_init_machine_status): Likewise. (alpha_use_linkage): Likewise. * config/arc/arc.c (arc_init_machine_status): Likewise. * config/arm/arm.c (arm_init_machine_status): Likewise. * config/avr/avr.c (avr_init_machine_status): Likewise. * config/bfin/bfin.c (bfin_init_machine_status): Likewise. * config/c6x/c6x.c (c6x_init_machine_status): Likewise. * config/cris/cris.c (cris_init_machine_status): Likewise. * config/darwin.c (machopic_indirection_name): Likewise. (darwin_build_constant_cfstring): Likewise. (darwin_enter_string_into_cfstring_table): Likewise. * config/epiphany/epiphany.c (epiphany_init_machine_status): * Likewise. * config/frv/frv.c (frv_init_machine_status): Likewise. * config/i386/i386.c (get_dllimport_decl): Likewise. (ix86_init_machine_status): Likewise. (assign_386_stack_local): Likewise. * config/i386/winnt.c (i386_pe_record_external_function): Likewise. (i386_pe_maybe_record_exported_symbol): Likewise. (i386_pe_record_stub): Likewise. * config/ia64/ia64.c (ia64_init_machine_status): Likewise. * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise. * config/m32c/m32c.c (m32c_init_machine_status): Likewise. (m32c_note_pragma_address): Likewise. * config/mep/mep.c (mep_init_machine_status): Likewise. (mep_note_pragma_flag): Likewise. * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise. (mips16_local_alias): Likewise. (mips_init_machine_status): Likewise. * config/mmix/mmix.c (mmix_init_machine_status): Likewise. * config/moxie/moxie.c (moxie_init_machine_status): Likewise. * config/msp430/msp430.c (msp430_init_machine_status): Likewise. * config/nds32/nds32.c (nds32_init_machine_status): Likewise. * config/nios2/nios2.c (nios2_init_machine_status): Likewise. * config/pa/pa.c (pa_init_machine_status): Likewise. (pa_get_deferred_plabel): Likewise. * config/rl78/rl78.c (rl78_init_machine_status): Likewise. * config/rs6000/rs6000.c (builtin_function_type): Likewise. (rs6000_init_machine_status): Likewise. (output_toc): Likewise. * config/s390/s390.c (s390_init_machine_status): Likewise. * config/score/score.c (score_output_external): Likewise. * config/sparc/sparc.c (sparc_init_machine_status): Likewise. * config/spu/spu.c (spu_init_machine_status): Likewise. * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise. * config/tilepro/tilepro.c (tilepro_init_machine_status): * Likewise. * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise. * coverage.c (coverage_end_function): Likewise. * dbxout.c (dbxout_init): Likewise. * doc/gty.texi: Don't mention variable_size attribute. * dwarf2cfi.c (new_cfi): Adjust. (new_cfi_row): Likewise. (copy_cfi_row): Likewise. (create_cie_data): Likewise. * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise. (new_loc_descr): Likewise. (find_AT_string_in_table): Likewise. (add_addr_table_entry): Likewise. (new_die): Likewise. (add_var_loc_to_decl): Likewise. (clone_die): Likewise. (clone_as_declaration): Likewise. (break_out_comdat_types): Likewise. (new_loc_list): Likewise. (add_loc_descr_to_each): Likewise. (add_location_or_const_value_attribute): Likewise. (add_linkage_name): Likewise. (lookup_filename): Likewise. (dwarf2out_var_location): Likewise. (new_line_info_table): Likewise. (dwarf2out_init): Likewise. (mem_loc_descriptor): Likewise. (loc_descriptor): Likewise. (add_const_value_attribute): Likewise. (tree_add_const_value_attribute): Likewise. (comp_dir_string): Likewise. (dwarf2out_vms_debug_main_pointer): Likewise. (string_cst_pool_decl): Likewise. * emit-rtl.c (set_mem_attrs): Likewise. (get_reg_attrs): Likewise. (start_sequence): Likewise. (init_emit): Likewise. (init_emit_regs): Likewise. * except.c (init_eh_for_function): Likewise. (gen_eh_region): Likewise. (gen_eh_region_catch): Likewise. (gen_eh_landing_pad): Likewise. (add_call_site): Likewise. * function.c (add_frame_space): Likewise. (insert_temp_slot_address): Likewise. (assign_stack_temp_for_type): Likewise. (get_hard_reg_initial_val): Likewise. (allocate_struct_function): Likewise. (prepare_function_start): Likewise. (types_used_by_var_decl_insert): Likewise. * gengtype.c (variable_size_p): Remove function. (enum alloc_quantity): Remove enum. (write_typed_alloc_def): Remove function. (write_typed_struct_alloc_def): Likewise. (write_typed_typedef_alloc_def): Likewise. (write_typed_alloc_defns): Likewise. (main): Adjust. * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust. (ggc_cleared_alloc_ptr_array_two_args): Likewise. * ggc.h (ggc_alloc): new function. (ggc_cleared_alloc): Likewise. (ggc_vec_alloc): Template on type of vector element, and remove element size argument. (ggc_cleared_vec_alloc): Likewise. * gimple.c (gimple_build_omp_for): Adjust. (gimple_copy): Likewise. * ipa-cp.c (get_replacement_map): Likewise. (find_aggregate_values_for_callers_subset): Likewise. (known_aggs_to_agg_replacement_list): Likewise. * ipa-devirt.c (get_odr_type): Likewise. * ipa-prop.c (ipa_node_duplication_hook): Likewise. (read_agg_replacement_chain): Likewise. * loop-iv.c (get_simple_loop_desc): Likewise. * lto-cgraph.c (input_node_opt_summary): Likewise. * lto-section-in.c (lto_new_in_decl_state): Likewise. * lto-streamer-in.c (lto_input_eh_catch_list): Likewise. (input_eh_region): Likewise. (input_eh_lp): Likewise. (input_cfg): Likewise. * optabs.c (set_optab_libfunc): Likewise. (init_tree_optimization_optabs): Likewise. (set_conv_libfunc): Likewise. * passes.c (do_per_function_toporder): Likewise. * rtl.h: Don't use variable_size gty attribute. * sese.c (if_region_set_false_region): Adjust. * stringpool.c (gt_pch_save_stringpool): Likewise. * target-globals.c (save_target_globals): Likewise. * toplev.c (general_init): Likewise. * trans-mem.c (record_tm_replacement): Likewise. (split_bb_make_tm_edge): Likewise. * tree-cfg.c (move_sese_region_to_fn): Likewise. * tree-data-ref.h (lambda_vector_new): Likewise. * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise. * tree-iterator.c (tsi_link_before): Likewise. (tsi_link_after): Likewise. * tree-scalar-evolution.c (new_scev_info_str): Likewise. * tree-ssa-loop-niter.c (record_estimate): Likewise. * tree-ssa-operands.c (ssa_operand_alloc): Likewise. * tree-ssa-operands.h: Don't use variable_size gty attribute. * tree-ssa.c (init_tree_ssa): Adjust. * tree-ssanames.c (set_range_info): Likewise. (get_ptr_info): Likewise. (duplicate_ssa_name_ptr_info): Likewise. (duplicate_ssa_name_range_info): Likewise. * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise. (unpack_ts_fixed_cst_value_fields): Likewise. * tree.c (build_fixed): Likewise. (build_real): Likewise. (build_string): Likewise. (decl_priority_info): Likewise. (decl_debug_expr_insert): Likewise. (decl_value_expr_insert): Likewise. (decl_debug_args_insert): Likewise. (type_hash_add): Likewise. (build_omp_clause): Likewise. * ubsan.c (decl_for_type_insert): Likewise. * varasm.c (get_unnamed_section): Likewise. (get_noswitch_section): Likewise. (get_section): Likewise. (get_block_for_section): Likewise. (create_block_symbol): Likewise. (build_constant_desc): Likewise. (create_constant_pool): Likewise. (force_const_mem): Likewise. (record_tm_clone_pair): Likewise. * varpool.c (varpool_create_empty_node): Likewise. gcc/c/ChangeLog: * c-decl.c (finish_struct): Adjust. (finish_enum): Likewise. (bind): Adjust. (record_inline_static): Likewise. (push_scope): Likewise. (make_label): Likewise. (lookup_label_for_goto): Likewise. (finish_struct): Likewise. (finish_enum): Likewise. (store_parm_decls): Likewise. (c_push_function_context): Likewise. * c-lang.h: Remove usage of variable_size gty attribute. * c-parser.c (c_parse_init): Adjust. (c_parse_file): Likewise. gcc/java/ChangeLog: * class.c (add_method_1): Adjust. (java_treetreehash_new): Likewise. * constants.c (set_constant_entry): Likewise. (cpool_for_class): Likewise. * decl.c (make_binding_level): Likewise. (java_dup_lang_specific_decl): Likewise. * expr.c (add_type_assertion): Likewise. * java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): Likewise. (lang_decl): don't use variable_size gty attribute. (MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Adjust. (lang_type): Don't use variable_size gty attribute. * jcf-parse.c (java_parse_file): Adjust. (process_zip_dir): Likewise. * jcf.h: Remove usage of variable_size gty attribute. * jcf-reader.c (jcf_parse_constant_pool): Adjust. (jcf_parse_bootstrap_methods): Likewise. gcc/objc/ChangeLog: * objc-act.c (objc_build_string_object): Adjust. (continue_class): Likewise. * objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Likewise. * objc-map.c (objc_map_alloc_ggc): Likewise. (objc_map_private_resize): Likewise. * objc-next-runtime-abi-02.c (objc_next_runtime_abi_02_init): Likewise. (hash_name_enter): Likewise. gcc/cp/ChangeLog: * class.c (sorted_fields_type_new): Adjust. * cp-cilkplus.c (cilk_install_body_with_frame_cleanup): Likewise. * cp-objcp-common.c (decl_shadowed_for_var_insert): Likewise. * cp-tree.h: Remove usage of variable_size gty attribute. * decl.c (make_label_decl): Adjust. (check_goto): Likewise. (start_preparsed_function): Likewise. (save_function_data): Likewise. * lex.c (init_reswords): Likewise. (retrofit_lang_decl): Likewise. (cxx_dup_lang_specific_decl): Likewise. (copy_lang_type): Likewise. (cxx_make_type): Likewise. * name-lookup.c (binding_entry_make): Likewise. (binding_table_construct): Likewise. (binding_table_new): Likewise. (cxx_binding_make): Likewise. (pushdecl_maybe_friend_1): Likewise. (begin_scope): Likewise. (push_to_top_level): Likewise. * parser.c (cp_lexer_alloc): Likewise. (cp_lexer_new_from_tokens): Likewise. (cp_token_cache_new): Likewise. (cp_parser_context_new): Likewise. (cp_parser_new): Likewise. (cp_parser_nested_name_specifier_opt): Likewise. (cp_parser_template_id): Likewise. * pt.c (maybe_process_partial_specialization): Likewise. (register_specialization): Likewise. (add_pending_template): Likewise. (lookup_template_class_1): Likewise. (push_tinst_level): Likewise. * semantics.c (register_constexpr_fundef): Likewise. (cxx_eval_call_expression): Likewise. * typeck2.c (abstract_virtuals_error_sfinae): Likewise. gcc/fortran/ChangeLog: * f95-lang.c (pushlevel): Adjust. * trans-decl.c (gfc_allocate_lang_decl): Adjust. (gfc_find_module): Likewise. * trans-types.c (gfc_get_nodesc_array_type): Likewise. (gfc_get_array_type_bounds): Likewise. (gfc_nonrestricted_type): Likewise. * trans.h: Don't use variable_size gty attribute. gcc/ada/ChangeLog: * gcc-interface/ada-tree.h: Remove usage of variable_size gty annotation. * gcc-interface/decl.c (annotate_value): Adjust. * gcc-interface/trans.c (Attribute_to_gnu): Likewise. (push_range_check_info): Likewise. (Loop_Statement_to_gnu): Likewise. (Subprogram_Body_to_gnu): Likewise. (Compilation_Unit_to_gnu): Likewise. (start_stmt_group): Likewise. * gcc-interface/utils.c (init_gnat_utils): Likewise. (gnat_pushlevel): Likewise. (maybe_pad_type): Likewise. gcc/go/ChangeLog: * go-lang.c (struct GTY): Don't use variable_size gty attribute. gcc/c-family/ChangeLog: * c-common.h (sorted_fields_type): Remove variable_size GTY attribute. * c-pragma.c (push_alignment): Adjust. (handle_pragma_push_options): Likewise. gcc/lto/ChangeLog: * lto-tree.h: Don't use variable_size gty attribute. * lto.c (lto_read_in_decl_state): Adjust. (create_subid_section_table): Likewise. (lto_flatten_files): Likewise. (read_cgraph_and_symbols): Likewise. gcc/objcp/ChangeLog: * objcp-decl.h: Adjust. From-SVN: r210566
2014-05-17emit-rtl.h (replace_equiv_address, [...]): Add an inplace argument.Richard Sandiford1-13/+24
gcc/ * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an inplace argument. Store the new address in the original MEM when true. * emit-rtl.c (change_address_1): Likewise. (adjust_address_1, adjust_automodify_address_1, offset_address): Update accordingly. * rtl.h (plus_constant): Add an inplace argument. * explow.c (plus_constant): Likewise. Try to reuse the original PLUS when true. Avoid generating (plus X (const_int 0)). * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS in-place. Pass true to plus_constant. (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address. From-SVN: r210543
2014-05-13rtl.def (VAR_LOCATION): Remove "i" field.Richard Sandiford1-0/+9
gcc/ * rtl.def (VAR_LOCATION): Remove "i" field. * rtl.h (rtx_def): Add u2.var_location_status. (PAT_VAR_LOCATION_STATUS): Use it. (gen_rtx_VAR_LOCATION): Declare. * gengenrtl.c (excluded_rtx): Add VAR_LOCATION. * emit-rtl.c (gen_rtx_VAR_LOCATION): New function. * var-tracking.c (emit_note_insn_var_location): Remove casts. From-SVN: r210362
2014-05-13gcc/Richard Sandiford1-1/+1
* rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA) (BARRIER, CODE_LABEL, NOTE): Remove first "i" field. * rtl.h (rtx_def): Add insn_uid to u2 field. (RTX_FLAG_CHECK8): Delete in favor of... (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro. (INSN_DELETED_P): Update accordingly. (INSN_UID): Use u2.insn_uid. (INSN_CHAIN_CODE_P): Define. (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION) (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER) (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER) (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER) (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower indices accordingly. * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop. Update indices for insn-chain rtxes. * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes. (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes. * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call. * caller-save.c (init_caller_save): Update gen_rtx_INSN calls. * combine.c (try_combine): Likewise. * ira.c (setup_prohibited_mode_move_regs): Likewise. From-SVN: r210360
2014-05-06emit-rtl.c (init_derived_machine_modes): New functionm, split out from...Richard Sandiford1-30/+26
gcc/ * emit-rtl.c (init_derived_machine_modes): New functionm, split out from... (init_emit_once): ...here. * rtl.h (init_derived_machine_modes): Declare. * toplev.c (do_compile): Call it even if no_backend. From-SVN: r210118
2014-05-06Merge in wide-int.Kenneth Zadeck1-11/+115
From-SVN: r210113
2014-04-24-fuse-caller-save - Add new reg-note REG_CALL_DECLRadovan Obradovic1-0/+9
2014-04-24 Radovan Obradovic <robradovic@mips.com> Tom de Vries <tom@codesourcery.com> * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL. * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL reg-note. * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note. * emit-rtl.c (try_split): Same. Co-Authored-By: Tom de Vries <tom@codesourcery.com> From-SVN: r209744
2014-02-25re PR middle-end/60291 (slow compile times for any mode (-O0/-O1/-O2) on ↵Richard Biener1-40/+4
large .c source file (30MBs)) 2014-02-25 Richard Biener <rguenther@suse.de> PR middle-end/60291 * emit-rtl.c (mem_attrs_htab): Remove. (mem_attrs_htab_hash): Likewise. (mem_attrs_htab_eq): Likewise. (set_mem_attrs): Always allocate new mem-attrs when something changed. (init_emit_once): Do not allocate mem_attrs_htab. From-SVN: r208113
2014-02-20emit-rtl.c (gen_reg_rtx): Assert that crtl->emit.regno_pointer_align_length ↵Uros Bizjak1-0/+3
is non-zero. * emit-rtl.c (gen_reg_rtx): Assert that crtl->emit.regno_pointer_align_length is non-zero. From-SVN: r207968
2014-01-02Update copyright years in gcc/Richard Sandiford1-1/+1
From-SVN: r206289
2013-12-16re PR rtl-optimization/59466 (Slow code generation by LRA for memory ↵Vladimir Makarov1-1/+3
addresses on PPC) 2013-12-16 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/59466 * emit-rtl.c (change_address_1): Don't validate address for LRA. * recog.c (general_operand): Accept any memory for LRA. * lra.c (lra_set_insn_recog_data): Add an assert. From-SVN: r206023