]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
flow.c (redirect_edge_succ_nodup): Return new edge.
authorRichard Henderson <rth@gcc.gnu.org>
Tue, 28 Aug 2001 01:32:10 +0000 (18:32 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Tue, 28 Aug 2001 01:32:10 +0000 (18:32 -0700)
        * flow.c (redirect_edge_succ_nodup): Return new edge.
        (try_simplify_condjump): Use new edge.
        * basic-block.h (redirect_edge_succ_nodup): Update prototype.

From-SVN: r45222

gcc/ChangeLog
gcc/basic-block.h
gcc/flow.c

index 65ef6910bf0c76381f5b58bff915cd73d297f6c9..ec8504bd9aa5d2d270ed463e73b4aca35611acee 100644 (file)
@@ -1,5 +1,9 @@
 2001-08-27  Roman Zippel  <zippel@linux-m68k.org>
-        
+
+       * flow.c (redirect_edge_succ_nodup): Return new edge.
+       (try_simplify_condjump): Use new edge.
+       * basic-block.h (redirect_edge_succ_nodup): Update prototype.
+
        * cse.c (cse_basic_block): Skip note instructions.
 
 2001-08-27  Richard Henderson  <rth@redhat.com>
@@ -67,7 +71,7 @@
 
 2001-08-27  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
 
-        * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
+       * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET,
        PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON,
        AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New
        RTL constructions.
@@ -92,7 +96,7 @@
 
        * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them.
        
-        * sched-int.h: (curr_state): Add the external definition for
+       * sched-int.h: (curr_state): Add the external definition for
        automaton pipeline interface.
        (haifa_insn_data): Add comments for members blockage and units.
        
        first_cycle_multipass_dfa_lookahead, init_dfa_bubbles,
        dfa_bubble): New members in gcc_target.sched.
        
-        * haifa-sched.c (insert_schedule_bubbles_p): New variable.
+       * haifa-sched.c (insert_schedule_bubbles_p): New variable.
        (MAX_INSN_QUEUE_INDEX): New macro for automaton interface.
        (insn_queue): Redefine it as pointer to array.
        (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of
        (get_visual_tbl_length): Add code for automaton interface.
        (target_units, print_block_visualization):  Add comments.
        
-        * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
+       * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB,
        USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables.
        (sched-rgn.o, sched-vis.o): Add new dependency file target.h.
        (getruntime.o, genautomata.o): New entries.
index 6bd80a2de3f23e50f63aff6e87b6d9b913b58ce3..295748b3034cab2057e3bbf3106c2aa21b7b40c9 100644 (file)
@@ -303,7 +303,7 @@ extern void make_edge                       PARAMS ((sbitmap *, basic_block,
                                                 basic_block, int));
 extern void remove_edge                        PARAMS ((edge));
 extern void redirect_edge_succ         PARAMS ((edge, basic_block));
-extern void redirect_edge_succ_nodup   PARAMS ((edge, basic_block));
+extern edge redirect_edge_succ_nodup   PARAMS ((edge, basic_block));
 extern void redirect_edge_pred         PARAMS ((edge, basic_block));
 extern void create_basic_block         PARAMS ((int, rtx, rtx, rtx));
 extern int flow_delete_block           PARAMS ((basic_block));
index f1e7a6c3c7bfb59b246641ed41d606d9f900459c..d2f37e5f2d45fdc1412aaff9bbe726e3fb53247b 100644 (file)
@@ -3335,8 +3335,10 @@ try_simplify_condjump (cbranch_block)
   /* Success.  Update the CFG to match.  Note that after this point
      the edge variable names appear backwards; the redirection is done
      this way to preserve edge profile data.  */
-  redirect_edge_succ_nodup (cbranch_jump_edge, cbranch_dest_block);
-  redirect_edge_succ_nodup (cbranch_fallthru_edge, jump_dest_block);
+  cbranch_jump_edge = redirect_edge_succ_nodup (cbranch_jump_edge,
+                                               cbranch_dest_block);
+  cbranch_fallthru_edge = redirect_edge_succ_nodup (cbranch_fallthru_edge,
+                                                   jump_dest_block);
   cbranch_jump_edge->flags |= EDGE_FALLTHRU;
   cbranch_fallthru_edge->flags &= ~EDGE_FALLTHRU;
 
@@ -9029,7 +9031,7 @@ redirect_edge_succ (e, new_succ)
 
 /* Like previous but avoid possible dupplicate edge.  */
 
-void
+edge
 redirect_edge_succ_nodup (e, new_succ)
      edge e;
      basic_block new_succ;
@@ -9045,9 +9047,11 @@ redirect_edge_succ_nodup (e, new_succ)
       s->probability += e->probability;
       s->count += e->count;
       remove_edge (e);
+      e = s;
     }
   else
     redirect_edge_succ (e, new_succ);
+  return e;
 }
 
 /* Redirect an edge's predecessor from one block to another.  */