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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Yeah, ipa-split.c together with MEM_REF gimple_clobber_p and anonymous SSA_NAME
cause this.
ipa-split intentionally ignores clobber stmts during analysis, because they
aren't real stmts, worst case we just ignore them and/or throw them away.
If a clobber has a decl on lhs, then the decl is always present and not a
problem.  If it is a MEM_REF clobber with non-anonymous SSA_NAME, it is also
just fine, ipa-split will during the cloning of the fn to *.part.* turn those
SSA_NAMEs into SSA_NAME_IS_DEFAULT_DEF ones, and then tree-ssa-live will throw
such clobbers away as useless.  But anonymous SSA_NAMEs aren't meant to be ever
SSA_NAME_IS_DEFAULT_DEF, which causes this problem.

Perhaps ipa-split should just fix such SSA_NAMEs up (look up what anonymous
SSA_NAMEs have no SSA_NAME_DEFAULT_STMT and remove all clobbers that depend on
those and remove those SSA_NAMEs?

Reply via email to