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 500.
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.
DEFPARAM (PARAM_MAX_INLINE_INSNS_SINGLE,
"max-inline-insns-single",
"The maximum number of instructions in a single function eligible for inlining",
- 300)
+ 500)
/* The single function inlining limit for functions that are
inlined by virtue of -finline-functions (-O3).
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 150. */
DEFPARAM (PARAM_MAX_INLINE_INSNS_AUTO,
"max-inline-insns-auto",
"The maximum number of instructions when automatically inlining",
- 300)
-
-/* The repeated inlining limit. After this number of instructions
- (in the internal gcc representation, not real machine instructions)
- got inlined by repeated inlining, gcc starts to decrease the maximum
- number of inlinable instructions in the tree inliner.
- This is done by a linear function, see "max-inline-slope" parameter.
- It is necessary in order to limit the compile-time resources, that
- 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 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
- binaries. */
-DEFPARAM (PARAM_MAX_INLINE_INSNS,
- "max-inline-insns",
- "The maximum number of instructions by repeated inlining before gcc starts to throttle inlining",
- 600)
-
-/* After the repeated inline limit has been exceeded (see
- "max-inline-insns" parameter), a linear function is used to
- decrease the size of single functions eligible for inlining.
- The slope of this linear function is given the negative
- reciprocal value (-1/x) of this parameter.
- The default value is 32.
- This linear function is used until it falls below a minimum
- value specified by the "min-inline-insns" parameter. */
-DEFPARAM (PARAM_MAX_INLINE_SLOPE,
- "max-inline-slope",
- "The slope of the linear funtion throttling inlining after the recursive inlining limit has been reached is given by the negative reciprocal value of this parameter",
- 32)
-
-/* When gcc has inlined so many instructions (by repeated
- inlining) that the throttling limits the inlining very much,
- inlining for very small functions is still desirable to
- achieve good runtime performance. The size of single functions
- (measured in gcc instructions) which will still be eligible for
- inlining then is given by this parameter. It defaults to 130.
- Only much later (after exceeding 128 times the recursive limit)
- inlining is cut down completely. */
-DEFPARAM (PARAM_MIN_INLINE_INSNS,
- "min-inline-insns",
- "The number of instructions in a single functions still eligible to inlining after a lot recursive inlining",
- 130)
+ 150)
/* For languages that (still) use the RTL inliner, we can specify
limits for the RTL inliner separately.
"The maximum length of scheduling's pending operations list",
32)
+DEFPARAM(PARAM_LARGE_FUNCTION_INSNS,
+ "large-function-insns",
+ "The size of function body to be considered large",
+ 10000)
+DEFPARAM(PARAM_LARGE_FUNCTION_GROWTH,
+ "large-function-growth",
+ "Maximal growth due to inlining of large function (in percent)",
+ 100)
+DEFPARAM(PARAM_INLINE_UNIT_GROWTH,
+ "inline-unit-growth",
+ "how much can given compilation unit grow because of the inlining (in percent)",
+ 50)
+
/* The GCSE optimization will be disabled if it would require
significantly more memory than this value. */
DEFPARAM(PARAM_MAX_GCSE_MEMORY,
75)
DEFPARAM(TRACER_MAX_CODE_GROWTH,
"tracer-max-code-growth",
- "Maximal code growth caused by tail duplication (in percents)",
+ "Maximal code growth caused by tail duplication (in percent)",
100)
DEFPARAM(TRACER_MIN_BRANCH_RATIO,
"tracer-min-branch-ratio",
"Stop reverse growth if the reverse probability of best edge is less \
-than this threshold (in percents)",
+than this threshold (in percent)",
10)
DEFPARAM(TRACER_MIN_BRANCH_PROBABILITY_FEEDBACK,
"tracer-min-branch-probability-feedback",
"Stop forward growth if the probability of best edge is less than \
-this threshold (in percents). Used when profile feedback is available",
+this threshold (in percent). Used when profile feedback is available",
80)
DEFPARAM(TRACER_MIN_BRANCH_PROBABILITY,
"tracer-min-branch-probability",
"Stop forward growth if the probability of best edge is less than \
-this threshold (in percents). Used when profile feedback is not available",
+this threshold (in percent). Used when profile feedback is not available",
50)
/* The maximum number of incoming edges to consider for crossjumping. */
"The maximum number of incoming edges to consider for crossjumping",
100)
+/* The maximum length of path considered in cse. */
+DEFPARAM(PARAM_MAX_CSE_PATH_LENGTH,
+ "max-cse-path-length",
+ "The maximum length of path considered in cse",
+ 10)
+
#ifdef ENABLE_GC_ALWAYS_COLLECT
# define GGC_MIN_EXPAND_DEFAULT 0
# define GGC_MIN_HEAPSIZE_DEFAULT 0
DEFPARAM(GGC_MIN_EXPAND,
"ggc-min-expand",
"Minimum heap expansion to trigger garbage collection, as \
-a percentage of the total size of the heap.",
+a percentage of the total size of the heap",
GGC_MIN_EXPAND_DEFAULT)
DEFPARAM(GGC_MIN_HEAPSIZE,
"ggc-min-heapsize",
- "Minimum heap size before we start collecting garbage, in kilobytes.",
+ "Minimum heap size before we start collecting garbage, in kilobytes",
GGC_MIN_HEAPSIZE_DEFAULT)
#undef GGC_MIN_EXPAND_DEFAULT