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/28868] [4.0/4.1/4.2/4.3 Regression] Not elimintating the PHIs which have the same arguments



------- Comment #10 from rguenth at gcc dot gnu dot org  2007-11-04 15:45 -------
FRE doesn't replace a SSA_NAME with another SSA_NAME.  So even though VN
figured that e_3 == d_2 == c_1 it doesn't replace them here:

SCCVN says e_3 value numbers to c_1 (VH.5)
SCCVN says d_2 value numbers to c_1 (VH.5)

<bb 5>:
  # e_3 = PHI <e_8(3), e_12(4)>
  # d_2 = PHI <d_7(3), d_11(4)>
  # c_1 = PHI <c_6(3), c_10(4)>
  D.1182_13 = c_1 + d_2;
  D.1181_14 = D.1182_13 + e_3;

the next copyprop pass makes them look the same:

<bb 5>:
  # e_3 = PHI <c_6(3), c_10(4)>
  # d_2 = PHI <c_6(3), c_10(4)>
  # c_1 = PHI <c_6(3), c_10(4)>
  D.1182_13 = c_1 + d_2;
  D.1181_14 = D.1182_13 + e_3;
  return D.1181_14;

but that's it.  See also PR31914.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dberlin at gcc dot gnu dot
                   |                            |org
  BugsThisDependsOn|                            |31914


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


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