[Bug lto/85574] [9 Regression] LTO bootstapped binaries differ

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Dec 21 08:27:00 GMT 2018


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

--- Comment #9 from Richard Biener <rguenth at gcc dot gnu.org> ---
Ok, seems to be indeed STAGE1_CFLAGS="-O2" hiding the issue.  So looking at
WPA inline dumps shows no difference but ltrans IPA inline dumps differ in
scope block numbers!?  Note not all ltrans units show this kind of difference
but this is the only difference in LTRANS IPA inline dumps.

@@ -330156,30 +330156,30 @@
 { Scope block #0 Originating from :#0 
   bool (*<T698>) (struct edge_def *, struct succ_iterator *) check;

-  { Scope block #55581 /space/rguenther/src/svn/trunk/gcc/sel-sched-ir.h:1248
Originating from :  static bool _su
cc_iter_cond (struct succ_iterator *, struct rtx_insn * *, struct rtx_insn *,
bool (*<T698>) (struct edge_def *, s
truct succ_iterator *)); 
+  { Scope block #55582 /space/rguenther/src/svn/trunk/gcc/sel-sched-ir.h:1248
Originating from :  static bool _su
cc_iter_cond (struct succ_iterator *, struct rtx_insn * *, struct rtx_insn *,
bool (*<T698>) (struct edge_def *, s
truct succ_iterator *)); 
     struct succ_iterator * ip;
     struct rtx_insn * * succp;
...


The GCC 8 branch-point shows the same issue so this might not be a regression
after all.

The difference is again

 00000000005b1c88
<_Z18expand_expr_real_1P9tree_nodeP7rtx_def12machine_mode15expand_modifierPS2_b.cold.354>:
-  5b1c88:      ba 40 a7 5a 01          mov    $0x15aa740,%edx
-  5b1c8d:      be 11 27 00 00          mov    $0x2711,%esi
-  5b1c92:      bf 80 e7 5a 01          mov    $0x15ae780,%edi
-  5b1c97:      e8 ea 33 06 00          callq  615086 <_Z11fancy_abortPKciS0_>
-  5b1c9c:      ba a0 a6 5a 01          mov    $0x15aa6a0,%edx
-  5b1ca1:      be 71 2e 00 00          mov    $0x2e71,%esi
-  5b1ca6:      bf 80 e7 5a 01          mov    $0x15ae780,%edi
-  5b1cab:      e8 d6 33 06 00          callq  615086 <_Z11fancy_abortPKciS0_>
-  5b1cb0:      ba a0 a6 5a 01          mov    $0x15aa6a0,%edx
-  5b1cb5:      be 75 2e 00 00          mov    $0x2e75,%esi
-  5b1cba:      bf 80 e7 5a 01          mov    $0x15ae780,%edi
-  5b1cbf:      e8 c2 33 06 00          callq  615086 <_Z11fancy_abortPKciS0_>
-  5b1cc4:      45 31 c9                xor    %r9d,%r9d
-  5b1cc7:      41 b8 43 00 00 00       mov    $0x43,%r8d
-  5b1ccd:      b9 40 a7 5a 01          mov    $0x15aa740,%ecx
-  5b1cd2:      31 c0                   xor    %eax,%eax
-  5b1cd4:      ba de 2a 00 00          mov    $0x2ade,%edx
-  5b1cd9:      be 80 e7 5a 01          mov    $0x15ae780,%esi
-  5b1cde:      48 89 ef                mov    %rbp,%rdi
-  5b1ce1:      e8 1a 60 0f 00          callq  6a7d00
<_Z17tree_check_failedPK9tree_nodePKciS3_z>
-  5b1ce6:      45 31 c9                xor    %r9d,%r9d
-  5b1ce9:      41 b8 43 00 00 00       mov    $0x43,%r8d
-  5b1cef:      b9 40 a7 5a 01          mov    $0x15aa740,%ecx
-  5b1cf4:      31 c0                   xor    %eax,%eax
-  5b1cf6:      ba ea 2a 00 00          mov    $0x2aea,%edx
...
+  5b1c88:      41 b8 20 a7 5a 01       mov    $0x15aa720,%r8d
+  5b1c8e:      b9 70 1f 00 00          mov    $0x1f70,%ecx
+  5b1c93:      ba 80 e7 5a 01          mov    $0x15ae780,%edx
+  5b1c98:      48 89 ef                mov    %rbp,%rdi
+  5b1c9b:      be 01 00 00 00          mov    $0x1,%esi
+  5b1ca0:      e8 f1 49 0f 00          callq  6a6696
<_Z33tree_contains_struct_check_failedPK9tree_node24tree_node_structure_en
umPKciS4_>
+  5b1ca5:      ba a0 a6 5a 01          mov    $0x15aa6a0,%edx
+  5b1caa:      be 75 2e 00 00          mov    $0x2e75,%esi
+  5b1caf:      bf 80 e7 5a 01          mov    $0x15ae780,%edi
+  5b1cb4:      e8 c1 33 06 00          callq  61507a <_Z11fancy_abortPKciS0_>
+  5b1cb9:      ba a0 a6 5a 01          mov    $0x15aa6a0,%edx
+  5b1cbe:      be 71 2e 00 00          mov    $0x2e71,%esi
+  5b1cc3:      bf 80 e7 5a 01          mov    $0x15ae780,%edi
+  5b1cc8:      e8 ad 33 06 00          callq  61507a <_Z11fancy_abortPKciS0_>
+  5b1ccd:      41 b8 40 a7 5a 01       mov    $0x15aa740,%r8d
+  5b1cd3:      b9 2f 26 00 00          mov    $0x262f,%ecx
+  5b1cd8:      ba 80 e7 5a 01          mov    $0x15ae780,%edx
+  5b1cdd:      4c 89 e7                mov    %r12,%rdi
+  5b1ce0:      be 02 00 00 00          mov    $0x2,%esi
+  5b1ce5:      e8 fd 5b 0f 00          callq  6a78e7
<_Z23tree_class_check_failedPK9tree_node15tree_code_classPKciS4_>
+  5b1cea:      41 b8 40 a7 5a 01       mov    $0x15aa740,%r8d
+  5b1cf0:      b9 30 26 00 00          mov    $0x2630,%ecx
+  5b1cf5:      ba 80 e7 5a 01          mov    $0x15ae780,%edx
+  5b1cfa:      4c 89 e7                mov    %r12,%rdi
+  5b1cfd:      be 02 00 00 00          mov    $0x2,%esi
+  5b1d02:      e8 e0 5b 0f 00          callq  6a78e7
<_Z23tree_class_check_failedPK9tree_node15tree_code_classPKciS4_>
+  5b1d07:      ba 40 a7 5a 01          mov    $0x15aa740,%edx
+  5b1d0c:      be f8 2a 00 00          mov    $0x2af8,%esi

so this is either inlining or hot/cold partitioning (or profile counters).


More information about the Gcc-bugs mailing list