diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-03-06 10:17:23 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-03-06 10:17:23 +0000 |
commit | fb20d6fadb6929a41e0f2645ba8da6d68c9feff4 (patch) | |
tree | 1a7be85532d6be381af338d07dbdca5f8fd08db0 /gcc/cfganal.c | |
parent | e74146c323db69d660738c3fe6276e25c30c708a (diff) | |
download | gcc-fb20d6fadb6929a41e0f2645ba8da6d68c9feff4.tar.gz |
* cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
* rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
* basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
delete_noop_moves): Return indeger.
* flow.c (ndead): New variable.
(propagate_block_delete_insn): Use delete_insn_and_edges; remove
BB argument; update callers.
(propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
(life_analysis): Do not call purge_all_dead_edges.
(update_life_info): Return number of deleted insns; print statistics.
(update_life_info_in_dirty_blocks): likewise.
(delete_noop_moves): Use delete_insn_and_edges; print statistics;
return number of insns deleted.
* cse.c: Include timevar.h
(delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
iterate until stabilizes; print statistics; return number of killed
insns.
* Makefile.in: (cse.o): Add timevar.h dependency
* rtl.h (delete_trivially_dead_insns): New.
* timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
* toplev.c (rest_of_compilation): Update callers.
* cfgcleanup.c (try_optimize_cfg): Kill blocks.
(try_optimize_cfg): Do not update liveness.
(cleanup-cfg): Loop until try_optimize_cfg and dead code
removal stabilizes; use delete_trivially_dead_insns.
* cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@50355 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cfganal.c')
-rw-r--r-- | gcc/cfganal.c | 27 |
1 files changed, 0 insertions, 27 deletions
diff --git a/gcc/cfganal.c b/gcc/cfganal.c index 6009d59cbe8..46c4758d3e7 100644 --- a/gcc/cfganal.c +++ b/gcc/cfganal.c @@ -55,7 +55,6 @@ static void flow_dfs_compute_reverse_finish PARAMS ((depth_first_search_ds)); static void remove_fake_successors PARAMS ((basic_block)); static bool need_fake_edge_p PARAMS ((rtx)); -static bool keep_with_call_p PARAMS ((rtx)); /* Return true if the block has no effect and only forwards control flow to its single destination. */ @@ -212,32 +211,6 @@ need_fake_edge_p (insn) || GET_CODE (PATTERN (insn)) == ASM_INPUT); } -/* Return true if INSN should be kept in the same block as a preceding call. - This is done for a single-set whose destination is a fixed register or - whose source is the function return value. This is a helper function for - flow_call_edges_add. */ - -static bool -keep_with_call_p (insn) - rtx insn; -{ - rtx set; - - if (INSN_P (insn) && (set = single_set (insn)) != NULL) - { - if (GET_CODE (SET_DEST (set)) == REG - && fixed_regs[REGNO (SET_DEST (set))] - && general_operand (SET_SRC (set), VOIDmode)) - return true; - if (GET_CODE (SET_SRC (set)) == REG - && FUNCTION_VALUE_REGNO_P (REGNO (SET_SRC (set))) - && GET_CODE (SET_DEST (set)) == REG - && REGNO (SET_DEST (set)) >= FIRST_PSEUDO_REGISTER) - return true; - } - return false; -} - /* Add fake edges to the function exit for any non constant and non noreturn calls, volatile inline assembly in the bitmap of blocks specified by BLOCKS or to the whole CFG if BLOCKS is zero. Return the number of blocks |