On 04/20/2016 08:22 AM, tbsaunde+...@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

Reply via email to