[gcc/guojiufu/heads/guojiufu-branch] Daily bump.
Jiu Fu Guo
guojiufu@gcc.gnu.org
Wed Jul 8 09:08:35 GMT 2020
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.
More information about the Gcc-cvs
mailing list