This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/57661] [4.9 Regression] ICE: SIGSEGV in verify_ssa
- From: "jakub at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 22 Jul 2013 22:01:07 +0000
- Subject: [Bug middle-end/57661] [4.9 Regression] ICE: SIGSEGV in verify_ssa
- Auto-submitted: auto-generated
- References: <bug-57661-4 at http dot gcc dot gnu dot org/bugzilla/>
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?