[Bug bootstrap/85571] [9 Regression] non-bootstrap-debug miscompare with trunk
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Apr 30 11:24:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85571
--- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> ---
So even w/o the -f[no-]checking flags I see then when comparing stage2 and
stage3 cc1:
> readelf -S /abuild/rguenther/obj/prev-gcc/cc1 | grep -C 1 .text
0000000000000008 0000000000000008 AX 0 0 8
[14] .text PROGBITS 000000000057be60 0017be60
0000000000feb92a 0000000000000000 AX 0 0 16
> readelf -S /abuild/rguenther/obj/gcc/cc1 | grep -C 1 .text
0000000000000008 0000000000000008 AX 0 0 8
[14] .text PROGBITS 000000000057be60 0017be60
0000000000feb5ba 0000000000000000 AX 0 0 16
assembly shows (after stripping reloc offset differences - bah, objdump
should have a way to substitute zero for all of those):
@@ -11420,24 +11420,6 @@
xx: xx xx xx mov %rxx,%rdi
xx: xx xx xx xx xx mov $0xb,%esi
xx: xx xx xx xx xx xxllq xx
<_Zxxtrxx_contains_struct_chxxk_xxilxx
PK9trxx_noxxtrxx_noxx_structure_enumPKciS4_>
- xx: xx xx xx mov %r8,%rdi
- xx: xx xx xx xx xx xxllq xx
<_ZLxxi_tag_bindingP9trxx_noxx.part.xx
>
- xx: xx xx xx mov %rxx,%rdi
- xx: xx xx xx xx xx xxllq xx
<_ZLxxi_symbol_bindingP9trxx_noxx.part
.xx>
- xx: xx xx xx mov %r8,%rdi
- xx: xx xx xx xx xx xxllq xx
<_ZLxxi_tag_bindingP9trxx_noxx.part.xx
>
- xx: xx xx xx mov %rxx,%rdi
- xx: xx xx xx xx xx xxllq xx
<_ZLxxi_symbol_bindingP9trxx_noxx.part
.xx>
- xx: xx xx xx xx xx mov $0xxx,%xxx
- xx: xx xx xx xx xx mov $0xxx,%esi
- xx: xx xx xx xx xx mov $0xxx,%xxi
- xx: xx xx xx xx xx xxllq xx <_Zxxncy_xxortPKciS0_>
- xx: xx xx xx xx xx xx mov $0xxx,%rxx
- xx: xx xx xx xx xx mov $0xxx,%xxx
- xx: xx xx xx xx xx mov $0xxx,%xxx
- xx: xx xx xx mov %rxx,%rdi
- xx: xx xx xx xx xx mov $0x1,%esi
- xx: xx xx xx xx xx xxllq xx
<_Zxxtrxx_contains_struct_chxxk_xxilxxPK9trxx_noxxtrxx_noxx_structure_enumPKciS4_>
xx: xx xx xx xx xx xx mov $0xxx,%rxx
xx: xx xx xx xx xx mov $0xxx,%xxx
xx: xx xx xx xx xx mov $0xxx,%xxx
@@ -11480,6 +11462,20 @@
xx: xx xx xx xx xx mov $0xxx,%esi
xx: xx xx xx mov %rxx,%rdi
xx: xx xx xx xx xx xxllq xx
<_Zxxtrxx_chxxk_xxilxxPK9trxx_noxxPKciS3_z>
+ xx: xx xx xx mov %r8,%rdi
+ xx: xx xx xx xx xx xxllq xx
<_ZLxxi_tag_bindingP9trxx_noxx.part.xx>
+ xx: xx xx xx mov %rxx,%rdi
+ xx: xx xx xx xx xx xxllq xx
<_ZLxxi_symbol_bindingP9trxx_noxx.part.xx>
+ xx: xx xx xx xx xx mov $0xxx,%xxx
+ xx: xx xx xx xx xx mov $0xxx,%esi
+ xx: xx xx xx xx xx mov $0xxx,%xxi
+ xx: xx xx xx xx xx xxllq xx <_Zxxncy_xxortPKciS0_>
+ xx: xx xx xx xx xx xx mov $0xxx,%rxx
+ xx: xx xx xx xx xx mov $0xxx,%xxx
+ xx: xx xx xx xx xx mov $0xxx,%xxx
+ xx: xx xx xx mov %rxx,%rdi
+ xx: xx xx xx xx xx mov $0x1,%esi
+ xx: xx xx xx xx xx xxllq xx
<_Zxxtrxx_contains_struct_chxxk_xxilxxPK9trxx_noxxtrxx_noxx_structure_enumPKciS4_>
xx: xx xx xx xx xx xx mov $0xxx,%rxx
xx: xx xx xx xx xx mov $0xxx,%xxx
xx: xx xx xx xx xx mov $0xxx,%xxx
...
xx <_ZLxx_parser_postfix_expressionPxx_parser.cold.xx>:
- xx: xx xx xx xx xx xxllq xx
<_ZN3vxxIxxva_hxxp6vl_ptrExxquick_pushERKb.isra.xx.part.xx>
+ xx: xx xx xx xx xx xxllq xx
<_ZN3vxxIxxva_hxxp6vl_ptrEixEj.isra.xx.part.xx>
xx: xx xx xx xx xx xx mov $0xxx,%rxx
so different BB re-ordering / partitioning?
For example in the case of gengtype from stage2/stage3 .text has the same size
but .debug_info size differs by one byte. But gentype code differs as well:
@@ -2884,6 +2884,7 @@
xx: xx xx xx xx xx xxllq xx <_ZLxxpxxk_state_tokeni>
xx: xx xx xx xx xx mov $0x1,%xxi
xx: xx xx xx mov %rax,%rxx
+ xx: xx xx xx xx mov %rax,(%rsp)
xx: xx xx xx xx xx xxllq xx <_ZLxxpxxk_state_tokeni>
xx: xx xx xx xx xx mov $0x2,%xxi
xx: xx xx xx mov %rax,%rbp
...
More information about the Gcc-bugs
mailing list