aboutsummaryrefslogtreecommitdiff
path: root/gcc/doc/invoke.texi
diff options
context:
space:
mode:
authorMaxim Kuvyrkov <maxim@codesourcery.com>2010-07-27 19:29:48 +0000
committerMaxim Kuvyrkov <mkuvyrkov@gcc.gnu.org>2010-07-27 19:29:48 +0000
commit2016034718e8074a6c222c71fd528846a32cfcd6 (patch)
tree5230a8924f60a6f3b8ae64ec9b7f69f6d703a3db /gcc/doc/invoke.texi
parent9b77478248366c7165ea89c8051677ea35333369 (diff)
downloadgcc-2016034718e8074a6c222c71fd528846a32cfcd6.zip
gcc-2016034718e8074a6c222c71fd528846a32cfcd6.tar.gz
gcc-2016034718e8074a6c222c71fd528846a32cfcd6.tar.bz2
gcse.c (struct expr:max_distance): New field.
* gcse.c (struct expr:max_distance): New field. (doing_code_hoisting_p): New static variable. (want_to_gcse_p): Change signature. Allow constrained hoisting of simple expressions, don't change behavior for PRE. Set max_distance. (insert_expr_in_table): Set new max_distance field. (hash_scan_set): Update. (hoist_expr_reaches_here_p): Stop search after max_distance instructions. (find_occr_in_bb): New static function. Use it in ... (hoist_code): Calculate sizes of basic block before any changes are done. Pass max_distance to hoist_expr_reaches_here_p. (one_code_hoisting_pass): Set doing_code_hoisting_p. * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,) (PARAM_GCSE_UNRESTRICTED_COST): New parameters. * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New macros. * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost): Document. From-SVN: r162589
Diffstat (limited to 'gcc/doc/invoke.texi')
-rw-r--r--gcc/doc/invoke.texi17
1 files changed, 17 insertions, 0 deletions
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 73051de..0db0f59 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -8243,6 +8243,23 @@ when @option{-ftree-vectorize} is used. The number of iterations after
vectorization needs to be greater than the value specified by this option
to allow vectorization. The default value is 0.
+@item gcse-cost-distance-ratio
+Scaling factor in calculation of maximum distance an expression
+can be moved by GCSE optimizations. This is currently supported only in
+code hoisting pass. The bigger the ratio, the more agressive code hoisting
+will be with simple expressions, i.e., the expressions which have cost
+less than @option{gcse-unrestricted-cost}. Specifying 0 will disable
+hoisting of simple expressions. The default value is 10.
+
+@item gcse-unrestricted-cost
+Cost, roughly measured as the cost of a single typical machine
+instruction, at which GCSE optimizations will not constrain
+the distance an expression can travel. This is currently
+supported only in code hoisting pass. The lesser the cost,
+the more aggressive code hoisting will be. Specifying 0 will
+allow all expressions to travel unrestricted distances.
+The default value is 3.
+
@item max-unrolled-insns
The maximum number of instructions that a loop should have if that loop
is unrolled, and if the loop is unrolled, it determines how many times