public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH 2/3] make forced labels a vec
  2016-08-25  6:42 [PATCH 0/3] more rtl list work tbsaunde+gcc
@ 2016-08-25  6:42 ` tbsaunde+gcc
  2016-08-25  8:44   ` Bernd Schmidt
  2016-08-25  6:42 ` [PATCH 3/3] make stack_slot_list a vec<rtx> tbsaunde+gcc
  2016-08-25  6:42 ` [PATCH 1/3] haifa-sched.c: make ready_list an auto_vec<rtx_insn *> tbsaunde+gcc
  2 siblings, 1 reply; 9+ messages in thread
From: tbsaunde+gcc @ 2016-08-25  6:42 UTC (permalink / raw)
  To: gcc-patches

From: Trevor Saunders <tbsaunde+gcc@tbsaunde.org>

gcc/ChangeLog:

2016-08-25  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* cfgbuild.c (make_edges): Adjust.
	* cfgrtl.c (can_delete_label_p): Likewise.
	* dwarf2cfi.c (create_trace_edges): Likewise.
	* except.c (sjlj_emit_dispatch_table): Likewise.
	* function.h (struct expr_status): make x_forced_labels a vector.
	* jump.c (rebuild_jump_labels_1): Adjust.
	* reload1.c (set_initial_label_offsets): Likewise.
	* stmt.c (force_label_rtx): Likewise.
	(expand_label): Likewise.
---
 gcc/cfgbuild.c  |  9 ++++++---
 gcc/cfgrtl.c    |  3 ++-
 gcc/dwarf2cfi.c |  6 ++++--
 gcc/except.c    |  3 +--
 gcc/function.h  |  2 +-
 gcc/jump.c      | 12 +++++++-----
 gcc/reload1.c   |  7 ++++---
 gcc/stmt.c      |  4 ++--
 8 files changed, 27 insertions(+), 19 deletions(-)

diff --git a/gcc/cfgbuild.c b/gcc/cfgbuild.c
index c1ec46a..20fc270 100644
--- a/gcc/cfgbuild.c
+++ b/gcc/cfgbuild.c
@@ -204,7 +204,8 @@ make_edges (basic_block min, basic_block max, int update_p)
   /* Heavy use of computed goto in machine-generated code can lead to
      nearly fully-connected CFGs.  In that case we spend a significant
      amount of time searching the edge lists for duplicates.  */
-  if (forced_labels || cfun->cfg->max_jumptable_ents > 100)
+  if (!vec_safe_is_empty (forced_labels)
+      || cfun->cfg->max_jumptable_ents > 100)
     edge_cache = sbitmap_alloc (last_basic_block_for_fn (cfun));
 
   /* By nature of the way these get numbered, ENTRY_BLOCK_PTR->next_bb block
@@ -280,8 +281,10 @@ make_edges (basic_block min, basic_block max, int update_p)
 	     everything on the forced_labels list.  */
 	  else if (computed_jump_p (insn))
 	    {
-	      for (rtx_insn_list *x = forced_labels; x; x = x->next ())
-		make_label_edge (edge_cache, bb, x->insn (), EDGE_ABNORMAL);
+	      rtx_insn *insn;
+	      unsigned int i;
+	      FOR_EACH_VEC_SAFE_ELT_REVERSE (forced_labels, i, insn)
+		make_label_edge (edge_cache, bb, insn, EDGE_ABNORMAL);
 	    }
 
 	  /* Returns create an exit out.  */
diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c
index 0d335fc..de07fcd 100644
--- a/gcc/cfgrtl.c
+++ b/gcc/cfgrtl.c
@@ -115,7 +115,8 @@ can_delete_label_p (const rtx_code_label *label)
   return (!LABEL_PRESERVE_P (label)
 	  /* User declared labels must be preserved.  */
 	  && LABEL_NAME (label) == 0
-	  && !in_insn_list_p (forced_labels, label));
+	  && !vec_safe_contains<rtx_insn *> (forced_labels,
+					     const_cast<rtx_code_label *> (label)));
 }
 
 /* Delete INSN by patching it out.  */
