aboutsummaryrefslogtreecommitdiff
path: root/gcc/toplev.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2001-07-30 22:30:23 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2001-07-30 20:30:23 +0000
commit0ecf09f9cc1ee9c4c2daa91d2f2a844013f81cdb (patch)
treedf492d486710873b66c3b9b278a0eac02a7df6c8 /gcc/toplev.c
parent1490f39253ed06e99aec28d0c265154039fa9b2b (diff)
downloadgcc-0ecf09f9cc1ee9c4c2daa91d2f2a844013f81cdb.zip
gcc-0ecf09f9cc1ee9c4c2daa91d2f2a844013f81cdb.tar.gz
gcc-0ecf09f9cc1ee9c4c2daa91d2f2a844013f81cdb.tar.bz2
i386.c (ix86_output_main_function_alignment_hack): New function.
* i386.c (ix86_output_main_function_alignment_hack): New function. (TARGET_ASM_FUNCTION_PROLOGUE): Default to it. * flow.c (mark_dfs_back_edges): Move from loop_p ; mark back edges by EDGE_DFS_BACK flag. (dump_edge_info): Add dfs_back flag. * basic-block.h (EDGE_DFS_BACK): New constant. (mark_dfs_back_edges): Declare. * alias.c (loop_p): Remove. (mark_constant_function): Use mark_dfs_back_edges. * reg-stack.c (block_info_def): Add predecesors counter and stack_out. (reg_to_stack): Call mark_dfs_back_edges; count the predecesors. (compensate_edge): Break out from ... (convert_regs_1): ... here; do smart choosing of stack_out to copy. (convert_regs_2): Set block_done once block is really done; Do updating of the predecesors counts. * toplev.c (rest_of_compilation): Recompute block_for_insn before post-reload cfg_cleanup. * function.c (thread_prologue_epilogue_insns): Call set_block_for_new_insns when emitting prologue directly. From-SVN: r44486
Diffstat (limited to 'gcc/toplev.c')
-rw-r--r--gcc/toplev.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 07de29b..f3b50d1 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -3473,11 +3473,13 @@ rest_of_compilation (decl)
verify_flow_info ();
#endif
+ compute_bb_for_insn (get_max_uid ());
+
/* If optimizing, then go ahead and split insns now. */
if (optimize > 0)
split_all_insns (0);
- cleanup_cfg (0);
+ cleanup_cfg (optimize ? CLEANUP_EXPENSIVE : 0);
/* On some machines, the prologue and epilogue code, or parts thereof,
can be represented as RTL. Doing so lets us schedule insns between
@@ -3485,8 +3487,6 @@ rest_of_compilation (decl)
scheduling to operate in the epilogue. */
thread_prologue_and_epilogue_insns (insns);
- compute_bb_for_insn (get_max_uid ());
-
if (optimize)
{
cleanup_cfg (CLEANUP_EXPENSIVE | CLEANUP_CROSSJUMP);