This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tree-optimization/34176] [4.3 Regression] SCCVN breaks gettext



------- 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]