diff options
author | Richard Henderson <rth@cygnus.com> | 2000-02-06 05:01:03 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2000-02-06 05:01:03 -0800 |
commit | 69732dcb9c663d68d2a5d433ce76ed8da43e5632 (patch) | |
tree | 14cb8de0063e0e21049d8e2193ad60c82320ff4c /gcc/flow.c | |
parent | 52a75c3c22a68d2acdbdf6e2e5070b1f424bfc81 (diff) | |
download | gcc-69732dcb9c663d68d2a5d433ce76ed8da43e5632.zip gcc-69732dcb9c663d68d2a5d433ce76ed8da43e5632.tar.gz gcc-69732dcb9c663d68d2a5d433ce76ed8da43e5632.tar.bz2 |
flow.c (flow_delete_insn, [...]): Export.
* flow.c (flow_delete_insn, make_edge, remove_edge): Export.
* basic-block.h: Declare them.
* emit-rtl.h (active_insn_p): New.
(next_active_insn, prev_active_insn): Use it.
* rtl.h: Declare it.
* function.c (emit_return_into_block): New.
(thread_prologue_and_epilogue_insns): Insert return insns instead
of epilogues when possible.
* jump.c (jump_optimize_1): Remove code to insert a return insn
on the fallthru to the exit block.
From-SVN: r31826
Diffstat (limited to 'gcc/flow.c')
-rw-r--r-- | gcc/flow.c | 10 |
1 files changed, 3 insertions, 7 deletions
@@ -285,8 +285,6 @@ static rtx find_basic_blocks_1 PARAMS ((rtx)); static void create_basic_block PARAMS ((int, rtx, rtx, rtx)); static void clear_edges PARAMS ((void)); static void make_edges PARAMS ((rtx)); -static void make_edge PARAMS ((sbitmap *, basic_block, - basic_block, int)); static void make_label_edge PARAMS ((sbitmap *, basic_block, rtx, int)); static void make_eh_edge PARAMS ((sbitmap *, eh_nesting_info *, @@ -302,7 +300,6 @@ static void delete_eh_regions PARAMS ((void)); static int can_delete_note_p PARAMS ((rtx)); static int delete_block PARAMS ((basic_block)); static void expunge_block PARAMS ((basic_block)); -static rtx flow_delete_insn PARAMS ((rtx)); static int can_delete_label_p PARAMS ((rtx)); static int merge_blocks_move_predecessor_nojumps PARAMS ((basic_block, basic_block)); @@ -346,7 +343,6 @@ static void count_reg_sets_1 PARAMS ((rtx)); static void count_reg_sets PARAMS ((rtx)); static void count_reg_references PARAMS ((rtx)); static void invalidate_mems_from_autoinc PARAMS ((rtx)); -static void remove_edge PARAMS ((edge)); static void remove_fake_successors PARAMS ((basic_block)); static void flow_nodes_print PARAMS ((const char *, const sbitmap, FILE *)); static void flow_exits_print PARAMS ((const char *, const edge *, int, FILE *)); @@ -1056,7 +1052,7 @@ make_edges (label_value_list) /* Create an edge between two basic blocks. FLAGS are auxiliary information about the edge that is accumulated between calls. */ -static void +void make_edge (edge_cache, src, dst, flags) sbitmap *edge_cache; basic_block src, dst; @@ -1982,7 +1978,7 @@ expunge_block (b) /* Delete INSN by patching it out. Return the next insn. */ -static rtx +rtx flow_delete_insn (insn) rtx insn; { @@ -6215,7 +6211,7 @@ find_edge_index (edge_list, pred, succ) } /* This function will remove an edge from the flow graph. */ -static void +void remove_edge (e) edge e; { |