diff options
author | Jeff Law <law@gcc.gnu.org> | 1995-11-27 09:19:26 -0700 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1995-11-27 09:19:26 -0700 |
commit | cc4e79d826ec73ccde23d710b827b9d76f031708 (patch) | |
tree | b1cfe20508809b117a7951af582c22092e5fbf6e | |
parent | ad238e4b39a2f8a9e02a860d86eae574557c7e02 (diff) | |
download | gcc-cc4e79d826ec73ccde23d710b827b9d76f031708.zip gcc-cc4e79d826ec73ccde23d710b827b9d76f031708.tar.gz gcc-cc4e79d826ec73ccde23d710b827b9d76f031708.tar.bz2 |
toplev.c (rest_of_compilation): Always call jump_optimize at least once.
* toplev.c (rest_of_compilation): Always call jump_optimize
at least once.
From-SVN: r10613
-rw-r--r-- | gcc/toplev.c | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/gcc/toplev.c b/gcc/toplev.c index 1b6fccb..6d71dae 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -2815,17 +2815,11 @@ rest_of_compilation (decl) for all references to such slots. */ /* fixup_stack_slots (); */ - /* Do jump optimization the first time, if -opt. - Also do it if -W, but in that case it doesn't change the rtl code, - it only computes whether control can drop off the end of the function. */ - - if (optimize > 0 || extra_warnings || warn_return_type - /* If function is `noreturn', we should warn if it tries to return. */ - || TREE_THIS_VOLATILE (decl)) - { - TIMEVAR (jump_time, reg_scan (insns, max_reg_num (), 0)); - TIMEVAR (jump_time, jump_optimize (insns, 0, 0, 1)); - } + /* Always do one jump optimization pass to ensure that JUMP_LABEL fields + are initialized and to compute whether control can drop off the end + of the function. */ + TIMEVAR (jump_time, reg_scan (insns, max_reg_num (), 0)); + TIMEVAR (jump_time, jump_optimize (insns, 0, 0, 1)); /* Now is when we stop if -fsyntax-only and -Wreturn-type. */ if (rtl_dump_and_exit || flag_syntax_only || DECL_DEFER_OUTPUT (decl)) |