aboutsummaryrefslogtreecommitdiff
path: root/gcc/toplev.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2004-01-01 14:59:02 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2004-01-01 13:59:02 +0000
commitb684a3df8e33898816611f1cefbd0068ca22beca (patch)
treefe1b65729ca0a43eccd94abb9e3c03c5e01a6e20 /gcc/toplev.c
parent74aa338ad540b76f8d8566c996642b02810f5c14 (diff)
downloadgcc-b684a3df8e33898816611f1cefbd0068ca22beca.zip
gcc-b684a3df8e33898816611f1cefbd0068ca22beca.tar.gz
gcc-b684a3df8e33898816611f1cefbd0068ca22beca.tar.bz2
re PR rtl-optimization/13473 (cc1 segfault w/-march=pentium4)
PR opt/13473 * recog.c (validate_replace_rtx_1): Take care for RTL sharing inside ASM input operands PR opt/12617 * toplev.c (dump_file_index): Reorder ce3 and bbro. (dump_file): Likewise. (rest_of_compilation): Likewise. PR debug/13367 * cgraph.c (cgraph_function_possibly_inlined): Even with flag_really_no_inline we inline always_inline functions. * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag for non-always_inline functions when there is flag_really_no_inline. (cgraph_decide_inlining): Limit work done when not inlining. (cgraph_decide_inlining_incrementally): Likewise. (cgraph_optimize_function): Check whether something got inlined. * c-objc-common.c (c_disregard_inline_limits): Do not always inline extern inline functions when not inlining. * opts.c (decode_options): Disable crossjumping at -O1 * invoke.texi (-O1): Document change. * gcc.dg/debug/20031231-1.c: New. * gcc.c-torture/compile/20040101-1.c: New. * gcc.dg/dwarf-die-[1-7].c: New. From-SVN: r75303
Diffstat (limited to 'gcc/toplev.c')
-rw-r--r--gcc/toplev.c48
1 files changed, 24 insertions, 24 deletions
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 6e34c6d..2219fe8 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -1,6 +1,6 @@
/* Top level of GCC compilers (cc1, cc1plus, etc.)
Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+ 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
This file is part of GCC.
@@ -277,8 +277,8 @@ enum dump_file_index
DFI_flow2,
DFI_peephole2,
DFI_rnreg,
- DFI_bbro,
DFI_ce3,
+ DFI_bbro,
DFI_branch_target_load,
DFI_sched2,
DFI_stack,
@@ -328,8 +328,8 @@ static struct dump_file_info dump_file[DFI_MAX] =
{ "flow2", 'w', 1, 0, 0 },
{ "peephole2", 'z', 1, 0, 0 },
{ "rnreg", 'n', 1, 0, 0 },
- { "bbro", 'B', 1, 0, 0 },
{ "ce3", 'E', 1, 0, 0 },
+ { "bbro", 'B', 1, 0, 0 },
{ "btl", 'd', 1, 0, 0 }, /* Yes, duplicate enable switch. */
{ "sched2", 'R', 1, 0, 0 },
{ "stack", 'k', 1, 0, 0 },
@@ -3463,14 +3463,6 @@ rest_of_compilation (tree decl)
}
#endif
- if (optimize > 0)
- {
- if (flag_rename_registers || flag_cprop_registers)
- rest_of_handle_regrename (decl, insns);
-
- rest_of_handle_reorder_blocks (decl, insns);
- }
-
if (flag_if_conversion2)
{
timevar_push (TV_IFCVT2);
@@ -3482,23 +3474,31 @@ rest_of_compilation (tree decl)
timevar_pop (TV_IFCVT2);
}
- if (flag_branch_target_load_optimize2)
- {
- /* Leave this a warning for now so that it is possible to experiment
- with running this pass twice. In 3.6, we should either make this
- an error, or use separate dump files. */
- if (flag_branch_target_load_optimize)
- warning ("branch target register load optimization is not intended "
- "to be run twice");
+ if (optimize > 0)
+ {
+ if (flag_rename_registers || flag_cprop_registers)
+ rest_of_handle_regrename (decl, insns);
- open_dump_file (DFI_branch_target_load, decl);
+ rest_of_handle_reorder_blocks (decl, insns);
+ }
+
+ if (flag_branch_target_load_optimize2)
+ {
+ /* Leave this a warning for now so that it is possible to experiment
+ with running this pass twice. In 3.6, we should either make this
+ an error, or use separate dump files. */
+ if (flag_branch_target_load_optimize)
+ warning ("branch target register load optimization is not intended "
+ "to be run twice");
- branch_target_load_optimize (insns, true);
+ open_dump_file (DFI_branch_target_load, decl);
- close_dump_file (DFI_branch_target_load, print_rtl_with_bb, insns);
+ branch_target_load_optimize (insns, true);
- ggc_collect ();
- }
+ close_dump_file (DFI_branch_target_load, print_rtl_with_bb, insns);
+
+ ggc_collect ();
+ }
#ifdef INSN_SCHEDULING
if (optimize > 0 && flag_schedule_insns_after_reload)