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

--- Comment #37 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to r...@cebitec.uni-bielefeld.de from comment #36)
> > --- a/gcc/tree-inline.cc
> > +++ b/gcc/tree-inline.cc
> > @@ -2787,6 +2787,8 @@ initialize_cfun (tree new_fndecl, tree callee_fndecl,
> > profile_count count)
> >    /* Get clean struct function.  */
> >    push_struct_function (new_fndecl, true);
> >    targetm.target_option.relayout_function (new_fndecl);
> > +  if (INTEGRAL_TYPE_P (TREE_TYPE (DECL_RESULT (new_fndecl))))
> > +    gen_raw_REG (DECL_MODE (DECL_RESULT (new_fndecl)), 8);
> >
> >    /* We will rebuild these, so just sanity check that they are empty.  */
> >    gcc_assert (VALUE_HISTOGRAMS (cfun) == NULL);
> 
> This one passed the build.

That is kind of bad news for trying to debug where the problem is, because the
above
patch has only effect of doing 4 extra GC allocations, so the -fno-checking vs.
-fchecking=1 bug was just latent before, perhaps some code generation decision
is done from pointer comparisons or something similar.

If the problem without this patch is reliably reproduceable even with the same
d21 binary but not after enabling all the dumps, perhaps another attempt would
be try to see
if enabling just one dump somewhere would make it latent again as well or if it
would still reproduce.  So rather than trying to -fdump-tree-all -da, perhaps
just try -fdump-tree-optimized, or -fdump-rtl-vregs or -fdump-rtl-postreload
etc.  If the assemblies differ even with just one of those dumps enabled, you
can see if there is any difference in the dump or not.
Other option would be only side-by-side debugging but without the dumps
actually working it is much harder to find out where to look at.

Reply via email to