On 24.02.2015 03:42, OGAWA Hirofumi wrote: > Heinrich Schuchardt <[email protected]> writes: > >> You have to put >> __attribute__((optimize("unroll-loops"))) >> here to unroll the loop inside the function: >> >> >> static __attribute__ ((noinline)) >> __attribute__((optimize("unroll-loops"))) >> int test(unsigned char *name) >> >> $ time ./c.inline aaaaaaaaaaa >> 14 >> >> real 0m0.743s >> user 0m0.740s >> sys 0m0.000s >> >> Without __attribute__((optimize("unroll-loops"))) : >> $ time ./c.loop aaaaaaaaaaa >> 14 >> >> real 0m1.482s >> user 0m1.472s >> sys 0m0.004s >> >> With __attribute__((optimize("unroll-loops"))) : >> >> $ time ./c.loop aaaaaaaaaaa >> 14 >> >> real 0m0.742s >> user 0m0.740s >> sys 0m0.000s > > This attribute has to be added to the caller, not fat_checksum()? I.e., > we has to add it to all callers of fat_checksum()?
The attribute is applied to the declaration of the function in which you need loop unrolling. https://gcc.gnu.org/onlinedocs/gcc-4.9.1/gcc/Attribute-Syntax.html > > Well, this is interesting gcc optimize option though, maybe not worth to > introduce this to kernel only for fatfs. There is an effort to compile the Linux kernel with Clang. We should avoid new GCC specific items. Best regards Heinrich -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

