summaryrefslogtreecommitdiffstats
path: root/gcc/toplev.c
diff options
context:
space:
mode:
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1998-10-29 23:18:51 +0000
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1998-10-29 23:18:51 +0000
commit225480647c346741c090ba8a792010ee5cb1448b (patch)
treecce896503a86e93798cdbe694b4414ccb75acd3b /gcc/toplev.c
parentf87f6d5d42a651d28053d2d4759ecadbee2ce5a0 (diff)
downloadppe42-gcc-225480647c346741c090ba8a792010ee5cb1448b.tar.gz
ppe42-gcc-225480647c346741c090ba8a792010ee5cb1448b.zip
* flow.c (XNMALLOC): New macro.
(flow_int_list_blocks, basic_block_succ, basic_block_pred): New static variables. (add_edge, add_edge_to_label): New static functions. (free_bb_memory): New function. (flow_delete_insn): Delete function. (basic_block_drops_in): Delete variable. (find_basic_blocks): Allocate and initialize basic_block_head, basic_block_succ. Don't allocate basic_block_drops_in. Call free_bb_memory at the beginning. (find_basic_blocks_1): Don't do multiple passes. Delete code to compute basic_block_drops_in. After calling make_edges, mark blocks reached by current block live. Update test for unreachable live blocks. (mark_label_ref): Delete args X, CHECKDUP. Add PRED arg. All callers changed. Simplify to call add_edge_to_label when a LABEL_REF is found. (make_edges): Simplify to call add_edge_to_label instead of mark_label_ref most of the time. Compute here whether control drops into the next block. (delete_unreachable_blocks): Return void. All callers changed. Delete unreachable blocks in reverse order. After deleting all unreachable blocks, renumber the remaining ones and update n_basic_blocks. (delete_block): Speed up deletion a bit. Don't set basic_block_drops_in for deleted blocks. (free_basic_block_vars): Don't free basic_block_drops_in. (life_analysis_1): Update to use new edge representation. (dump_flow_info): Delete code to print basic block info; call dump_bb_data instead. (compute_preds_succs): Delete code to recompute basic_block_drops_in and uid_block_number. Simply copy the previously computed cfg. (dump_bb_data): New arg LIVE_INFO. All callers changed. Print register lifetime information if LIVE_INFO is nonzero. * basic-block.h (dump_bb_data): Adjust prototype. * gcse.c (gcse_main): Update call to dump_bb_data. * rtl.h (free_bb_memory): Declare. * toplev.c (rest_of_compilation): Call free_bb_memory. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@23443 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/toplev.c')
-rw-r--r--gcc/toplev.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/toplev.c b/gcc/toplev.c
index acf3d431aa7..43fd83e41c7 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -3951,6 +3951,8 @@ rest_of_compilation (decl)
exit_rest_of_compilation:
+ free_bb_memory ();
+
/* In case the function was not output,
don't leave any temporary anonymous types
queued up for sdb output. */
OpenPOWER on IntegriCloud