aboutsummaryrefslogtreecommitdiff
path: root/zlib/gzwrite.c
diff options
context:
space:
mode:
authorliuhongt <hongtao.liu@intel.com>2024-02-27 15:34:57 +0800
committerliuhongt <hongtao.liu@intel.com>2024-05-30 13:39:37 +0800
commitef27b91b62c3aa8841c02665dffa8914c742fd37 (patch)
tree5e127b7a296ef1b8f66d61f2c7147abcf30400ba /zlib/gzwrite.c
parentbdc264a16e327c63d133131a695a202fbbc0a6a0 (diff)
downloadgcc-ef27b91b62c3aa8841c02665dffa8914c742fd37.zip
gcc-ef27b91b62c3aa8841c02665dffa8914c742fd37.tar.gz
gcc-ef27b91b62c3aa8841c02665dffa8914c742fd37.tar.bz2
Don't reduce estimated unrolled size for innermost loop.
For the innermost loop, after completely loop unroll, it will most likely not be able to reduce the body size to 2/3. The current 2/3 reduction will make some of the larger loops completely unrolled during cunrolli, which will then result in them not being able to be vectorized. It also increases the register pressure. The patch move the 2/3 reduction from estimated_unrolled_size to tree_unroll_loops_completely. gcc/ChangeLog: PR tree-optimization/112325 * tree-ssa-loop-ivcanon.cc (estimated_unrolled_size): Move the 2 / 3 loop body size reduction to .. (try_unroll_loop_completely): .. here, add it for the check of body size shrink, and the check of comparison against param_max_completely_peeled_insns when (!cunrolli ||loop->inner). (canonicalize_loop_induction_variables): Add new parameter cunrolli and pass down. (tree_unroll_loops_completely_1): Ditto. (canonicalize_induction_variables): Pass cunrolli as false to canonicalize_loop_induction_variables. (tree_unroll_loops_completely): Set cunrolli to true at beginning and set it to false after CHANGED is true. gcc/testsuite/ChangeLog: * gcc.dg/vect/pr112325.c: New test.
Diffstat (limited to 'zlib/gzwrite.c')
0 files changed, 0 insertions, 0 deletions