------- Comment #1 from rguenth at gcc dot gnu dot org 2010-06-08 08:49 ------- Hm? The return values are removed as part of first DCE pass.
<bb 2>: D.2721_1 = i_am_pure (5); D.2722_2 = i_am_pure (5); a_3 = D.2721_1 + D.2722_2; i_am_pure (8); i_am_pure (8); return a_3; and FRE/PRE do not value-number anything that does not DEF an SSA name (nor something that defines something that is not used, so -fno-tree-dce does not help here). Why do we remove register LHS in DCE again? I can fix VN easily to also consider unused LHS on not dead stmts. Thus, mine for -fno-tree-dce. -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|unassigned at gcc dot gnu |rguenth at gcc dot gnu dot |dot org |org Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|0000-00-00 00:00:00 |2010-06-08 08:49:03 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44462