diff --git a/gcc/dwarf2cfi.c b/gcc/dwarf2cfi.c
index bcf79f5..3ded2ce 100644
--- a/gcc/dwarf2cfi.c
+++ b/gcc/dwarf2cfi.c
@@ -2354,8 +2354,10 @@ create_trace_edges (rtx_insn *insn)
 	}
       else if (computed_jump_p (insn))
 	{
-	  for (rtx_insn_list *lab = forced_labels; lab; lab = lab->next ())
-	    maybe_record_trace_start (lab->insn (), insn);
+	  rtx_insn *temp;
+	  unsigned int i;
+	  FOR_EACH_VEC_SAFE_ELT_REVERSE (forced_labels, i, temp)
+	    maybe_record_trace_start (temp, insn);
 	}
       else if (returnjump_p (insn))
 	;
diff --git a/gcc/except.c b/gcc/except.c
index 8aeb4e8..bc6f30c 100644
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -1278,8 +1278,7 @@ sjlj_emit_dispatch_table (rtx_code_label *dispatch_label, int num_dispatch)
      label on the nonlocal_goto_label list.  Since we're modeling these
      CFG edges more exactly, we can use the forced_labels list instead.  */
   LABEL_PRESERVE_P (dispatch_label) = 1;
-  forced_labels
-    = gen_rtx_INSN_LIST (VOIDmode, dispatch_label, forced_labels);
+  vec_safe_push<rtx_insn *> (forced_labels, dispatch_label);
 #endif
 
   /* Load up exc_ptr and filter values from the function context.  */
diff --git a/gcc/function.h b/gcc/function.h
index 501ef68..590a490 100644
--- a/gcc/function.h
+++ b/gcc/function.h
@@ -126,7 +126,7 @@ struct GTY(()) expr_status {
   rtx x_apply_args_value;
 
   /* List of labels that must never be deleted.  */
-  rtx_insn_list *x_forced_labels;
+  vec<rtx_insn *, va_gc> *x_forced_labels;
 };
 
 typedef struct call_site_record_d *call_site_record;
diff --git a/gcc/jump.c b/gcc/jump.c
index 5b433af..b166926 100644
--- a/gcc/jump.c
+++ b/gcc/jump.c
@@ -68,8 +68,6 @@ static int invert_exp_1 (rtx, rtx);
 static void
 rebuild_jump_labels_1 (rtx_insn *f, bool count_forced)
 {
-  rtx_insn_list *insn;
-
   timevar_push (TV_REBUILD_JUMP);
   init_label_info (f);
   mark_all_labels (f);
@@ -79,9 +77,13 @@ rebuild_jump_labels_1 (rtx_insn *f, bool count_forced)
      count doesn't drop to zero.  */
 
   if (count_forced)
-    for (insn = forced_labels; insn; insn = insn->next ())
-      if (LABEL_P (insn->insn ()))
-	LABEL_NUSES (insn->insn ())++;
+    {
+      rtx_insn *insn;
+      unsigned int i;
+      FOR_EACH_VEC_SAFE_ELT_REVERSE (forced_labels, i, insn)
+	if (LABEL_P (insn))
+	  LABEL_NUSES (insn)++;
+    }
   timevar_pop (TV_REBUILD_JUMP);
 }
 
diff --git a/gcc/reload1.c b/gcc/reload1.c
index 04cf212..80bfd34 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -3888,9 +3888,10 @@ set_initial_label_offsets (void)
 {
   memset (offsets_known_at, 0, num_labels);
 
-  for (rtx_insn_list *x = forced_labels; x; x = x->next ())
-    if (x->insn ())
-      set_label_offsets (x->insn (), NULL, 1);
+  unsigned int i;
+  rtx_insn *insn;
+  FOR_EACH_VEC_SAFE_ELT_REVERSE (forced_labels, i, insn)
+    set_label_offsets (insn, NULL, 1);
 
   for (rtx_insn_list *x = nonlocal_goto_handler_labels; x; x = x->next ())
     if (x->insn ())
diff --git a/gcc/stmt.c b/gcc/stmt.c
index 2e9072f..1bae9e9 100644
--- a/gcc/stmt.c
+++ b/gcc/stmt.c
@@ -136,7 +136,7 @@ force_label_rtx (tree label)
 
   gcc_assert (function);
 
-  forced_labels = gen_rtx_INSN_LIST (VOIDmode, ref, forced_labels);
+  vec_safe_push (forced_labels, ref);
   return ref;
 }
 
