This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/30604] Unable to coalesce ssa_names <x> and <y> which are marked as MUST COALESCE
- From: "amacleod at redhat dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 8 Mar 2007 20:12:16 -0000
- Subject: [Bug tree-optimization/30604] Unable to coalesce ssa_names <x> and <y> which are marked as MUST COALESCE
- References: <bug-30604-3639@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #7 from amacleod at redhat dot com 2007-03-08 20:12 -------
Looking at the original testcase, the complaint is that _t_8232 and _t_3 are
both used in the PHI definition of _t_7. (using mainline from march 5th)
ie, _t_7(ab) = PHI <...., _t_8232, ... , _t_3, ...>
That definition occurs in BB2509.
Because its an abnormal edge, all three must be coalescable.
_t_8232 is defined in BB 2315, but _t_3 is live on entry and through this
block, meaning they have different values and are live at the same time, so
they cannot be coalesced
The listing looks OK after ccp2, but in the listing after the FRE pass _t_3
becomes live on entry to this block, and it wasn't before.
I can't really read the detailed output from FRE, but it does seem to have
replaced a bunch of expressions with _t_3, so that would appear to be the
culprit.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30604