https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109213
Bug ID: 109213 Summary: [13 Regression] -Os generates significantly more code Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: theodort at inf dot ethz.ch Target Milestone: --- Input C-code: static char g, d[5] = {0}; static int f = 0, *e; static void b(int) {}; static int i() { for (int j =0; j < 1; j +=1) f = 0; return 0; } static void m() { int n[10]; int o[56] = {}; for (int h = 0; h < 3; h++) if (d[h]) for (; f; f++) if (n[0]) break; int *r[] = {&o[0]}; } int main() { int p[10] = {}; m(); if (!i()) { int *q = &p[0]; for (; g;) b(e == q); } } ----------------------------------------------------- 12.2 -Os: main: xorl %eax, %eax movl %eax, f(%rip) xorl %eax, %eax ret ----------------------------------------------------- trunk -Os: m: movl f(%rip), %eax xorl %edx, %edx xorl %ecx, %ecx .L5: cmpb $0, d(%rdx) je .L2 movl -40(%rsp), %esi .L3: testl %eax, %eax je .L2 testl %esi, %esi jne .L2 incl %eax movb $1, %cl jmp .L3 .L2: incq %rdx cmpq $3, %rdx jne .L5 testb %cl, %cl je .L1 movl %eax, f(%rip) .L1: ret main: xorl %eax, %eax call m xorl %eax, %eax movl %eax, f(%rip) xorl %eax, %eax ret d: .zero 5