diff options
author | Jan Hubicka <jh@suse.cz> | 2004-01-01 14:59:02 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2004-01-01 13:59:02 +0000 |
commit | b684a3df8e33898816611f1cefbd0068ca22beca (patch) | |
tree | fe1b65729ca0a43eccd94abb9e3c03c5e01a6e20 /gcc/toplev.c | |
parent | 74aa338ad540b76f8d8566c996642b02810f5c14 (diff) | |
download | gcc-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.c | 48 |
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) |