diff options
Diffstat (limited to 'contrib/gcc/toplev.c')
-rw-r--r-- | contrib/gcc/toplev.c | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/contrib/gcc/toplev.c b/contrib/gcc/toplev.c index 9dac1fd..242a73c 100644 --- a/contrib/gcc/toplev.c +++ b/contrib/gcc/toplev.c @@ -1,5 +1,5 @@ /* Top level of GNU C compiler - Copyright (C) 1987, 88, 89, 92-98, 1999 Free Software Foundation, Inc. + Copyright (C) 1987, 88, 89, 92-99, 2000 Free Software Foundation, Inc. This file is part of GNU CC. @@ -3870,13 +3870,15 @@ rest_of_compilation (decl) TIMEVAR (cse_time, tem = cse_main (insns, max_reg_num (), 0, rtl_dump_file)); - TIMEVAR (cse_time, delete_trivially_dead_insns (insns, max_reg_num ())); - if (tem || optimize > 1) TIMEVAR (jump_time, jump_optimize (insns, !JUMP_CROSS_JUMP, !JUMP_NOOP_MOVES, !JUMP_AFTER_REGSCAN)); + /* Run this after jump optmizations remove all the unreachable code + so that unreachable code will not keep values live. */ + TIMEVAR (cse_time, delete_trivially_dead_insns (insns, max_reg_num ())); + /* Dump rtl code after cse, if we are doing that. */ if (cse_dump) @@ -4683,7 +4685,8 @@ check_lang_option (option, lang_option) { lang_independent_options * indep_options; int len; - long k; + int numopts; + long k; char * space; /* Ignore NULL entries. */ @@ -4713,8 +4716,14 @@ check_lang_option (option, lang_option) switch (option[1]) { - case 'f': indep_options = f_options; break; - case 'W': indep_options = W_options; break; + case 'f': + indep_options = f_options; + numopts = NUM_ELEM (f_options); + break; + case 'W': + indep_options = W_options; + numopts = NUM_ELEM (W_options); + break; default: return 1; } @@ -4726,7 +4735,7 @@ check_lang_option (option, lang_option) if (option[0] == 'n' && option[1] == 'o' && option[2] == '-') option += 3; - for (k = NUM_ELEM (indep_options); k--;) + for (k = numopts; k--;) { if (!strcmp (option, indep_options[k].string)) { |