https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103386
Bug ID: 103386 Summary: stage1 with PGO produces bad offsets in rtl-reload on aarch64 Product: gcc Version: 11.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: mittorn at sibmail dot com Target Milestone: --- Created attachment 51862 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=51862&action=edit pgo build logs and system environment This result in failed conftest binary returning nonzero status when trying to build libgomp. Simple program to reproduce conftest behaviour: int main() { return 0; } stage1 makes bad assembly on it: .cfi_startproc stp x0, x1, [sp, -32]! .cfi_def_cfa_offset 32 .cfi_offset 0, -32 .cfi_offset 1, -24 stp x2, x3, [sp, 16] .cfi_offset 2, -16 .cfi_offset 3, -8 mov w0, 0 ldp x2, x3, [sp, 16] ldp x0, x1, [sp], 32 .cfi_restore 1 .cfi_restore 0 .cfi_restore 2 .cfi_restore 3 .cfi_def_cfa_offset 0 ret .cfi_endproc instead of this one: .cfi_startproc mov w0, 0 ret .cfi_endproc after dumping RTL stages, i found this (source files are identical, second is stage1): ~ # diff 1.c.292r.reload 2.c.292r.reload 7a8,12 > New elimination table: > Can eliminate 65 to 31 (offset=32, prev_offset=0) > Can eliminate 65 to 29 (offset=32, prev_offset=0) > Can eliminate 64 to 31 (offset=32, prev_offset=0) > Can eliminate 64 to 29 (offset=32, prev_offset=0) 51,54c56,59 < Can eliminate 65 to 31 (offset=0, prev_offset=0) < Can eliminate 65 to 29 (offset=0, prev_offset=0) < Can eliminate 64 to 31 (offset=0, prev_offset=0) < Can eliminate 64 to 29 (offset=0, prev_offset=0) --- > Can eliminate 65 to 31 (offset=32, prev_offset=32) > Can eliminate 65 to 29 (offset=32, prev_offset=0) > Can eliminate 64 to 31 (offset=32, prev_offset=32) > Can eliminate 64 to 29 (offset=32, prev_offset=0) 81c86 < (const_int 0 [0])) "1.c":3:8 52 {*movsi_aarch64} --- > (const_int 0 [0])) "2.c":3:8 52 {*movsi_aarch64} 83c88 < (insn 13 5 15 2 (use (reg/i:SI 0 x0)) "1.c":4:1 -1 --- > (insn 13 5 15 2 (use (reg/i:SI 0 x0)) "2.c":4:1 -1 Full build tree temporary placed here: http://mittorn.mentality.rip/ needed log and environment info in attachment