diff options
author | guojiufu <guojiufu@linux.ibm.com> | 2020-05-28 13:42:23 +0800 |
---|---|---|
committer | guojiufu <guojiufu@linux.ibm.com> | 2020-06-07 17:35:01 +0800 |
commit | 71489d8e7572388c6e9528a45e4942b7c7b67e4f (patch) | |
tree | a4b5cb277348fe0df2f53f9ab0de532dd4ad8d9d /gcc/tree-ssa-loop-ivcanon.c | |
parent | 905ba62ec96f8469c1085861d9ceec58fbee5709 (diff) | |
download | gcc-71489d8e7572388c6e9528a45e4942b7c7b67e4f.zip gcc-71489d8e7572388c6e9528a45e4942b7c7b67e4f.tar.gz gcc-71489d8e7572388c6e9528a45e4942b7c7b67e4f.tar.bz2 |
Introduce flag_cunroll_grow_size for cunroll
Currently GIMPLE complete unroller(cunroll) is checking
flag_unroll_loops and flag_peel_loops to see if allow size growth.
Beside affects curnoll, flag_unroll_loops also controls RTL unroler.
To have more freedom to control cunroll and RTL unroller, this patch
introduces flag_cunroll_grow_size. With this patch, we can control
cunroll and RTL unroller indepently.
gcc/ChangeLog
2020-06-07 Jiufu Guo <guojiufu@linux.ibm.com>
* common.opt (flag_cunroll_grow_size): New flag.
* toplev.c (process_options): Set flag_cunroll_grow_size.
* tree-ssa-loop-ivcanon.c (pass_complete_unroll::execute):
Use flag_cunroll_grow_size.
Diffstat (limited to 'gcc/tree-ssa-loop-ivcanon.c')
-rw-r--r-- | gcc/tree-ssa-loop-ivcanon.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/gcc/tree-ssa-loop-ivcanon.c b/gcc/tree-ssa-loop-ivcanon.c index 8ab6ab3..298ab21 100644 --- a/gcc/tree-ssa-loop-ivcanon.c +++ b/gcc/tree-ssa-loop-ivcanon.c @@ -1603,9 +1603,8 @@ pass_complete_unroll::execute (function *fun) re-peeling the same loop multiple times. */ if (flag_peel_loops) peeled_loops = BITMAP_ALLOC (NULL); - unsigned int val = tree_unroll_loops_completely (flag_unroll_loops - || flag_peel_loops - || optimize >= 3, true); + unsigned int val = tree_unroll_loops_completely (flag_cunroll_grow_size, + true); if (peeled_loops) { BITMAP_FREE (peeled_loops); |