This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 15/18] make nonlocal_goto_handler_labels a vec


On 04/20/2016 08:22 AM, tbsaunde+gcc@tbsaunde.org wrote:
-      remove_node_from_insn_list (insn, &nonlocal_goto_handler_labels);
+
+      unsigned int len = vec_safe_length (nonlocal_goto_handler_labels);
+      for (unsigned int i = 0; i < len; i++)
+	if ((*nonlocal_goto_handler_labels)[i] == insn)
+	  {
+	    nonlocal_goto_handler_labels->ordered_remove (i);
+	    break;
+	  }

Why not unordered_remove?

Should there be a vec-based version of remove-node_from_*_list?

+  rtx_insn *temp;
+  unsigned int i;
+  FOR_EACH_VEC_SAFE_ELT_REVERSE (nonlocal_goto_handler_labels, i, temp)
+      BLOCK_FOR_INSN (temp)->flags |= BB_NON_LOCAL_GOTO_TARGET;

Indentation looks wrong.


        /* Process non-local goto edges.  */
        if (can_nonlocal_goto (insn))
-	for (rtx_insn_list *lab = nonlocal_goto_handler_labels;
-	     lab;
-	     lab = lab->next ())
-	  maybe_record_trace_start_abnormal (lab->insn (), insn);
+	{

Unnecessary brace?

    /* Re-insert the EH_REGION notes.  */
-  if (eh_note || (was_call && nonlocal_goto_handler_labels))
+  if (eh_note || (was_call && vec_safe_length (nonlocal_goto_handler_labels)))

I'm not a big fan of omitting the > 0 and using the integer as a boolean. Multiple occurrences.

+  FOR_EACH_VEC_SAFE_ELT_REVERSE (nonlocal_goto_handler_labels, i, insn)
+      set_label_offsets (insn, NULL, 1);

Indentation.


Bernd


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]