@@ -190,7 +190,7 @@ expand_label (tree label)
     }
 
   if (FORCED_LABEL (label))
-    forced_labels = gen_rtx_INSN_LIST (VOIDmode, label_r, forced_labels);
+    vec_safe_push<rtx_insn *> (forced_labels, label_r);
 
   if (DECL_NONLOCAL (label) || FORCED_LABEL (label))
     maybe_set_first_label_num (label_r);
-- 
2.9.0

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 3/3] make stack_slot_list a vec<rtx>
  2016-08-25  6:42 [PATCH 0/3] more rtl list work tbsaunde+gcc
  2016-08-25  6:42 ` [PATCH 2/3] make forced labels a vec tbsaunde+gcc
@ 2016-08-25  6:42 ` tbsaunde+gcc
  2016-08-25  8:46   ` Bernd Schmidt
  2016-08-25  6:42 ` [PATCH 1/3] haifa-sched.c: make ready_list an auto_vec<rtx_insn *> tbsaunde+gcc
  2 siblings, 1 reply; 9+ messages in thread
From: tbsaunde+gcc @ 2016-08-25  6:42 UTC (permalink / raw)
  To: gcc-patches

From: Trevor Saunders <tbsaunde+gcc@tbsaunde.org>

gcc/ChangeLog:

2016-08-25  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* emit-rtl.h (struct rtl_data): Make stack_slot_list a vector.
	* emit-rtl.c (unshare_all_rtl_1): Adjust.
	(unshare_all_rtl_again): Likewise.
	* function.c (assign_stack_local_1): Likewise.
	(assign_stack_temp_for_type): Likewise.
---
 gcc/emit-rtl.c | 11 ++++++++---
 gcc/emit-rtl.h |  2 +-
 gcc/function.c |  8 +++-----
 3 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index 99f052d..c1051eb 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -2626,8 +2626,10 @@ unshare_all_rtl_1 (rtx_insn *insn)
      This special care is necessary when the stack slot MEM does not
      actually appear in the insn chain.  If it does appear, its address
      is unshared from all else at that point.  */
-  stack_slot_list = safe_as_a <rtx_expr_list *> (
-		      copy_rtx_if_shared (stack_slot_list));
+  unsigned int i;
+  rtx temp;
+  FOR_EACH_VEC_SAFE_ELT_REVERSE (stack_slot_list, i, temp)
+    (*stack_slot_list)[i] = copy_rtx_if_shared (temp);
 }
 
 /* Go through all the RTL insn bodies and copy any invalid shared
@@ -2656,7 +2658,10 @@ unshare_all_rtl_again (rtx_insn *insn)
   for (decl = DECL_ARGUMENTS (cfun->decl); decl; decl = DECL_CHAIN (decl))
     set_used_flags (DECL_RTL (decl));
 
-  reset_used_flags (stack_slot_list);
+  rtx temp;
+  unsigned int i;
+  FOR_EACH_VEC_SAFE_ELT_REVERSE (stack_slot_list, i, temp)
+    reset_used_flags (temp);
 
   unshare_all_rtl_1 (insn);
 }
diff --git a/gcc/emit-rtl.h b/gcc/emit-rtl.h
index 39dfce9..52c72b1 100644
--- a/gcc/emit-rtl.h
+++ b/gcc/emit-rtl.h
@@ -104,7 +104,7 @@ struct GTY(()) rtl_data {
 
   /* List (chain of EXPR_LISTs) of all stack slots in this function.
      Made for the sake of unshare_all_rtl.  */
-  rtx_expr_list *x_stack_slot_list;
+  vec<rtx, va_gc> *x_stack_slot_list;
 
   /* List of empty areas in the stack frame.  */
   struct frame_space *frame_space_list;
