[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