https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85574
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P3 |P2
Target Milestone|9.0 |8.3
Summary|[9 Regression] LTO |[8/9 Regression] LTO
|bootstapped binaries differ |bootstapped binaries differ
--- Comment #13 from Richard Biener <rguenth at gcc dot gnu.org> ---
-fno-reorder-blocks-and-partition does not help.
@@ -115230,59624 +115230,59628 @@
5e1fa6: 44 88 74 24 18 mov %r14b,0x18(%rsp)
5e1fab: e9 77 f7 ff ff jmpq 5e1727
<_Z14composite_typeP9tree_nodeS0_.part.56+0x4c7>
5e1fb0: 80 7c 24 27 00 cmpb $0x0,0x27(%rsp)
- 5e1fb5: 75 17 jne 5e1fce
<_Z14composite_typeP9tree_nodeS0_.part.56+0xd6e>
- 5e1fb7: 31 c0 xor %eax,%eax
- 5e1fb9: 0f b6 4c 24 27 movzbl 0x27(%rsp),%ecx
- 5e1fbe: 45 31 ff xor %r15d,%r15d
- 5e1fc1: 88 44 24 27 mov %al,0x27(%rsp)
- 5e1fc5: 88 4c 24 10 mov %cl,0x10(%rsp)
- 5e1fc9: e9 59 f7 ff ff jmpq 5e1727
<_Z14composite_typeP9tree_nodeS0_.part.56+0x4c7>
- 5e1fce: 48 89 df mov %rbx,%rdi
- 5e1fd1: 4c 89 5c 24 10 mov %r11,0x10(%rsp)
- 5e1fd6: e8 f5 8c fa ff callq 58acd0
<_Z12c_vla_type_pPK9tree_node>
- 5e1fdb: 4c 8b 5c 24 10 mov 0x10(%rsp),%r11
- 5e1fe0: 88 44 24 27 mov %al,0x27(%rsp)
- 5e1fe4: b8 01 00 00 00 mov $0x1,%eax
- 5e1fe9: eb ce jmp 5e1fb9
<_Z14composite_typeP9tree_nodeS0_.part.56+0xd59>
- 5e1feb: 45 31 c9 xor %r9d,%r9d
...
- 5e26b6: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1)
- 5e26bd: 00 00 00
-
-00000000005e26c0 <_ZL19common_pointer_typeP9tree_nodeS0_>:
- 5e26c0: 48 39 f7 cmp %rsi,%rdi
- 5e26c3: 0f 84 07 02 00 00 je 5e28d0
<_ZL19common_pointer_typeP9tree_nodeS0_+0x210>
- 5e26c9: 48 8b 05 10 18 91 01 mov 0x1911810(%rip),%rax #
1ef3ee0 <global_trees>
- 5e26d0: 48 39 f8 cmp %rdi,%rax
...
-
-00000000005e2a30 <_Z14composite_typeP9tree_nodeS0_>:
- 5e2a30: 48 39 f7 cmp %rsi,%rdi
- 5e2a33: 74 1b je 5e2a50
<_Z14composite_typeP9tree_nodeS0_+0x20>
- 5e2a35: 48 8b 05 a4 14 91 01 mov 0x19114a4(%rip),%rax #
1ef3ee0 <global_trees>
- 5e2a3c: 48 39 f8 cmp %rdi,%rax
- 5e2a3f: 74 1f je 5e2a60
<_Z14composite_typeP9tree_nodeS0_+0x30>
- 5e2a41: 48 39 f0 cmp %rsi,%rax
- 5e2a44: 74 0a je 5e2a50
<_Z14composite_typeP9tree_nodeS0_+0x20>
- 5e2a46: e9 15 e8 ff ff jmpq 5e1260
<_Z14composite_typeP9tree_nodeS0_.part.56>
- 5e2a4b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
- 5e2a50: 48 89 f8 mov %rdi,%rax
+ 5e1fb5: 75 0d jne 5e1fc4
<_Z14composite_typeP9tree_nodeS0_.part.56+0xd64>
+ 5e1fb7: c6 44 24 10 00 movb $0x0,0x10(%rsp)
+ 5e1fbc: 45 31 ff xor %r15d,%r15d
+ 5e1fbf: e9 63 f7 ff ff jmpq 5e1727
<_Z14composite_typeP9tree_nodeS0_.part.56+0x4c7>
+ 5e1fc4: 48 89 df mov %rbx,%rdi
+ 5e1fc7: 4c 89 5c 24 28 mov %r11,0x28(%rsp)
+ 5e1fcc: e8 ff 8c fa ff callq 58acd0
<_Z12c_vla_type_pPK9tree_node>
+ 5e1fd1: 4c 8b 5c 24 28 mov 0x28(%rsp),%r11
+ 5e1fd6: 88 44 24 10 mov %al,0x10(%rsp)
Btw, I see the same issue on the GCC 8 branch head. Have yet to find where
it actually doesn't miscompare so maybe it isn't a regression after all.