diff --git a/gcc/function.c b/gcc/function.c
index bba0705..53bad87 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -499,8 +499,7 @@ assign_stack_local_1 (machine_mode mode, HOST_WIDE_INT size,
   set_mem_align (x, alignment_in_bits);
   MEM_NOTRAP_P (x) = 1;
 
-  stack_slot_list
-    = gen_rtx_EXPR_LIST (VOIDmode, x, stack_slot_list);
+  vec_safe_push (stack_slot_list, x);
 
   if (frame_offset_overflow (frame_offset, current_function_decl))
     frame_offset = 0;
@@ -829,8 +828,7 @@ assign_stack_temp_for_type (machine_mode mode, HOST_WIDE_INT size,
 	      p->type = best_p->type;
 	      insert_slot_to_list (p, &avail_temp_slots);
 
-	      stack_slot_list = gen_rtx_EXPR_LIST (VOIDmode, p->slot,
-						   stack_slot_list);
+	      vec_safe_push (stack_slot_list, p->slot);
 
 	      best_p->size = rounded_size;
 	      best_p->full_size = rounded_size;
@@ -902,7 +900,7 @@ assign_stack_temp_for_type (machine_mode mode, HOST_WIDE_INT size,
 
   /* Create a new MEM rtx to avoid clobbering MEM flags of old slots.  */
   slot = gen_rtx_MEM (mode, XEXP (p->slot, 0));
-  stack_slot_list = gen_rtx_EXPR_LIST (VOIDmode, slot, stack_slot_list);
+  vec_safe_push (stack_slot_list, slot);
 
   /* If we know the alias set for the memory that will be used, use
      it.  If there's no TYPE, then we don't know anything about the
-- 
2.9.0

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 0/3] more rtl list work
@ 2016-08-25  6:42 tbsaunde+gcc
  2016-08-25  6:42 ` [PATCH 2/3] make forced labels a vec tbsaunde+gcc
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: tbsaunde+gcc @ 2016-08-25  6:42 UTC (permalink / raw)
  To: gcc-patches

From: Trevor Saunders <tbsaunde+gcc@tbsaunde.org>

Hi,

continueing on with getting rid of uses of rtx_insn_list and rtx_expr_list.

bootstrapped + regtested patches individually on x86_64-linux-gnu, ok?

Thanks!

Trev


Trevor Saunders (3):
  haifa-sched.c: make ready_list an auto_vec<rtx_insn *>
  make forced labels a vec
  make stack_slot_list a vec<rtx>

 gcc/cfgbuild.c    |  9 ++++++---
 gcc/cfgrtl.c      |  3 ++-
 gcc/dwarf2cfi.c   |  6 ++++--
 gcc/emit-rtl.c    | 11 ++++++++---
 gcc/emit-rtl.h    |  2 +-
 gcc/except.c      |  3 +--
 gcc/function.c    |  8 +++-----
 gcc/function.h    |  2 +-
 gcc/haifa-sched.c | 12 ++++++------
 gcc/jump.c        | 12 +++++++-----
 gcc/reload1.c     |  7 ++++---
 gcc/stmt.c        |  4 ++--
 12 files changed, 45 insertions(+), 34 deletions(-)

-- 
2.9.0

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 1/3] haifa-sched.c: make ready_list an auto_vec<rtx_insn *>
  2016-08-25  6:42 [PATCH 0/3] more rtl list work tbsaunde+gcc
  2016-08-25  6:42 ` [PATCH 2/3] make forced labels a vec tbsaunde+gcc
  2016-08-25  6:42 ` [PATCH 3/3] make stack_slot_list a vec<rtx> tbsaunde+gcc
@ 2016-08-25  6:42 ` tbsaunde+gcc
  2016-08-25  8:48   ` Bernd Schmidt
  2 siblings, 1 reply; 9+ messages in thread
From: tbsaunde+gcc @ 2016-08-25  6:42 UTC (permalink / raw)
  To: gcc-patches

From: Trevor Saunders <tbsaunde+gcc@tbsaunde.org>

gcc/ChangeLog:

2016-08-25  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* haifa-sched.c (fix_recovery_deps): Make ready_list a vector.
---
 gcc/haifa-sched.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c
index 84e42c0..c58b0ad 100644
--- a/gcc/haifa-sched.c
+++ b/gcc/haifa-sched.c
@@ -8600,9 +8600,8 @@ static void
 fix_recovery_deps (basic_block rec)
 {
   rtx_insn *note, *insn, *jump;
-  rtx_insn_list *ready_list = 0;
+  auto_vec<rtx_insn *, 10> ready_list;
   bitmap_head in_ready;
-  rtx_insn_list *link;
 
   bitmap_initialize (&in_ready, 0);
 
@@ -8628,7 +8627,7 @@ fix_recovery_deps (basic_block rec)
 	      sd_delete_dep (sd_it);
 
 	      if (bitmap_set_bit (&in_ready, INSN_LUID (consumer)))
-		ready_list = alloc_INSN_LIST (consumer, ready_list);
+		ready_list.safe_push (consumer);
 	    }
 	  else
 	    {
@@ -8645,9 +8644,10 @@ fix_recovery_deps (basic_block rec)
   bitmap_clear (&in_ready);
 
   /* Try to add instructions to the ready or queue list.  */
-  for (link = ready_list; link; link = link->next ())
-    try_ready (link->insn ());
-  free_INSN_LIST_list (&ready_list);
+  unsigned int i;
+  rtx_insn *temp;
+  FOR_EACH_VEC_ELT_REVERSE (ready_list, i, temp)
+    try_ready (temp);
 
   /* Fixing jump's dependences.  */
   insn = BB_HEAD (rec);
-- 
2.9.0

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/3] make forced labels a vec
  2016-08-25  6:42 ` [PATCH 2/3] make forced labels a vec tbsaunde+gcc
@ 2016-08-25  8:44   ` Bernd Schmidt
  0 siblings, 0 replies; 9+ messages in thread
From: Bernd Schmidt @ 2016-08-25  8:44 UTC (permalink / raw)
  To: tbsaunde+gcc, gcc-patches

On 08/25/2016 08:50 AM, tbsaunde+gcc@tbsaunde.org wrote:
> +	      FOR_EACH_VEC_SAFE_ELT_REVERSE (forced_labels, i, insn)
> +		make_label_edge (edge_cache, bb, insn, EDGE_ABNORMAL);

All of these look like they'd be perfectly fine as a normal 
FOR_EACH_VEC_SAFE_ELT, and it would be clearer that way. Ok with that 
change after retesting.


Bernd

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 3/3] make stack_slot_list a vec<rtx>
  2016-08-25  6:42 ` [PATCH 3/3] make stack_slot_list a vec<rtx> tbsaunde+gcc
@ 2016-08-25  8:46   ` Bernd Schmidt
  2016-08-26 15:55     ` Trevor Saunders
  0 siblings, 1 reply; 9+ messages in thread
From: Bernd Schmidt @ 2016-08-25  8:46 UTC (permalink / raw)
  To: tbsaunde+gcc, gcc-patches

On 08/25/2016 08:50 AM, tbsaunde+gcc@tbsaunde.org wrote:
> @@ -2626,8 +2626,10 @@ unshare_all_rtl_1 (rtx_insn *insn)
>       This special care is necessary when the stack slot MEM does not
>       actually appear in the insn chain.  If it does appear, its address
>       is unshared from all else at that point.  */
> -  stack_slot_list = safe_as_a <rtx_expr_list *> (
> -		      copy_rtx_if_shared (stack_slot_list));
> +  unsigned int i;
> +  rtx temp;
> +  FOR_EACH_VEC_SAFE_ELT_REVERSE (stack_slot_list, i, temp)
> +    (*stack_slot_list)[i] = copy_rtx_if_shared (temp);
>  }
>
>  /* Go through all the RTL insn bodies and copy any invalid shared
> @@ -2656,7 +2658,10 @@ unshare_all_rtl_again (rtx_insn *insn)
>    for (decl = DECL_ARGUMENTS (cfun->decl); decl; decl = DECL_CHAIN (decl))
>      set_used_flags (DECL_RTL (decl));
>
> -  reset_used_flags (stack_slot_list);
> +  rtx temp;
> +  unsigned int i;
> +  FOR_EACH_VEC_SAFE_ELT_REVERSE (stack_slot_list, i, temp)
> +    reset_used_flags (temp);

Same here, there doesn't seem to be a reason to go reverse in either of 
the two.


Bernd

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/3] haifa-sched.c: make ready_list an auto_vec<rtx_insn *>
  2016-08-25  6:42 ` [PATCH 1/3] haifa-sched.c: make ready_list an auto_vec<rtx_insn *> tbsaunde+gcc
@ 2016-08-25  8:48   ` Bernd Schmidt
  0 siblings, 0 replies; 9+ messages in thread
From: Bernd Schmidt @ 2016-08-25  8:48 UTC (permalink / raw)
  To: tbsaunde+gcc, gcc-patches



On 08/25/2016 08:50 AM, tbsaunde+gcc@tbsaunde.org wrote:
> From: Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
>
> gcc/ChangeLog:
>
> 2016-08-25  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
>
> 	* haifa-sched.c (fix_recovery_deps): Make ready_list a vector.

The subject of the mail scared me, but it looks like this just deals 
with a local variable in a rarely used function, not the real ready list.

This one is ok as-is.


Bernd

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 3/3] make stack_slot_list a vec<rtx>
  2016-08-25  8:46   ` Bernd Schmidt
@ 2016-08-26 15:55     ` Trevor Saunders
  2016-08-26 15:56       ` Bernd Schmidt
  0 siblings, 1 reply; 9+ messages in thread
From: Trevor Saunders @ 2016-08-26 15:55 UTC (permalink / raw)
  To: Bernd Schmidt; +Cc: tbsaunde+gcc, gcc-patches

On Thu, Aug 25, 2016 at 10:46:14AM +0200, Bernd Schmidt wrote:
> On 08/25/2016 08:50 AM, tbsaunde+gcc@tbsaunde.org wrote:
> > @@ -2626,8 +2626,10 @@ unshare_all_rtl_1 (rtx_insn *insn)
> >       This special care is necessary when the stack slot MEM does not
> >       actually appear in the insn chain.  If it does appear, its address
> >       is unshared from all else at that point.  */
> > -  stack_slot_list = safe_as_a <rtx_expr_list *> (
> > -		      copy_rtx_if_shared (stack_slot_list));
> > +  unsigned int i;
> > +  rtx temp;
> > +  FOR_EACH_VEC_SAFE_ELT_REVERSE (stack_slot_list, i, temp)
> > +    (*stack_slot_list)[i] = copy_rtx_if_shared (temp);
> >  }
> > 
> >  /* Go through all the RTL insn bodies and copy any invalid shared
> > @@ -2656,7 +2658,10 @@ unshare_all_rtl_again (rtx_insn *insn)
> >    for (decl = DECL_ARGUMENTS (cfun->decl); decl; decl = DECL_CHAIN (decl))
> >      set_used_flags (DECL_RTL (decl));
> > 
> > -  reset_used_flags (stack_slot_list);
> > +  rtx temp;
> > +  unsigned int i;
> > +  FOR_EACH_VEC_SAFE_ELT_REVERSE (stack_slot_list, i, temp)
> > +    reset_used_flags (temp);
> 
> Same here, there doesn't seem to be a reason to go reverse in either of the
> two.

yeah, it was just from being overly careful to not change behavior, but
that's silly we can always revert if it turns out to break something.
Tests passed for this and the other patch, so I'll commit without the
reverse iteration later today.  Thanks for the reviews.

Trev

> 
> 
> Bernd

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 3/3] make stack_slot_list a vec<rtx>
  2016-08-26 15:55     ` Trevor Saunders
@ 2016-08-26 15:56       ` Bernd Schmidt
  0 siblings, 0 replies; 9+ messages in thread
From: Bernd Schmidt @ 2016-08-26 15:56 UTC (permalink / raw)
  To: Trevor Saunders; +Cc: tbsaunde+gcc, gcc-patches

On 08/26/2016 06:03 PM, Trevor Saunders wrote:
> yeah, it was just from being overly careful to not change behavior, but
> that's silly we can always revert if it turns out to break something.

Not silly at all - it's a good mindset to have. But in cases where the 
order doesn't matter I think it's best to go for the simplest method so 
as to not puzzle future readers.


Bernd

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2016-08-26 15:56 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-08-25  6:42 [PATCH 0/3] more rtl list work tbsaunde+gcc
2016-08-25  6:42 ` [PATCH 2/3] make forced labels a vec tbsaunde+gcc
2016-08-25  8:44   ` Bernd Schmidt
2016-08-25  6:42 ` [PATCH 3/3] make stack_slot_list a vec<rtx> tbsaunde+gcc
2016-08-25  8:46   ` Bernd Schmidt
2016-08-26 15:55     ` Trevor Saunders
2016-08-26 15:56       ` Bernd Schmidt
2016-08-25  6:42 ` [PATCH 1/3] haifa-sched.c: make ready_list an auto_vec<rtx_insn *> tbsaunde+gcc
2016-08-25  8:48   ` Bernd Schmidt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).