OSDN Git Service

tile: remove #pragma unroll from finv_buffer_remote()
authorChris Metcalf <cmetcalf@mellanox.com>
Tue, 6 Sep 2016 19:56:15 +0000 (15:56 -0400)
committerChris Metcalf <cmetcalf@mellanox.com>
Fri, 16 Dec 2016 20:32:29 +0000 (15:32 -0500)
This directive was put in the kernel source before the "pragma
unroll" support for tilegx gcc was upstreamed.  Remove it for
now, and we can put it back later if/when the compiler support
is upstreamed.  This avoids a warning when building the kernel.

This routine is not on a hot path in any case, so the extra
optimization here was mostly just for its own sake.

Signed-off-by: Chris Metcalf <cmetcalf@mellanox.com>
arch/tile/lib/cacheflush.c

index 9c0ec22..c1ebc10 100644 (file)
@@ -138,19 +138,13 @@ finv_buffer_remote(void *buffer, size_t size, int hfh)
        if ((unsigned long)base < (unsigned long)buffer)
                base = buffer;
 
-       /*
-        * Fire all the loads we need.  The MAF only has eight entries
-        * so we can have at most eight outstanding loads, so we
-        * unroll by that amount.
-        */
-#pragma unroll 8
+       /* Fire all the loads we need. */
        for (; p >= base; p -= step_size)
                force_load(p);
 
        /*
         * Repeat, but with finv's instead of loads, to get rid of the
         * data we just loaded into our own cache and the old home L3.
-        * No need to unroll since finv's don't target a register.
         * The finv's are guaranteed not to actually flush the data in
         * the buffer back to their home, since we just read it, so the
         * lines are clean in cache; we will only invalidate those lines.