[PATCH 08/10] Use rtx_insn_list within haifa-sched.c

David Malcolm dmalcolm@redhat.com
Fri Sep 5 01:47:00 GMT 2014


gcc/
	* haifa-sched.c (check_clobbered_conditions): Strengthen local
	"link" from rtx to rtx_insn_list *, and use its methods for
	clarity and type-safety.
	(toggle_cancelled_flags): Likewise.
	(restore_last_backtrack_point): Likewise.
	(queue_to_ready): Use insn method of "link" in one place.
	(schedule_block): Strengthen local "link" from rtx to
	rtx_insn_list *, and use its methods for clarity and type-safety.
---
 gcc/haifa-sched.c | 29 ++++++++++++++---------------
 1 file changed, 14 insertions(+), 15 deletions(-)

diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c
index 83ea5bd..fb92bb2 100644
--- a/gcc/haifa-sched.c
+++ b/gcc/haifa-sched.c
@@ -3148,13 +3148,13 @@ check_clobbered_conditions (rtx insn)
     }
   for (i = 0; i <= max_insn_queue_index; i++)
     {
-      rtx link;
+      rtx_insn_list *link;
       int q = NEXT_Q_AFTER (q_ptr, i);
 
     restart_queue:
-      for (link = insn_queue[q]; link; link = XEXP (link, 1))
+      for (link = insn_queue[q]; link; link = link->next ())
 	{
-	  rtx_insn *x = as_a <rtx_insn *> (XEXP (link, 0));
+	  rtx_insn *x = link->insn ();
 	  if (TODO_SPEC (x) == DEP_CONTROL && cond_clobbered_p (x, t))
 	    {
 	      queue_remove (x);
@@ -4239,10 +4239,10 @@ toggle_cancelled_flags (bool set)
   for (i = 0; i <= max_insn_queue_index; i++)
     {
       int q = NEXT_Q_AFTER (q_ptr, i);
-      rtx link;
-      for (link = insn_queue[q]; link; link = XEXP (link, 1))
+      rtx_insn_list *link;
+      for (link = insn_queue[q]; link; link = link->next ())
 	{
-	  rtx insn = XEXP (link, 0);
+	  rtx_insn *insn = link->insn ();
 	  FOR_EACH_DEP (insn, SD_LIST_BACK, sd_it, dep)
 	    if (!DEBUG_INSN_P (DEP_PRO (dep)))
 	      {
@@ -4349,7 +4349,6 @@ unschedule_insns_until (rtx insn)
 static void
 restore_last_backtrack_point (struct sched_block_state *psched_block)
 {
-  rtx link;
   int i;
   struct haifa_saved_data *save = backtrack_queue;
 
@@ -4384,9 +4383,9 @@ restore_last_backtrack_point (struct sched_block_state *psched_block)
     {
       int q = NEXT_Q_AFTER (q_ptr, i);
 
-      for (link = insn_queue[q]; link; link = XEXP (link, 1))
+      for (rtx_insn_list *link = insn_queue[q]; link; link = link->next ())
 	{
-	  rtx_insn *x = as_a <rtx_insn *> (XEXP (link, 0));
+	  rtx_insn *x = link->insn ();
 	  QUEUE_INDEX (x) = QUEUE_NOWHERE;
 	  INSN_TICK (x) = INVALID_TICK;
 	}
@@ -4416,9 +4415,9 @@ restore_last_backtrack_point (struct sched_block_state *psched_block)
 
       insn_queue[q] = save->insn_queue[q];
 
-      for (link = insn_queue[q]; link; link = XEXP (link, 1))
+      for (rtx_insn_list *link = insn_queue[q]; link; link = link->next ())
 	{
-	  rtx_insn *x = as_a <rtx_insn *> (XEXP (link, 0));
+	  rtx_insn *x = link->insn ();
 	  QUEUE_INDEX (x) = i;
 	  TODO_SPEC (x) = recompute_todo_spec (x, true);
 	  INSN_TICK (x) = save->clock_var + i;
@@ -4991,7 +4990,7 @@ queue_to_ready (struct ready_list *ready)
 	    {
 	      for (; link; link = link->next ())
 		{
-		  insn = as_a <rtx_insn *> (XEXP (link, 0));
+		  insn = link->insn ();
 		  q_size -= 1;
 
 		  if (sched_verbose >= 2)
@@ -6545,12 +6544,12 @@ schedule_block (basic_block *target_bb, state_t init_state)
       if (q_size)
 	for (i = 0; i <= max_insn_queue_index; i++)
 	  {
-	    rtx link;
-	    for (link = insn_queue[i]; link; link = XEXP (link, 1))
+	    rtx_insn_list *link;
+	    for (link = insn_queue[i]; link; link = link->next ())
 	      {
 		rtx_insn *x;
 
-		x = as_a <rtx_insn *> (XEXP (link, 0));
+		x = link->insn ();
 		QUEUE_INDEX (x) = QUEUE_NOWHERE;
 		TODO_SPEC (x) = HARD_DEP;
 	      }
-- 
1.8.5.3



More information about the Gcc-patches mailing list