https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78709
Bug ID: 78709 Summary: Code size is bigger at -Os than at -O3 Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: erika.molnar at cyberthorstudios dot com Target Milestone: --- Created attachment 40275 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40275&action=edit Build steps Hello, I've built gcc-6.2 using the RX target on Ubuntu 14.04, 64-bit. (I will attach the exact build configurations I've used, in build.txt). When using: **** memcpy_restrict.c **** #include "string.h" void *memcpy (void * __restrict__ s1, const void * __restrict__ s2, size_t n) { char *dst = (char *) s1; char *src = (char *) s2; char *v = s1; while (n--) { *dst++ = *src++; } return v; } int main () { char *a; char *b; int n; memcpy (a, b, n); return 0; } **** END **** $ rx-elf-gcc memcpy_restrict.c -S -O3/-Os The code generated by -O3 is smaller. Can you please explain why? __ Thank you, Erika Molnar