summaryrefslogtreecommitdiffstats
path: root/contrib/gcc/params.def
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/gcc/params.def')
-rw-r--r--contrib/gcc/params.def152
1 files changed, 94 insertions, 58 deletions
diff --git a/contrib/gcc/params.def b/contrib/gcc/params.def
index 977d740..dc82663 100644
--- a/contrib/gcc/params.def
+++ b/contrib/gcc/params.def
@@ -39,7 +39,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
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.
@@ -51,7 +51,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
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).
@@ -59,56 +59,11 @@ DEFPARAM (PARAM_MAX_INLINE_INSNS_SINGLE,
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 function 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)
+ 100)
/* For languages that (still) use the RTL inliner, we can specify
limits for the RTL inliner separately.
@@ -152,6 +107,19 @@ DEFPARAM(PARAM_MAX_PENDING_LIST_LENGTH,
"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",
+ 3000)
+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,
@@ -165,11 +133,63 @@ DEFPARAM(PARAM_MAX_GCSE_PASSES,
1)
/* This parameter limits the number of insns in a loop that will be unrolled,
- and by how much the loop is unrolled. */
+ and by how much the loop is unrolled.
+
+ This limit should be at most half of the peeling limits: loop unroller
+ decides to not unroll loops that iterate fewer than 2*number of allowed
+ unrollings and thus we would have loops that are neither peeled or unrooled
+ otherwise. */
DEFPARAM(PARAM_MAX_UNROLLED_INSNS,
"max-unrolled-insns",
"The maximum number of instructions to consider to unroll in a loop",
- 100)
+ 200)
+/* This parameter limits how many times the loop is unrolled depending
+ on number of insns really executed in each iteration. */
+DEFPARAM(PARAM_MAX_AVERAGE_UNROLLED_INSNS,
+ "max-average-unrolled-insns",
+ "The maximum number of instructions to consider to unroll in a loop on average",
+ 80)
+/* The maximum number of unrollings of a single loop. */
+DEFPARAM(PARAM_MAX_UNROLL_TIMES,
+ "max-unroll-times",
+ "The maximum number of unrollings of a single loop",
+ 8)
+/* The maximum number of insns of a peeled loop. */
+DEFPARAM(PARAM_MAX_PEELED_INSNS,
+ "max-peeled-insns",
+ "The maximum number of insns of a peeled loop",
+ 400)
+/* The maximum number of peelings of a single loop. */
+DEFPARAM(PARAM_MAX_PEEL_TIMES,
+ "max-peel-times",
+ "The maximum number of peelings of a single loop",
+ 16)
+/* The maximum number of insns of a peeled loop. */
+DEFPARAM(PARAM_MAX_COMPLETELY_PEELED_INSNS,
+ "max-completely-peeled-insns",
+ "The maximum number of insns of a completely peeled loop",
+ 400)
+/* The maximum number of peelings of a single loop that is peeled completely. */
+DEFPARAM(PARAM_MAX_COMPLETELY_PEEL_TIMES,
+ "max-completely-peel-times",
+ "The maximum number of peelings of a single loop that is peeled completely",
+ 16)
+/* The maximum number of insns of a peeled loop that rolls only once. */
+DEFPARAM(PARAM_MAX_ONCE_PEELED_INSNS,
+ "max-once-peeled-insns",
+ "The maximum number of insns of a peeled loop that rolls only once",
+ 400)
+
+/* The maximum number of insns of an unswitched loop. */
+DEFPARAM(PARAM_MAX_UNSWITCH_INSNS,
+ "max-unswitch-insns",
+ "The maximum number of insns of an unswitched loop",
+ 50)
+/* The maximum level of recursion in unswitch_single_loop. */
+DEFPARAM(PARAM_MAX_UNSWITCH_LEVEL,
+ "max-unswitch-level",
+ "The maximum number of unswitchings in a single loop",
+ 3)
DEFPARAM(HOT_BB_COUNT_FRACTION,
"hot-bb-count-fraction",
@@ -193,22 +213,22 @@ must be covered by trace formation. Used when profile feedback is not available"
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",
- 30)
+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. */
@@ -217,6 +237,17 @@ DEFPARAM(PARAM_MAX_CROSSJUMP_EDGES,
"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)
+
+DEFPARAM(PARAM_MAX_CSELIB_MEMORY_LOCATIONS,
+ "max-cselib-memory-locations",
+ "The maximum memory locations recorded by cselib",
+ 500)
+
#ifdef ENABLE_GC_ALWAYS_COLLECT
# define GGC_MIN_EXPAND_DEFAULT 0
# define GGC_MIN_HEAPSIZE_DEFAULT 0
@@ -228,17 +259,22 @@ DEFPARAM(PARAM_MAX_CROSSJUMP_EDGES,
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
#undef GGC_MIN_HEAPSIZE_DEFAULT
+DEFPARAM(PARAM_MAX_RELOAD_SEARCH_INSNS,
+ "max-reload-search-insns",
+ "The maximum number of instructions to search backward when looking for equivalent reload",
+ 100)
+
/*
Local variables:
mode:c
OpenPOWER on IntegriCloud