aboutsummaryrefslogtreecommitdiff
path: root/gcc/doc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2009-02-20 13:56:01 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2009-02-20 13:56:01 +0100
commitb1fb9f569958b2f6127f32495821a5b69c0a2c33 (patch)
treec37b4e8fdb620aa7e10238c591d1e5c0c5753af2 /gcc/doc
parentda9c199f2cbefd192f9ec89579c7a627fa113bfc (diff)
downloadgcc-b1fb9f569958b2f6127f32495821a5b69c0a2c33.zip
gcc-b1fb9f569958b2f6127f32495821a5b69c0a2c33.tar.gz
gcc-b1fb9f569958b2f6127f32495821a5b69c0a2c33.tar.bz2
re PR middle-end/39157 (Code that compiles fine in 1GB of memory with 4.1.2 requires > 20GB in 4.2.* and higher)
PR middle-end/39157 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H). * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define. * params.def (loop-invariant-max-bbs-in-loop): New parameter. * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop parameter to 1000 for -O1 by default. * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new parameter. * loop-invariant.c: Include params.h. (move_loop_invariants): Don't call move_single_loop_invariants on very large loops. From-SVN: r144320
Diffstat (limited to 'gcc/doc')
-rw-r--r--gcc/doc/invoke.texi7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index f52b643..f12124c 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -7766,6 +7766,13 @@ lower quality register allocation algorithm will be used. The
algorithm do not use pseudo-register conflicts. The default value of
the parameter is 2000.
+@item loop-invariant-max-bbs-in-loop
+Loop invariant motion can be very expensive, both in compile time and
+in amount of needed compile time memory, with very large loops. Loops
+with more basic blocks than this parameter won't have loop invariant
+motion optimization performed on them. The default value of the
+parameter is 1000 for -O1 and 10000 for -O2 and above.
+
@end table
@end table