From: Jim Wilson Date: Fri, 7 Nov 1997 23:36:53 +0000 (+0000) Subject: flags.h (flag_rerun_loop_opt): Declare. X-Git-Tag: releases/egcs-1.0.0~153 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a594134ed1bf406116c1cc24b5f1bab7487cb5d1;p=thirdparty%2Fgcc.git flags.h (flag_rerun_loop_opt): Declare. * flags.h (flag_rerun_loop_opt): Declare. * loop.c (invariant_p, case LABEL_REF): Check flag_rerun_loop_opt. * toplev.c (flag_rerum_loop_opt): Delete static. From-SVN: r16362 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0c7db123279e..d64890eff37c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Fri Nov 7 16:23:20 1997 Jim Wilson (wilson@cygnus.com) + + * flags.h (flag_rerun_loop_opt): Declare. + * loop.c (invariant_p, case LABEL_REF): Check flag_rerun_loop_opt. + * toplev.c (flag_rerum_loop_opt): Delete static. + Fri Nov 7 10:22:24 1997 Jason Merrill * frame.c (add_fdes, count_fdes): Go back to checking pc_begin for diff --git a/gcc/flags.h b/gcc/flags.h index 5b3c7639e064..ba057204dede 100644 --- a/gcc/flags.h +++ b/gcc/flags.h @@ -275,6 +275,10 @@ extern int flag_volatile_global; extern int flag_fast_math; +/* Nonzero means to run loop optimizations twice. */ + +extern int flag_rerun_loop_opt; + /* Nonzero means make functions that look like good inline candidates go inline. */ diff --git a/gcc/loop.c b/gcc/loop.c index 73f347fd86f3..4bd965d49a55 100644 --- a/gcc/loop.c +++ b/gcc/loop.c @@ -2833,7 +2833,12 @@ invariant_p (x) We don't know the loop bounds here though, so just fail for all labels. */ - if (flag_unroll_loops) + /* ??? This is also necessary if flag_rerun_loop_opt is true, because in + this case we may be doing loop unrolling the second time we run loop, + and hence the first loop run also needs this check. There is no way + to check here whether the second run will actually do loop unrolling + though, as that info is in a local var in rest_of_compilation. */ + if (flag_unroll_loops || flag_rerun_loop_opt) return 0; else return 1; diff --git a/gcc/toplev.c b/gcc/toplev.c index c36554f1c83e..fbde9e2796f1 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -507,7 +507,7 @@ static int flag_rerun_cse_after_loop; /* Nonzero means to run loop optimizations twice. */ -static int flag_rerun_loop_opt; +int flag_rerun_loop_opt; /* Nonzero for -finline-functions: ok to inline functions that look like good inline candidates. */