2003-03-05 Kurt Garloff * toplev.c: Initialize max-inline-insns-auto to a third of -finline-limit, so ratio of limits of declared to compiler-flag inlined functions is 3/2. * params.def: Change default inline-limit to 840, limits thus recursive/single/auto = 84/42/28 tree tokens. * doc/invoke.texi: Document changes. diff -uNr gcc.vanilla/gcc/doc/invoke.texi gcc.autolimit/gcc/doc/invoke.texi --- gcc.vanilla/gcc/doc/invoke.texi Wed Mar 5 15:34:49 2003 +++ gcc.autolimit/gcc/doc/invoke.texi Thu Mar 6 01:25:12 2003 @@ -3636,7 +3636,7 @@ inline (i.e., marked with the inline keyword or defined within the class definition in c++). @var{n} is the size of functions that can be inlined in number of pseudo instructions (not counting parameter handling). The default -value of @var{n} is 600. +value of @var{n} is 840. Increasing this value can result in more inlined code at the cost of compilation time and memory consumption. Decreasing usually makes the compilation faster and less code will be inlined (which presumably @@ -3654,14 +3654,14 @@ @item max-inline-insns-single is set to @var{n}/2. @item max-inline-insns-single-auto - is set to @var{n}/2. + is set to @var{n}/3. @item min-inline-insns is set to 130 or @var{n}/4, whichever is smaller. @item max-inline-insns-rtl is set to @var{n}. @end table -Using @option{-finline-limit=600} thus results in the default settings +Using @option{-finline-limit=840} thus results in the default settings for these parameters. See below for a documentation of the individual parameters controlling inlining. @@ -4494,7 +4494,7 @@ internal representation) in a single function that the tree inliner will consider for inlining. This only affects functions declared inline and methods implemented in a class declaration (C++). -The default value is 300. +The default value is 420. @item max-inline-insns-auto When you use @option{-finline-functions} (included in @option{-O3}), @@ -4502,7 +4502,7 @@ by the compiler will be investigated. To those functions, a different (more restrictive) limit compared to functions declared inline can be applied. -The default value is 300. +The default value is 280. @item max-inline-insns The tree inliner does decrease the allowable size for single functions @@ -4513,7 +4513,7 @@ compile-time resource (CPU time, memory) requirements and result in larger binaries. Very high values are not advisable, as too large binaries may adversely affect runtime performance. -The default value is 600. +The default value is 840. @item max-inline-slope After exceeding the maximum number of inlined instructions by repeated @@ -4533,7 +4533,7 @@ For languages that use the RTL inliner (this happens at a later stage than tree inlining), you can set the maximum allowable size (counted in RTL instructions) for the RTL inliner with this parameter. -The default value is 600. +The default value is 840. @item max-unrolled-insns diff -uNr gcc.vanilla/gcc/params.def gcc.autolimit/gcc/params.def --- gcc.vanilla/gcc/params.def Wed Mar 5 15:34:16 2003 +++ gcc.autolimit/gcc/params.def Thu Mar 6 01:17:52 2003 @@ -39,7 +39,7 @@ of a function counted in internal gcc instructions (not in real machine instructions) that is eligible for inlining by the tree inliner. - The default value is 300. + The default value is 420. Only functions marked inline (or methods defined in the class definition for C++) are affected by this, unless you set the -finline-functions (included in -O3) compiler option. @@ -51,7 +51,7 @@ DEFPARAM (PARAM_MAX_INLINE_INSNS_SINGLE, "max-inline-insns-single", "The maximum number of instructions in a single function eligible for inlining", - 300) + 420) /* The single function inlining limit for functions that are inlined by virtue of -finline-functions (-O3). @@ -59,11 +59,11 @@ that is applied to functions marked inlined (or defined in the class declaration in C++) given by the "max-inline-insns-single" parameter. - The default value is 300. */ + The default value is 280. */ DEFPARAM (PARAM_MAX_INLINE_INSNS_AUTO, "max-inline-insns-auto", "The maximum number of instructions when automatically inlining", - 300) + 280) /* The repeated inlining limit. After this number of instructions (in the internal gcc representation, not real machine instructions) @@ -74,7 +74,7 @@ could otherwise become very high. It is recommended to set this value to twice the value of the single function limit (set by the "max-inline-insns-single" parameter) or - higher. The default value is 600. + higher. The default value is 840. Higher values mean that more inlining is done, resulting in better performance of the code, at the expense of higher compile-time resource (time, memory) requirements and larger @@ -82,7 +82,7 @@ DEFPARAM (PARAM_MAX_INLINE_INSNS, "max-inline-insns", "The maximum number of instructions by repeated inlining before gcc starts to throttle inlining", - 600) + 840) /* After the repeated inline limit has been exceeded (see "max-inline-insns" parameter), a linear function is used to @@ -118,7 +118,7 @@ DEFPARAM (PARAM_MAX_INLINE_INSNS_RTL, "max-inline-insns-rtl", "The maximum number of instructions for the RTL inliner", - 600) + 840) /* The maximum number of instructions to consider when looking for an instruction to fill a delay slot. If more than this arbitrary diff -uNr gcc.vanilla/gcc/toplev.c gcc.autolimit/gcc/toplev.c --- gcc.vanilla/gcc/toplev.c Thu Mar 6 01:08:24 2003 +++ gcc.autolimit/gcc/toplev.c Thu Mar 6 01:21:39 2003 @@ -4105,7 +4105,7 @@ MAX_INLINE_INSNS); set_param_value ("max-inline-insns", val); set_param_value ("max-inline-insns-single", val/2); - set_param_value ("max-inline-insns-auto", val/2); + set_param_value ("max-inline-insns-auto", val/3); set_param_value ("max-inline-insns-rtl", val); if (val/4 < MIN_INLINE_INSNS) {