Commit a79b674b by David Malcolm Committed by David Malcolm

Use rtx_insn in various places in resource.[ch]

gcc/
2014-08-28  David Malcolm  <dmalcolm@redhat.com>

	* resource.h (clear_hashed_info_for_insn): Strengthen param from
	rtx to rtx_insn *.
	(incr_ticks_for_insn): Likewise.
	(init_resource_info): Likewise.

	* resource.c (init_resource_info): Likewise.
	(clear_hashed_info_for_insn): Likewise.
	(incr_ticks_for_insn): Likewise.

	* reorg.c (delete_scheduled_jump): Strengthen param "insn" from
	rtx to rtx_insn *.
	(steal_delay_list_from_target): Use methods of "seq".
	(try_merge_delay_insns): Use methods of "merged_insns".
	(update_block): Strengthen param "insn" from rtx to rtx_insn *.
	(reorg_redirect_jump): Likewise for param "jump".

From-SVN: r214702
parent 17f385d8
2014-08-28 David Malcolm <dmalcolm@redhat.com> 2014-08-28 David Malcolm <dmalcolm@redhat.com>
* resource.h (clear_hashed_info_for_insn): Strengthen param from
rtx to rtx_insn *.
(incr_ticks_for_insn): Likewise.
(init_resource_info): Likewise.
* resource.c (init_resource_info): Likewise.
(clear_hashed_info_for_insn): Likewise.
(incr_ticks_for_insn): Likewise.
* reorg.c (delete_scheduled_jump): Strengthen param "insn" from
rtx to rtx_insn *.
(steal_delay_list_from_target): Use methods of "seq".
(try_merge_delay_insns): Use methods of "merged_insns".
(update_block): Strengthen param "insn" from rtx to rtx_insn *.
(reorg_redirect_jump): Likewise for param "jump".
2014-08-28 David Malcolm <dmalcolm@redhat.com>
* insn-addr.h (insn_addresses_new): Strengthen param "insn" from * insn-addr.h (insn_addresses_new): Strengthen param "insn" from
rtx to rtx_insn *. rtx to rtx_insn *.
* config/s390/s390.c (s390_split_branches): Eliminate top-level * config/s390/s390.c (s390_split_branches): Eliminate top-level
...@@ -210,7 +210,7 @@ static rtx_code_label *find_end_label (rtx); ...@@ -210,7 +210,7 @@ static rtx_code_label *find_end_label (rtx);
static rtx_insn *emit_delay_sequence (rtx_insn *, rtx_insn_list *, int); static rtx_insn *emit_delay_sequence (rtx_insn *, rtx_insn_list *, int);
static rtx_insn_list *add_to_delay_list (rtx_insn *, rtx_insn_list *); static rtx_insn_list *add_to_delay_list (rtx_insn *, rtx_insn_list *);
static rtx_insn *delete_from_delay_slot (rtx_insn *); static rtx_insn *delete_from_delay_slot (rtx_insn *);
static void delete_scheduled_jump (rtx); static void delete_scheduled_jump (rtx_insn *);
static void note_delay_statistics (int, int); static void note_delay_statistics (int, int);
#if defined(ANNUL_IFFALSE_SLOTS) || defined(ANNUL_IFTRUE_SLOTS) #if defined(ANNUL_IFFALSE_SLOTS) || defined(ANNUL_IFTRUE_SLOTS)
static rtx_insn_list *optimize_skip (rtx_insn *); static rtx_insn_list *optimize_skip (rtx_insn *);
...@@ -240,8 +240,8 @@ static rtx_insn_list *steal_delay_list_from_fallthrough (rtx_insn *, rtx, ...@@ -240,8 +240,8 @@ static rtx_insn_list *steal_delay_list_from_fallthrough (rtx_insn *, rtx,
static void try_merge_delay_insns (rtx, rtx_insn *); static void try_merge_delay_insns (rtx, rtx_insn *);
static rtx redundant_insn (rtx, rtx_insn *, rtx); static rtx redundant_insn (rtx, rtx_insn *, rtx);
static int own_thread_p (rtx_insn *, rtx, int); static int own_thread_p (rtx_insn *, rtx, int);
static void update_block (rtx, rtx); static void update_block (rtx_insn *, rtx);
static int reorg_redirect_jump (rtx, rtx); static int reorg_redirect_jump (rtx_insn *, rtx);
static void update_reg_dead_notes (rtx, rtx); static void update_reg_dead_notes (rtx, rtx);
static void fix_reg_dead_note (rtx, rtx); static void fix_reg_dead_note (rtx, rtx);
static void update_reg_unused_notes (rtx, rtx); static void update_reg_unused_notes (rtx, rtx);
...@@ -666,7 +666,7 @@ delete_from_delay_slot (rtx_insn *insn) ...@@ -666,7 +666,7 @@ delete_from_delay_slot (rtx_insn *insn)
the insn that sets CC0 for it and delete it too. */ the insn that sets CC0 for it and delete it too. */
static void static void
delete_scheduled_jump (rtx insn) delete_scheduled_jump (rtx_insn *insn)
{ {
/* Delete the insn that sets cc0 for us. On machines without cc0, we could /* Delete the insn that sets cc0 for us. On machines without cc0, we could
delete the insn that sets the condition code, but it is hard to find it. delete the insn that sets the condition code, but it is hard to find it.
...@@ -1197,9 +1197,9 @@ steal_delay_list_from_target (rtx_insn *insn, rtx condition, rtx_sequence *seq, ...@@ -1197,9 +1197,9 @@ steal_delay_list_from_target (rtx_insn *insn, rtx condition, rtx_sequence *seq,
/* Record the effect of the instructions that were redundant and which /* Record the effect of the instructions that were redundant and which
we therefore decided not to copy. */ we therefore decided not to copy. */
for (i = 1; i < XVECLEN (seq, 0); i++) for (i = 1; i < seq->len (); i++)
if (redundant[i]) if (redundant[i])
update_block (XVECEXP (seq, 0, i), insn); update_block (seq->insn (i), insn);
/* Show the place to which we will be branching. */ /* Show the place to which we will be branching. */
*pnew_thread = first_active_target_insn (JUMP_LABEL_AS_INSN (seq->insn (0))); *pnew_thread = first_active_target_insn (JUMP_LABEL_AS_INSN (seq->insn (0)));
...@@ -1460,15 +1460,15 @@ try_merge_delay_insns (rtx insn, rtx_insn *thread) ...@@ -1460,15 +1460,15 @@ try_merge_delay_insns (rtx insn, rtx_insn *thread)
{ {
rtx_insn *new_rtx; rtx_insn *new_rtx;
update_block (XEXP (merged_insns, 0), thread); update_block (merged_insns->insn (), thread);
new_rtx = delete_from_delay_slot (merged_insns->insn ()); new_rtx = delete_from_delay_slot (merged_insns->insn ());
if (INSN_DELETED_P (thread)) if (INSN_DELETED_P (thread))
thread = new_rtx; thread = new_rtx;
} }
else else
{ {
update_block (XEXP (merged_insns, 0), thread); update_block (merged_insns->insn (), thread);
delete_related_insns (XEXP (merged_insns, 0)); delete_related_insns (merged_insns->insn ());
} }
} }
...@@ -1759,7 +1759,7 @@ own_thread_p (rtx_insn *thread, rtx label, int allow_fallthrough) ...@@ -1759,7 +1759,7 @@ own_thread_p (rtx_insn *thread, rtx label, int allow_fallthrough)
BARRIER in relax_delay_slots. */ BARRIER in relax_delay_slots. */
static void static void
update_block (rtx insn, rtx where) update_block (rtx_insn *insn, rtx where)
{ {
/* Ignore if this was in a delay slot and it came from the target of /* Ignore if this was in a delay slot and it came from the target of
a branch. */ a branch. */
...@@ -1778,7 +1778,7 @@ update_block (rtx insn, rtx where) ...@@ -1778,7 +1778,7 @@ update_block (rtx insn, rtx where)
the basic block containing the jump. */ the basic block containing the jump. */
static int static int
reorg_redirect_jump (rtx jump, rtx nlabel) reorg_redirect_jump (rtx_insn *jump, rtx nlabel)
{ {
incr_ticks_for_insn (jump); incr_ticks_for_insn (jump);
return redirect_jump (jump, nlabel, 1); return redirect_jump (jump, nlabel, 1);
......
...@@ -1155,7 +1155,7 @@ mark_target_live_regs (rtx_insn *insns, rtx_insn *target, struct resources *res) ...@@ -1155,7 +1155,7 @@ mark_target_live_regs (rtx_insn *insns, rtx_insn *target, struct resources *res)
This should be invoked before the first call to mark_target_live_regs. */ This should be invoked before the first call to mark_target_live_regs. */
void void
init_resource_info (rtx epilogue_insn) init_resource_info (rtx_insn *epilogue_insn)
{ {
int i; int i;
basic_block bb; basic_block bb;
...@@ -1275,7 +1275,7 @@ free_resource_info (void) ...@@ -1275,7 +1275,7 @@ free_resource_info (void)
/* Clear any hashed information that we have stored for INSN. */ /* Clear any hashed information that we have stored for INSN. */
void void
clear_hashed_info_for_insn (rtx insn) clear_hashed_info_for_insn (rtx_insn *insn)
{ {
struct target_info *tinfo; struct target_info *tinfo;
...@@ -1294,7 +1294,7 @@ clear_hashed_info_for_insn (rtx insn) ...@@ -1294,7 +1294,7 @@ clear_hashed_info_for_insn (rtx insn)
/* Increment the tick count for the basic block that contains INSN. */ /* Increment the tick count for the basic block that contains INSN. */
void void
incr_ticks_for_insn (rtx insn) incr_ticks_for_insn (rtx_insn *insn)
{ {
int b = find_basic_block (insn, MAX_DELAY_SLOT_LIVE_SEARCH); int b = find_basic_block (insn, MAX_DELAY_SLOT_LIVE_SEARCH);
......
...@@ -48,10 +48,10 @@ extern void mark_target_live_regs (rtx_insn *, rtx_insn *, struct resources *); ...@@ -48,10 +48,10 @@ extern void mark_target_live_regs (rtx_insn *, rtx_insn *, struct resources *);
extern void mark_set_resources (rtx, struct resources *, int, extern void mark_set_resources (rtx, struct resources *, int,
enum mark_resource_type); enum mark_resource_type);
extern void mark_referenced_resources (rtx, struct resources *, bool); extern void mark_referenced_resources (rtx, struct resources *, bool);
extern void clear_hashed_info_for_insn (rtx); extern void clear_hashed_info_for_insn (rtx_insn *);
extern void incr_ticks_for_insn (rtx); extern void incr_ticks_for_insn (rtx_insn *);
extern void mark_end_of_function_resources (rtx, bool); extern void mark_end_of_function_resources (rtx, bool);
extern void init_resource_info (rtx); extern void init_resource_info (rtx_insn *);
extern void free_resource_info (void); extern void free_resource_info (void);
#endif /* GCC_RESOURCE_H */ #endif /* GCC_RESOURCE_H */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment