[Bug tree-optimization/59860] [4.8/4.9 Regression] ICE in compute_may_aliases, at tree-ssa-structalias.c:6843

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Jan 17 14:28:00 GMT 2014


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59860

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P1
      Known to work|                            |4.8.2
            Summary|[4.8 Regression] ICE in     |[4.8/4.9 Regression] ICE in
                   |compute_may_aliases, at     |compute_may_aliases, at
                   |tree-ssa-structalias.c:6843 |tree-ssa-structalias.c:6843

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
Hmm, on s390x we fold

  # iftmp.0_1 = PHI <".raw"(4), ".wav"(5)>
# .MEM_12 = VDEF <.MEM_2>
__builtin___strcat_chk (outfilename_9(D), iftmp.0_1, 18446744073709551615);

to

  _13 = __builtin_strlen (outfilename_9(D));
  _14 = outfilename_9(D) + _13;
  __builtin_memcpy (_14, iftmp.0_1, 5);

but not on other targets.  Oh.

static tree
fold_builtin_strcat (location_t loc ATTRIBUTE_UNUSED, tree dst, tree src)
{
...
      if (optimize_insn_for_speed_p ())
        {

That doesn't work when called from GIMPLE.

and then

          /* If we don't have a movstr we don't want to emit an strcpy
             call.  We have to do that if the length of the source string
             isn't computable (in that case we can use memcpy probably
             later expanding to a sequence of mov instructions).  If we
             have movstr instructions we can emit strcpy calls.  */
          if (!HAVE_movstr)
            {
              tree len = c_strlen (src, 1);
              if (! len || TREE_SIDE_EFFECTS (len))
                return NULL_TREE;
            }

that probably makes it s390 specific.

But it's a latent issue with folding stmts from object-size but not updating
SSA form there.

I'll fix it.



More information about the Gcc-bugs mailing list