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/55018] [4.6/4.7/4.8 Regression] CDDCE pass is too aggressive sometimes with infinite loops and with some functions


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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
         AssignedTo|unassigned at gcc dot       |jakub at gcc dot gnu.org
                   |gnu.org                     |

--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-10-22 15:03:34 UTC ---
Created attachment 28508
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=28508
gcc48-pr55018.patch

Untested fix.  If such a bb has more than one succ edge, I think it ought to
have either a control stmt in it, or throwing stmt, so I think a bb with high
index (because calc_dfs_tree uses FOR_EACH_BB_REVERSE to find the still
unconnected bbs), on a path from a conditional to an infinite loop, that
doesn't contain any stmts marked already as necessary (on the testcase none at
all) is the only problem.


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