https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100432

            Bug ID: 100432
           Summary: gcc arm compilation binary output is bigger with -Os
                    than -O2
           Product: gcc
           Version: 11.1.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: xicojovor at dropjar dot com
  Target Milestone: ---

example: https://godbolt.org/z/rYxTPdTcd

while compiling for ARM, gcc versions after 4 (>= 5) generate a redundant stack
frame as can be seen in the attached example, while gcc version 4 generates
correct code that is also minimal in size as requested (-Os).

The code generation in newer gcc versions is strange even without thinking
about the -Os flag, since the generated stack frame is not even used, and the
whole 3 instructions (sub sp, str, add sp) are totally not needed (the variable
on the stack is not used).
also reported in https://bugs.launchpad.net/gcc-arm-embedded/+bug/1927055 (not
sure where this should be reported)

Reply via email to