public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc/guojiufu/heads/guojiufu-branch] Daily bump.
@ 2021-05-31 6:00 Jiu Fu Guo
0 siblings, 0 replies; 3+ messages in thread
From: Jiu Fu Guo @ 2021-05-31 6:00 UTC (permalink / raw)
To: gcc-cvs
The branch 'guojiufu/heads/guojiufu-branch' was updated to point to:
e21e9340720... Daily bump.
It previously pointed to:
b535e81265f... Use fast type for loop idx
Diff:
!!! WARNING: THE FOLLOWING COMMITS ARE NO LONGER ACCESSIBLE (LOST):
-------------------------------------------------------------------
b535e81... Use fast type for loop idx
0e1e9f6... Split loop for at safe boundary for wrap/overflow.
af3824d... prepare code
^ permalink raw reply [flat|nested] 3+ messages in thread
* [gcc/guojiufu/heads/guojiufu-branch] Daily bump.
@ 2020-07-08 9:08 Jiu Fu Guo
0 siblings, 0 replies; 3+ messages in thread
From: Jiu Fu Guo @ 2020-07-08 9:08 UTC (permalink / raw)
To: gcc-cvs
The branch 'guojiufu/heads/guojiufu-branch' was updated to point to:
8e3b453e087... Daily bump.
It previously pointed to:
85a0fd39ef8... rs6000: Refine RTL unroll adjust hook for small loops
Diff:
!!! WARNING: THE FOLLOWING COMMITS ARE NO LONGER ACCESSIBLE (LOST):
-------------------------------------------------------------------
85a0fd3... rs6000: Refine RTL unroll adjust hook for small loops
a352793... rs6000: Refine RTL unroll adjust hook
commit 85a0fd39ef8df6b76df70110d096f22cfa8456c4
Author: guojiufu <guojiufu@linux.ibm.com>
Date: Wed Jul 8 16:49:40 2020 +0800
rs6000: Refine RTL unroll adjust hook for small loops
commit a3527937da17089b1bb95097726285fbdfff4b17
Author: guojiufu <guojiufu@linux.ibm.com>
Date: Fri Jun 19 09:24:19 2020 +0800
rs6000: Refine RTL unroll adjust hook
For very small loops (< 6 insns), it would be fine to unroll 4
times to use cache line better. Like below loops:
`while (i) a[--i] = NULL; while (p < e) *d++ = *p++;`
And for very complex loops which may cause negative impact:
branch-miss or cache-miss. Like below loop: there are calls,
early exits and branches in loop.
```
for (int i = 0; i < n; i++) {
int e = a[I];
....
if (function_call(e)) break;
....
}
```
This patch enhance RTL unroll for small loops and prevent to
unroll complex loops.
gcc/ChangeLog
2020-07-03 Jiufu Guo <guojiufu@linux.ibm.com>
* config/rs6000/rs6000.c (rs6000_loop_unroll_adjust): Refine hook.
(rs6000_complex_loop_p): New function.
(num_loop_calls): New function.
^ permalink raw reply [flat|nested] 3+ messages in thread
* [gcc/guojiufu/heads/guojiufu-branch] Daily bump.
@ 2020-05-27 2:23 Jiu Fu Guo
0 siblings, 0 replies; 3+ messages in thread
From: Jiu Fu Guo @ 2020-05-27 2:23 UTC (permalink / raw)
To: gcc-cvs
The branch 'guojiufu/heads/guojiufu-branch' was updated to point to:
03d549090e3... Daily bump.
It previously pointed to:
21dd679386c... explicit -funroll-loops override -frtl-unroll-loops
Diff:
!!! WARNING: THE FOLLOWING COMMITS ARE NO LONGER ACCESSIBLE (LOST):
-------------------------------------------------------------------
21dd679... explicit -funroll-loops override -frtl-unroll-loops
fcd6f0b... rs6000: Turn on -frtl-unroll-loops instead -funroll-loops a
bba13d4... Seperate -funroll-loops for GIMPLE unroller and RTL unrolle
commit 21dd679386cbb5ce311996967454a38d543a09a9
Author: Jiufu Guo <guojiufu@linux.ibm.com>
Date: Mon May 25 18:20:27 2020 +0800
explicit -funroll-loops override -frtl-unroll-loops
commit fcd6f0b6ca3b4febed9db8b33cd1556a6d853e58
Author: guojiufu <guojiufu@linux.ibm.com>
Date: Mon May 25 14:33:06 2020 +0800
rs6000: Turn on -frtl-unroll-loops instead -funroll-loops at -O2
Previously, turning -funroll-loops on at -O2, which also turn on
GIMPLE cunroll fully. While cunroll unrolls some complex loops.
This patch turn on -frtl-unroll-loops at -O2 only, and continue to
use previous tuned rs6000 heurisitics for small loops. While this
patch does not turn on GIMPLE cunroll any more. We may tune
cunroll in near future at -O2.
In this patch, it become simpler to check/set -fweb, -frename-register
and -munroll-only-small-loops. Together with -frtl-unroll-loops,
-fweb is useful, then turn -fweb on; and -frename-registers is no
need to be checked, because it is affected by -frtl-unroll-loops.
gcc/ChangeLog
2020-05-25 Jiufu Guo <guojiufu@cn.ibm.com>
PR target/95018
* common/config/rs6000/rs6000-common.c
(rs6000_option_optimization_table)
[OPT_LEVELS_2_PLUS_SPEED_ONLY]: Replace -funroll-loops
with -frtl-unroll-loops. Remove -munroll-only-small-loops
and add -fweb.
[OPT_LEVELS_ALL]: Remove turn off -frename-registers.
* config/rs6000/rs6000.c (rs6000_option_override_internal):
Set -munroll-only-small-loops for explicit -funroll-loops.
commit bba13d442dda7fa416003bbbea51fc887b6cf30a
Author: guojiufu <guojiufu@linux.ibm.com>
Date: Mon May 25 13:22:27 2020 +0800
Seperate -funroll-loops for GIMPLE unroller and RTL unroller
Currently option -funroll-loops controls both GIMPLE unroler and
RTL unroller. It is not able to control GIMPLE cunroller and
RTL unroller independently. This patch introducing different flags
to control them seperately, and this also provide more freedom to
tune one of them without affecting another.
This patch introduces two undocumented flags: -fcomplete-unroll-loops
for GIMPLE cunroll, and -frtl-unroll-loops for RTL unroller. And
these two options are enabled by original -funroll-loops.
ChangeLog:
2020-05-25 Jiufu Guo <guojiufu@cn.ibm.com>
* common.opt: Add -frtl-unroll-loops and -fcomplete-unroll-loops.
* opts.c (enable_fdo_optimizations): Replace flag_unroll_loops
with flag_complete_unroll_loops.
* toplev.c (process_options): set flag_rtl_unroll_loops and
flag_complete_unroll_loops if not explicitly set by user.
* tree-ssa-loop-ivcanon.c (pass_complete_unroll::execute): Replace
flag_unroll_loops with flag_complete_unroll_loops.
* loop-init.c (pass_loop2::gate): Replace flag_unroll_loops with
flag_rtl_unroll_loops.
(pass_rtl_unroll_loops::gate): Replace flag_unroll_loops with
flag_rtl_unroll_loops.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2021-05-31 6:00 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-31 6:00 [gcc/guojiufu/heads/guojiufu-branch] Daily bump Jiu Fu Guo
-- strict thread matches above, loose matches on Subject: below --
2020-07-08 9:08 Jiu Fu Guo
2020-05-27 2:23 Jiu Fu Guo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).