1. 28 Aug, 2014 13 commits
    • cse.c (check_dependence_data): Delete. · c992c066
      gcc/
      	* cse.c (check_dependence_data): Delete.
      	(check_dependence): Change from being a for_each_rtx callback to being
      	a function that examines all subrtxes itself.  Don't handle null rtxes.
      	(invalidate): Update call accordingly.
      
      From-SVN: r214628
      Richard Sandiford committed
    • cse.c: Include rtl-iter.h. · e89b312e
      gcc/
      	* cse.c: Include rtl-iter.h.
      	(approx_reg_cost_1): Delete.
      	(approx_reg_cost): Use FOR_EACH_SUBRTX instead of for_each_rtx.
      	Don't handle null rtxes.
      
      From-SVN: r214627
      Richard Sandiford committed
    • cfgcleanup.c: Include rtl-iter.h. · a2250fe9
      gcc/
      	* cfgcleanup.c: Include rtl-iter.h.
      	(mentions_nonequal_regs): Turn from being a for_each_rtx callback
      	to being a function that examines each subrtx itself.
      	(thread_jump): Update accordingly.
      
      From-SVN: r214626
      Richard Sandiford committed
    • combine-stack-adj.c: Include rtl-iter.h. · f8305d18
      gcc/
      	* combine-stack-adj.c: Include rtl-iter.h.
      	(record_stack_refs_data): Delete.
      	(record_stack_refs): Turn from being a for_each_rtx callback
      	to being a function that examines each subrtx itself.
      	Take a pointer to the reflist.  Invert sense of return value
      	so that true means success and false means failure.  Don't
      	handle null rtxes.
      	(combine_stack_adjustments_for_block): Update accordingly.
      
      From-SVN: r214625
      Richard Sandiford committed
    • combine.c (record_truncated_value): Turn from being a for_each_rtx callback to a… · 46bbda03
      combine.c (record_truncated_value): Turn from being a for_each_rtx callback to a function that takes an rtx and...
      
      gcc/
      	* combine.c (record_truncated_value): Turn from being a for_each_rtx
      	callback to a function that takes an rtx and returns a bool
      	(record_truncated_values): Use FOR_EACH_SUBRTX_VAR instead of
      	for_each_rtx.
      
      From-SVN: r214624
      Richard Sandiford committed
    • combine.c: Include rtl-iter.h. · 1ecb5b94
      gcc/
      	* combine.c: Include rtl-iter.h.
      	(unmentioned_reg_p_1): Delete.
      	(unmentioned_reg_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
      	Don't handle null rtxes.
      
      From-SVN: r214623
      Richard Sandiford committed
    • calls.c: Include rtl-iter.h. · e9f56944
      gcc/
      	* calls.c: Include rtl-iter.h.
      	(internal_arg_pointer_based_exp_1): Delete.
      	(internal_arg_pointer_based_exp): Take a const_rtx.
      	Use FOR_EACH_SUBRTX to iterate over subrtxes.
      
      From-SVN: r214622
      Richard Sandiford committed
    • caller-save.c: Include rtl-iter.h. · 1cb22a67
      gcc/
      	* caller-save.c: Include rtl-iter.h.
      	(add_used_regs_1): Delete.
      	(add_used_regs): Use FOR_EACH_SUBRTX rather than for_each_rtx
      	to iterate over subrtxes.  Assert that any remaining pseudos
      	have been spilled.
      
      From-SVN: r214621
      Richard Sandiford committed
    • bt-load.c: Include rtl-iter.h. · b8ec23ac
      gcc/
      	* bt-load.c: Include rtl-iter.h.
      	(btr_reference_found, find_btr_reference, btr_referenced_p): Delete.
      	(find_btr_use): Move further up file.  Use FOR_EACH_SUBRTX_PTR
      	to iterate over subrtxes.
      	(insn_sets_btr_p, new_btr_user, compute_defs_uses_and_gen): Use
      	find_btr_use rather than btr_referenced_p.
      
      From-SVN: r214620
      Richard Sandiford committed
    • alias.c: Include rtl-iter.h. · 403837b4
      gcc/
      	* alias.c: Include rtl-iter.h.
      	(refs_newer_value_cb): Delete.
      	(refs_newer_value_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
      
      From-SVN: r214619
      Richard Sandiford committed
    • rtl-iter.h: New file. · 476dd0ce
      gcc/
      	* rtl-iter.h: New file.
      	* rtlanal.c: Include it.
      	(rtx_all_subrtx_bounds, rtx_nonconst_subrtx_bounds): New variables.
      	(generic_subrtx_iterator <T>::add_single_to_queue)
      	(generic_subrtx_iterator <T>::add_subrtxes_to_queue)
      	(generic_subrtx_iterator <T>::free_array): New functions.
      	(generic_subrtx_iterator <T>::LOCAL_ELEMS): Define.
      	(generic_subrtx_iterator <const_rtx_accessor>)
      	(generic_subrtx_iterator <rtx_var_accessor>
      	(generic_subrtx_iterator <rtx_ptr_accessor>): Instantiate.
      	(setup_reg_subrtx_bounds): New function.
      	(init_rtlanal): Call it.
      
      From-SVN: r214618
      Richard Sandiford committed
    • PR cpp/23827 - standard C++ should not have hex float preprocessor · 7c05e50c
      
      libcpp/
      
      2014-08-27  Edward Smith-Rowland  <3dw4rd@verizon.net>
      
      	PR cpp/23827 - standard C++ should not have hex float preprocessor
      	tokens
      	* libcpp/init.c (lang_flags): Change CXX98 flag for extended numbers
      	from 1 to 0.
      	* libcpp/expr.c (cpp_classify_number): Weite error message for improper
      	use of hex floating literal.
      
      
      gcc/testsuite/
      
      2014-08-27  Edward Smith-Rowland  <3dw4rd@verizon.net>
      
      	PR cpp/23827 - standard C++ should not have hex float preprocessor
      	tokens
      	* g++.dg/cpp/pr23827_cxx11.C: New.
      	* g++.dg/cpp/pr23827_cxx98.C: New.
      	* g++.dg/cpp/pr23827_cxx98_neg.C: New.
      	* gcc.dg/cpp/pr23827_c90.c: New.
      	* gcc.dg/cpp/pr23827_c90_neg.c: New.
      	* gcc.dg/cpp/pr23827_c99.c: New.
      
      From-SVN: r214616
      Edward Smith-Rowland committed
    • Daily bump. · 241622a5
      From-SVN: r214615
      GCC Administrator committed
  2. 27 Aug, 2014 27 commits
    • re PR target/62261 ([sh64] ICE for negative shift counts) · 1284f559
              PR target/62261
              * config/sh/sh.md (ashlsi3): Handle negative shift count for
      	TARGET_SHMEDIA.
      	(ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
      
      From-SVN: r214612
      Kaz Kojima committed
    • emit-rtl.c (set_unique_reg_note): Discard notes with side effects. · 109374e2
      gcc/
      	* emit-rtl.c (set_unique_reg_note): Discard notes with side effects.
      
      From-SVN: r214609
      Richard Sandiford committed
    • c-aux-info.c (gen_type): Resize 'buff' from 10 to 23 bytes... · b7679d96
      2014-08-27  Chen Gang  <gang.chen.5i5j@gmail.com>
      
      	* c-aux-info.c (gen_type): Resize 'buff' from 10 to 23 bytes,
      	with using HOST_WIDE_INT without truncation to 'int'
      
      From-SVN: r214608
      Chen Gang committed
    • Add JUMP_LABEL_AS_INSN · 710427e2
      gcc/
      2014-08-27  David Malcolm  <dmalcolm@redhat.com>
      
      	* rtl.h (JUMP_LABEL_AS_INSN): New.
      
      From-SVN: r214607
      David Malcolm committed
    • PHASE 6: Use extra rtx_def subclasses · d7ac0a6a
      /
      2014-08-27  David Malcolm  <dmalcolm@redhat.com>
      
      	* rtx-classes-status.txt: Phase 5 (additional rtx_def subclasses)
      	is done; begin phase 6 (use extra rtx_def subclasses).
      
      From-SVN: r214606
      David Malcolm committed
    • Use rtx_expr_list in various places · 2f33ff0a
      gcc/
      2014-08-27  David Malcolm  <dmalcolm@redhat.com>
      
      	* rtl.h (free_EXPR_LIST_list): Strengthen param from rtx * to
      	rtx_expr_list **.
      	(alloc_EXPR_LIST): Strengthen return type from rtx to
      	rtx_expr_list *.
      	(remove_free_EXPR_LIST_node): Likewise for param.
      	* reload.h (struct reg_equivs_t): Strengthen field "alt_mem_list"
      	from rtx to rtx_expr_list *.
      	* sched-int.h (struct deps_desc): Strengthen fields
      	"pending_read_mems" and "pending_write_mems" from rtx to
      	rtx_expr_list *.
      
      	* dwarf2out.c (decl_piece_varloc_ptr): Strengthen return type from
      	rtx to rtx_expr_list *.
      	* lists.c (alloc_INSN_LIST): Likewise, also for local "r".
      	(free_EXPR_LIST_list): Strengthen param "listp" from rtx * to
      	rtx_expr_list **.
      	(remove_free_EXPR_LIST_node): Likewise.  Strengthen local "node"
      	from rtx to rtx_expr_list *.
      	* loop-iv.c (simplify_using_initial_values): Strengthen local
      	"cond_list" from rtx to rtx_expr_list *, and locals "pnode",
      	"pnote_next" from rtx * to rtx_expr_list **.
      	* sched-deps.c (remove_from_both_dependence_lists):  Strengthen
      	param "exprp" from rtx * to rtx_expr_list **.
      	(add_insn_mem_dependence): Strengthen local "mem_list" from
      	rtx * to rtx_expr_list **.  Strengthen local "mem_node" from rtx
      	to rtx_expr_list *.
      	* sched-rgn.c (concat_insn_mem_list): Strengthen param "copy_mems"
      	and local "new_mems" from rtx to rtx_expr_list *.  Strengthen
      	param "old_mems_p" from rtx * to rtx_expr_list **.
      	* var-tracking.c (struct adjust_mem_data): Strengthen field
      	"side_effects" from rtx to rtx_expr_list *.
      	(adjust_insn): Replace NULL_RTX with NULL when assigning to
      	rtx_expr_list *.
      	(prepare_call_arguments): Likewise.
      
      From-SVN: r214605
      David Malcolm committed
    • rtl_data.x_stack_slot_list becomes an rtx_expr_list · 0f4783c7
      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
      David Malcolm committed
    • rtl_data.x_nonlocal_goto_handler_labels becomes an rtx_expr_list · 2382940b
      gcc/
      2014-08-27  David Malcolm  <dmalcolm@redhat.com>
      
      	* function.h (struct rtl_data): Strengthen field
      	x_nonlocal_goto_handler_labels from rtx to rtx_expr_list *.
      	* rtl.h (remove_node_from_expr_list): Strengthen second param from
      	rtx * to rtx_expr_list **.
      
      	* cfgbuild.c (make_edges): In loop over
      	nonlocal_goto_handler_labels, strengthen local "x" from rtx to
      	rtx_expr_list *, and use methods of the latter class to clarify
      	the code.
      	* cfgrtl.c (cfg_layout_initialize): Strengthen local "x" from rtx to
      	rtx_expr_list *, and use methods of the latter class to clarify
      	the code.
      	* dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
      	* reload1.c (set_initial_label_offsets): Likewise for local "x".
      	* rtlanal.c (remove_node_from_expr_list): Strengthen param "listp"
      	from rtx * to rtx_expr_list **.  Strengthen local "temp" from rtx
      	to rtx_expr_list *.  Use methods of the latter class to clarify
      	the code.
      
      From-SVN: r214603
      David Malcolm committed
    • Use rtx_expr_list for expr_status.x_forced_labels · ca486330
      gcc/
      2014-08-27  David Malcolm  <dmalcolm@redhat.com>
      
      	* function.h (struct expr_status): Strengthen field
      	"x_forced_labels" from rtx to rtx_expr_list *.
      
      	* cfgbuild.c (make_edges): Split local "x" into two locals,
      	strengthening one from rtx to rtx_expr_list *, and using methods
      	of said class.
      	* dwarf2cfi.c (create_trace_edges): Split local "lab" out; within
      	loop over forced_labels, introduce strengthen it from rtx to
      	rtx_expr_list *, using methods to clarify the code.
      	* jump.c (rebuild_jump_labels_1): Strengthen local "insn" from rtx
      	to rtx_expr_list *, using methods of said class to clarify the
      	code.
      	* reload1.c (set_initial_label_offsets): Split local "x" into two
      	per-loop variables, strengthening the first from rtx to
      	rtx_expr_list * and using methods.
      
      From-SVN: r214602
      David Malcolm committed
    • Introduce rtx_expr_list subclass of rtx_def · 38e60c55
      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
      David Malcolm committed
    • varasm.c: Use rtx_sequence · 30db48d9
      gcc/
      2014-08-27  David Malcolm  <dmalcolm@redhat.com>
      
      	* varasm.c (mark_constants): Convert a GET_CODE check into a
      	dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
      	Use methods of rtx_sequence to clarify the code.
      
      From-SVN: r214600
      David Malcolm committed
    • sched-vis.c: Use rtx_sequence · b302a90f
      gcc/
      2014-08-27  David Malcolm  <dmalcolm@redhat.com>
      
      	* sched-vis.c (print_pattern): Within SEQUENCE case, introduce a
      	local "seq" via a checked cast, and use methods of rtx_sequence
      	to simplify the code.
      
      From-SVN: r214599
      David Malcolm committed
    • resource.c: Use rtx_sequence · a3be187d
      gcc/
      2014-08-27  David Malcolm  <dmalcolm@redhat.com>
      
      	* resource.c (mark_referenced_resources): Strengthen local
      	"sequence" from rtx to rtx_sequence *, adding a checked cast, and
      	using methods of rtx_sequence to clarify the code.
      	(find_dead_or_set_registers): Within the switch statement, convert
      	a GET_CODE check to a dyn_cast, introducing local "seq".  Within
      	the JUMP_P handling, introduce another local "seq", adding a
      	checked cast to rtx_sequence *.  In both cases, use methods of
      	rtx_sequence to clarify the code.
      	(mark_set_resources): Within SEQUENCE case, introduce local "seq"
      	via a checked cast, and use methods of rtx_sequence to simplify
      	the code.
      
      From-SVN: r214598
      David Malcolm committed
    • reorg.c: Use rtx_sequence · 9e3090e1
      gcc/
      2014-08-27  David Malcolm  <dmalcolm@redhat.com>
      
      	* reorg.c (redundant_insn): In two places in the function, replace
      	a check of GET_CODE with a dyn_cast, introducing local "seq", and
      	usings methods of rtx_sequence to clarify the code.
      
      From-SVN: r214597
      David Malcolm committed
    • jump.c: Use rtx_sequence · 33d9cde4
      gcc/
      2014-08-27  David Malcolm  <dmalcolm@redhat.com>
      
      	* jump.c (mark_jump_label_1): Within the SEQUENCE case, introduce
      	local "seq" with a checked cast, and use methods of rtx_sequence
      	to clarify the code.
      
      From-SVN: r214596
      David Malcolm committed
    • function.c: Use rtx_sequence · e0944870
      gcc/
      2014-08-27  David Malcolm  <dmalcolm@redhat.com>
      
      	* function.c (contains): Introduce local "seq" for PATTERN (insn),
      	with a checked cast, in the region for where we know it's a
      	SEQUENCE.  Use methods of rtx_sequence.
      
      From-SVN: r214595
      David Malcolm committed
    • final.c: Use rtx_sequence · e429a50b
      gcc/
      2014-08-27  David Malcolm  <dmalcolm@redhat.com>
      
      	* final.c (get_attr_length_1): Replace GET_CODE check with a
      	dyn_cast, introducing local "seq" and the use of methods of
      	rtx_sequence.
      	(shorten_branches): Likewise, introducing local "body_seq".
      	Strengthen local "inner_insn" from rtx to rtx_insn *.
      	(reemit_insn_block_notes): Replace GET_CODE check with a
      	dyn_cast, strengthening local "body" from rtx to rtx_sequence *.
      	Use methods of rtx_sequence.
      	(final_scan_insn): Likewise, introducing local "seq" for when
      	"body" is known to be a SEQUENCE, using its methods.
      
      From-SVN: r214594
      David Malcolm committed
    • except.c: Use rtx_sequence · 2a62e439
      gcc/
      2014-08-27  David Malcolm  <dmalcolm@redhat.com>
      
      	* except.c (can_throw_external): Strengthen local "seq" from rtx
      	to rtx_sequence *.  Use methods of rtx_sequence.
      	(insn_nothrow_p): Likewise.
      
      From-SVN: r214593
      David Malcolm committed
    • dwarf2cfi.c: Use rtx_sequence · 292d1dfb
      gcc/
      2014-08-27  David Malcolm  <dmalcolm@redhat.com>
      
      	* dwarf2cfi.c (create_trace_edges): Convert GET_CODE check into a
      	dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
      	Use methods of rtx_sequence.
      	(scan_trace): Likewise for local "pat".
      
      From-SVN: r214592
      David Malcolm committed
    • Introduce rtx_sequence subclass of rtx_def · 84fa8d9c
      gcc/
      2014-08-27  David Malcolm  <dmalcolm@redhat.com>
      
      	* coretypes.h (class rtx_sequence): Add forward declaration.
      	* rtl.h (class rtx_sequence): New subclass of rtx_def, adding
      	invariant: GET_CODE (X) == SEQUENCE.
      	(is_a_helper <rtx_sequence *>::test): New.
      	(is_a_helper <const rtx_sequence *>::test): New.
      	(rtx_sequence::len): New.
      	(rtx_sequence::element): New.
      	(rtx_sequence::insn): New.
      
      From-SVN: r214591
      David Malcolm committed
    • Use rtx_insn_list in various places · 3dc99c19
      gcc/
      2014-08-27  David Malcolm  <dmalcolm@redhat.com>
      
      	* rtl.h (free_INSN_LIST_list): Strengthen param from rtx * to
      	rtx_insn_list **.
      	(alloc_INSN_LIST): Strengthen return type from rtx to
      	rtx_insn_list *.
      	(copy_INSN_LIST): Likewise for return type and param.
      	(concat_INSN_LIST): Likewise for both params and return type.
      	(remove_free_INSN_LIST_elem): Strenghten first param from rtx to
      	rtx_insn *.  Strengthen second param from rtx * to rtx_insn_list **.
      	(remove_free_INSN_LIST_node): Strenghten return type from rtx to
      	rtx_insn *.  Strengthen param from rtx * to rtx_insn_list **.
      
      	* sched-int.h (struct deps_reg): Strengthen fields "uses", "sets",
      	"implicit_sets", "control_uses", "clobbers" from rtx to
      	rtx_insn_list *.
      	(struct deps_desc): Likewise for fields "pending_read_insns",
      	"pending_write_insns", "pending_jump_insns",
      	"last_pending_memory_flush", "last_function_call",
      	"last_function_call_may_noreturn", "sched_before_next_call",
      	"sched_before_next_jump".
      	(struct _haifa_deps_insn_data): Likewise for field "cond_deps".
      	(remove_from_deps): Strengthen second param from rtx to rtx_insn *.
      
      	* gcse.c (struct ls_expr): Strengthen fields "loads" and "stores"
      	from rtx to rtx_insn_list *.
      	(ldst_entry): Replace use of NULL_RTX with NULL when dealing with
      	rtx_insn_list *.
      
      	* haifa-sched.c (insn_queue): Strengthen this variable from rtx *
      	to rtx_insn_list **.
      	(dep_cost_1): Strengthen local "dep_cost_rtx_link" from rtx to
      	rtx_insn_list *.
      	(queue_insn): Likewise for local "link".
      	(struct haifa_saved_data): Strengthen field "insn_queue" from
      	rtx * to rtx_insn_list **.
      	(save_backtrack_point): Update allocation of save->insn_queue to
      	reflect the strengthening of elements from rtx to rtx_insn_list *.
      	(queue_to_ready): Strengthen local "link" from rtx to
      	rtx_insn_list *; use methods "next" and "insn" when traversing the
      	list.
      	(early_queue_to_ready): Likewise for locals "link", "next_link",
      	"prev_link".
      	(schedule_block): Update allocation of insn_queue to reflect the
      	strengthening of elements from rtx to rtx_insn_list *.  Strengthen
      	local "link" from rtx to rtx_insn_list *, and use methods when
      	working it.
      	(add_to_speculative_block): Strengthen locals "twins" and
      	"next_node" from rtx to rtx_insn_list *, and use methods when
      	working with them.  Strengthen local "twin" from rtx to
      	rtx_insn *, eliminating a checked cast.
      	(fix_recovery_deps): Strengthen locals "ready_list" and "link"
      	from rtx to rtx_insn_list *, and use methods when working with
      	them.
      
      	* lists.c (alloc_INSN_LIST): Strengthen return type and local "r"
      	from rtx to rtx_insn_list *, adding a checked cast.
      	(free_INSN_LIST_list): Strengthen param "listp" from rtx * to
      	rtx_insn_list **.
      	(copy_INSN_LIST): Strengthen return type and locals "new_queue",
      	"newlink" from rtx to rtx_insn_list *.  Strengthen local
      	"pqueue" from rtx * to rtx_insn_list **.  Strengthen local "x"
      	from rtx to rtx_insn *.
      	(concat_INSN_LIST): Strengthen return type and local "new_rtx",
      	from rtx to rtx_insn_list *.  Use methods of the latter class.
      	(remove_free_INSN_LIST_elem): Strengthen param "elem" from rtx to
      	rtx_insn *, and param "listp" from rtx * to rtx_insn_list **.
      	(remove_free_INSN_LIST_node): Strengthen return type and local
      	"elem" from rtx to rtx_insn *.  Strenghten param "listp" from
      	rtx * to rtx_insn_list **.  Strengthen local "node" from rtx to
      	rtx_insn_list *, using "insn" method.
      
      	* sched-deps.c (add_dependence_list):  Strengthen param "list"
      	from rtx to rtx_insn_list *, and use methods when working with it.
      	(add_dependence_list_and_free):  Strengthen param "listp" from
      	rtx * to rtx_insn_list **.
      	(remove_from_dependence_list): Strenghten param "listp" from rtx *
      	to rtx_insn_list **, and use methods when working with *listp.
      	(remove_from_both_dependence_lists): Strengthen param "listp" from
      	rtx * to rtx_insn_list **
      	(add_insn_mem_dependence): Strengthen local "insn_list" from rtx *
      	to rtx_insn_list **.  Eliminate local "link", in favor of two new
      	locals "insn_node" and "mem_node", an rtx_insn_list * and an rtx
      	respectively.
      	(deps_analyze_insn): Split out uses 'f local "t" as an INSN_LIST
      	by introducing local "cond_deps".
      	(remove_from_deps): Strengthen param "insn" from rtx to
      	rtx_insn *.
      
      	* sched-rgn.c (concat_insn_mem_list): Strengthen param
      	"copy_insns" and local "new_insns" from rtx to rtx_insn_list *.
      	Strengthen param "old_insns_p" from rtx * to rtx_insn_list **.
      	Use methods of rtx_insn_list.
      
      	* store-motion.c (struct st_expr): Strengthen fields
      	"antic_stores" and "avail_stores" from rtx to rtx_insn_list *.
      	(st_expr_entry): Replace NULL_RTX with NULL when dealing with
      	rtx_insn_list *.
      	(find_moveable_store): Split out "tmp" into multiple more-tightly
      	scoped locals.  Use methods of rtx_insn_list *.
      	(compute_store_table): Strengthen local "tmp" from rtx to
      	rtx_insn *.  Use methods of rtx_insn_list *.
      
      From-SVN: r214590
      David Malcolm committed
    • Introduce rtx_insn_list subclass of rtx_def · a756c6be
      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
      David Malcolm committed
    • PHASE 5: Additional rtx subclasses · 9daaca36
      2014-08-27  David Malcolm  <dmalcolm@redhat.com>
      
      	* rtx-classes-status.txt: Phase 4 (removal of "scaffolding") is
      	done; begin phase 5 (additional rtx_def subclasses).
      
      From-SVN: r214588
      David Malcolm committed
    • Tweak to ira-lives.c · c74ef30d
      gcc/
      2014-08-27  David Malcolm  <dmalcolm@redhat.com>
      
      	* ira-lives.c (find_call_crossed_cheap_reg): Strengthen local
      	"prev" from rtx to rtx_insn *.
      
      From-SVN: r214587
      David Malcolm committed
    • Convert various INSN accessors in rtl.h to inline functions · f11723d8
      gcc/
      2014-08-27  David Malcolm  <dmalcolm@redhat.com>
      
      	* rtl.h (INSN_UID): Convert from a macro to a pair of inline
      	functions.  Require merely an rtx for now, not an rtx_insn *.
      	(BLOCK_FOR_INSN): Likewise.
      	(INSN_LOCATION): Likewise.
      	(INSN_HAS_LOCATION): Convert from a macro to an inline function.
      
      From-SVN: r214586
      David Malcolm committed
    • Convert PATTERN from a macro to a pair of inline functions · bd59c195
      gcc/
      2014-08-27  David Malcolm  <dmalcolm@redhat.com>
      
      	* rtl.h (PATTERN): Convert this macro into a pair of inline
      	functions, for now, requiring const_rtx and rtx.
      
      From-SVN: r214585
      David Malcolm committed
    • Use rtx_insn for various target.def hooks · ac44248e
      gcc/
      2014-08-27  David Malcolm  <dmalcolm@redhat.com>
      
      	* target.def (unwind_emit): Strengthen param "insn" from rtx to
      	rtx_insn *.
      	(final_postscan_insn): Likewise.
      	(adjust_cost): Likewise.
      	(adjust_priority): Likewise.
      	(variable_issue): Likewise.
      	(macro_fusion_pair_p): Likewise.
      	(dfa_post_cycle_insn): Likewise.
      	(first_cycle_multipass_dfa_lookahead_guard): Likewise.
      	(first_cycle_multipass_issue): Likewise.
      	(dfa_new_cycle): Likewise.
      	(adjust_cost_2): Likewise for params "insn" and "dep_insn".
      	(speculate_insn): Likewise for param "insn".
      	(gen_spec_check): Likewise for params "insn" and "label".
      	(get_insn_spec_ds): Likewise for param "insn".
      	(get_insn_checked_ds): Likewise.
      	(dispatch_do): Likewise.
      	(dispatch): Likewise.
      	(cannot_copy_insn_p): Likewise.
      	(invalid_within_doloop): Likewise.
      	(legitimate_combined_insn): Likewise.
      	(needed): Likewise.
      	(after): Likewise.
      
      	* doc/tm.texi: Automatically updated to reflect changes to
      	target.def.
      
      	* haifa-sched.c (choose_ready): Convert NULL_RTX to NULL when
      	working with insn.
      	(schedule_block): Likewise.
      	(sched_init): Likewise.
      	(sched_speculate_insn): Strengthen param "insn" from rtx to
      	rtx_insn *.
      	(ready_remove_first_dispatch): Convert NULL_RTX to NULL when
      	working with insn.
      	* hooks.c (hook_bool_rtx_true): Rename to...
      	hook_bool_rtx_insn_true): ...this, and strengthen first param from
      	rtx to rtx_insn *.
      	(hook_constcharptr_const_rtx_null): Rename to...
      	(hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
      	first param from const_rtx to const rtx_insn *.
      	(hook_bool_rtx_int_false): Rename to...
      	(hook_bool_rtx_insn_int_false): ...this, and strengthen first
      	param from rtx to rtx_insn *.
      	(hook_void_rtx_int): Rename to...
      	(hook_void_rtx_insn_int): ...this, and strengthen first param from
      	rtx to rtx_insn *.
      
      	* hooks.h (hook_bool_rtx_true): Rename to...
      	(hook_bool_rtx_insn_true): ...this, and strengthen first param from
      	rtx to rtx_insn *.
      	(hook_bool_rtx_int_false): Rename to...
      	(hook_bool_rtx_insn_int_false): ...this, and strengthen first
      	param from rtx to rtx_insn *.
      	(hook_void_rtx_int): Rename to...
      	(hook_void_rtx_insn_int): ...this, and strengthen first param from
      	rtx to rtx_insn *.
      	(hook_constcharptr_const_rtx_null): Rename to...
      	(hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
      	first param from const_rtx to const rtx_insn *.
      
      	* sched-deps.c (sched_macro_fuse_insns): Strengthen param "insn"
      	and local "prev" from rtx to rtx_insn *.
      
      	* sched-int.h (sched_speculate_insn): Strengthen first param from
      	rtx to rtx_insn *.
      
      	* sel-sched.c (create_speculation_check): Likewise for local "label".
      	* targhooks.c (default_invalid_within_doloop): Strengthen param
      	"insn" from const_rtx to const rtx_insn *.
      	* targhooks.h (default_invalid_within_doloop): Strengthen param
      	from const_rtx to const rtx_insn *.
      
      	* config/alpha/alpha.c (alpha_cannot_copy_insn_p): Likewise.
      	(alpha_adjust_cost): Likewise for params "insn", "dep_insn".
      
      	* config/arc/arc.c (arc_sched_adjust_priority): Likewise for param
      	"insn".
      	(arc_invalid_within_doloop): Likewise, with const.
      
      	* config/arm/arm.c (arm_adjust_cost): Likewise for params "insn", "dep".
      	(arm_cannot_copy_insn_p): Likewise for param "insn".
      	(arm_unwind_emit): Likewise.
      
      	* config/bfin/bfin.c (bfin_adjust_cost): Likewise for params "insn",
      	"dep_insn".
      
      	* config/c6x/c6x.c (c6x_dfa_new_cycle): Likewise for param "insn".
      	(c6x_variable_issue): Likewise.  Removed now-redundant checked
      	cast.
      	(c6x_adjust_cost): Likewise for params "insn", "dep_insn".
      
      	* config/epiphany/epiphany-protos.h (epiphany_mode_needed):
      	Likewise for param "insn".
      	(epiphany_mode_after): Likewise.
      	* config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise for
      	params "insn", "dep_insn".
      	(epiphany_mode_needed): Likewise for param "insn".
      	(epiphany_mode_after): Likewise.
      
      	* config/i386/i386-protos.h (i386_pe_seh_unwind_emit): Likewise.
      	* config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
      	(ix86_avx_u128_mode_needed): Likewise.
      	(ix86_i387_mode_needed): Likewise.
      	(ix86_mode_needed): Likewise.
      	(ix86_avx_u128_mode_after): Likewise.
      	(ix86_mode_after): Likewise.
      	(ix86_adjust_cost): Likewise for params "insn", "dep_insn".
      	(ix86_macro_fusion_pair_p): Likewise for params "condgen", "condjmp".
      	(ix86_adjust_priority): Likewise for param "insn".
      	(core2i7_first_cycle_multipass_issue): Likewise for param "insn".
      	(do_dispatch): Likewise.
      	(has_dispatch): Likewise.
      	* config/i386/winnt.c (i386_pe_seh_unwind_emit): Likewise.
      
      	* config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Update to
      	reflect renaming of default hook implementation from
      	hook_constcharptr_const_rtx_null to
      	hook_constcharptr_const_rtx_insn_null.
      	(ia64_adjust_cost_2): Strengthen params "insn", "dep_insn" from
      	rtx to rtx_insn *.
      	(ia64_variable_issue): Likewise for param "insn".
      	(ia64_first_cycle_multipass_dfa_lookahead_guard): Likewise.
      	(ia64_dfa_new_cycle): Likewise.
      	(ia64_get_insn_spec_ds): Likewise.
      	(ia64_get_insn_checked_ds): Likewise.
      	(ia64_speculate_insn): Likewise.
      	(ia64_gen_spec_check): Likewise for params "insn", "label".
      	(ia64_asm_unwind_emit): Likewise for param "insn".
      
      	* config/m32r/m32r.c (m32r_adjust_priority): Likewise.
      
      	* config/m68k/m68k.c (m68k_sched_adjust_cost): Likewise for params
      	"insn", "def_insn".
      	(m68k_sched_variable_issue): Likewise for param "insn".
      
      	* config/mep/mep.c (mep_adjust_cost): Likewise for params "insn",
      	"def_insn".
      
      	* config/microblaze/microblaze.c (microblaze_adjust_cost):
      	Likewise for params "insn", "dep".
      
      	* config/mips/mips.c (mips_adjust_cost): Likewise.
      	(mips_variable_issue): Likewise for param "insn".
      	(mips_final_postscan_insn): Likewise.
      
      	* config/mn10300/mn10300.c (mn10300_adjust_sched_cost): Likewise
      	for params "insn", "dep".
      
      	* config/pa/pa.c (pa_adjust_cost): Likewise for params "insn",
      	"dep_insn".
      	(pa_adjust_priority): Likewise for param "insn".
      
      	* config/picochip/picochip.c (picochip_sched_adjust_cost):
      	Likewise for params "insn", "dep_insn".
      
      	* config/rs6000/rs6000.c (rs6000_variable_issue_1): Likewise for
      	param "insn".
      	(rs6000_variable_issue): Likewise.
      	(rs6000_adjust_cost): Likewise for params "insn", "dep_insn".
      	(rs6000_debug_adjust_cost): Likewise.
      	(rs6000_adjust_priority): Likewise for param "insn".
      	(rs6000_use_sched_lookahead_guard): Likewise.
      	(get_next_active_insn): Likewise for return type and both params.
      	(redefine_groups): Likewise for params "prev_head_insn", "tail"
      	and locals "insn", "next_insn".
      	(pad_groups): Likewise.
      
      	* config/s390/s390.c (s390_adjust_priority): Likewise for param
      	"insn".
      	(s390_cannot_copy_insn_p): Likewise.
      	(s390_sched_variable_issue): Likewise for third param, eliminating
      	checked cast.
      	(TARGET_INVALID_WITHIN_DOLOOP): Update to reflect renaming of
      	default hook implementation from hook_constcharptr_const_rtx_null
      	to hook_constcharptr_const_rtx_insn_null.
      
      	* config/sh/sh.c (sh_cannot_copy_insn_p): Strengthen param "insn"
      	from rtx to rtx_insn *.
      	(sh_adjust_cost): Likewise for params "insn", "dep_insn".
      	(sh_variable_issue): Likewise for param "insn".
      	(sh_dfa_new_cycle): Likewise.
      	(sh_mode_needed): Likewise.
      	(sh_mode_after): Likewise.
      
      	* config/sparc/sparc.c (supersparc_adjust_cost): Likewise for
      	params "insn", "dep_insn".
      	(hypersparc_adjust_cost): Likewise.
      	(sparc_adjust_cost): Likewise.
      
      	* config/spu/spu.c (spu_sched_variable_issue): Likewise for third
      	param, eliminated checked cast.
      	(spu_sched_adjust_cost): Likewise for first and third params.
      
      	* config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Strengthen
      	params "insn" and "dep_insn" from rtx to rtx_insn *.
      
      	* config/tilepro/tilepro.c (tilepro_sched_adjust_cost): Likewise.
      
      From-SVN: r214584
      David Malcolm committed