This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/34176] [4.3 Regression] SCCVN breaks gettext
- From: "rguenth at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 21 Nov 2007 23:02:21 -0000
- Subject: [Bug tree-optimization/34176] [4.3 Regression] SCCVN breaks gettext
- References: <bug-34176-10053@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #1 from rguenth at gcc dot gnu dot org 2007-11-21 23:02 -------
If you look at what SCCVN does for the affected SCC then you see that iteration
converges to
Setting value number of dest_7 to dest_7
Setting value number of list_23 to list_23
Value numbering destptr_3 stmt = destptr_3 = PHI <dest_7(4), destptr_12(5)>
Setting value number of destptr_3 to destptr_3
Value numbering destptr.3_13 stmt = destptr.3_13 = (int) destptr_3;
Setting value number of destptr.3_13 to destptr.3_13
Value numbering dest.4_14 stmt = dest.4_14 = (int) dest_7;
Setting value number of dest.4_14 to destptr.3_13
Value numbering D.1217_15 stmt = D.1217_15 = destptr.3_13 - dest.4_14;
RHS destptr.3_13 - dest.4_14 simplified to 0 has constants 1
...
that is, destptr.3_13 == dest.4_14 -- but, in the final run with the correct
table in place we get
Setting value number of dest_7 to dest_7
Setting value number of list_23 to list_23
Value numbering destptr_3 stmt = destptr_3 = PHI <dest_7(4), destptr_12(5)>
Setting value number of destptr_3 to destptr_3
Value numbering destptr.3_13 stmt = destptr.3_13 = (int) destptr_3;
Setting value number of destptr.3_13 to destptr.3_13
Value numbering dest.4_14 stmt = dest.4_14 = (int) dest_7;
Setting value number of dest.4_14 to dest.4_14
Value numbering D.1217_15 stmt = D.1217_15 = destptr.3_13 - dest.4_14;
Setting value number of D.1217_15 to D.1217_15
increasing the number of iterations doesn't "fix" it.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34176