https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71253
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Resolution|--- |FIXED --- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- Author: rguenth Date: Tue May 24 12:40:01 2016 New Revision: 236636 URL: https://gcc.gnu.org/viewcvs?rev=236636&root=gcc&view=rev Log: 2016-05-24 Richard Biener <rguent...@suse.de> PR tree-optimization/71253 * cfganal.h (control_dependences): Make robust against edge and BB removal. (control_dependences::control_dependences): Remove edge_list argument. (control_dependences::get_edge): Remove. (control_dependences::get_edge_src): Add. (control_dependences::get_edge_dest): Likewise. (control_dependences::m_el): Make a vector of edge src/dest index. * cfganal.c (control_dependences::find_control_dependence): Adjust. (control_dependences::control_dependences): Likewise. (control_dependences::~control_dependence): Likewise. (control_dependences::get_edge): Remove. (control_dependences::get_edge_src): Add. (control_dependences::get_edge_dest): Likewise. * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use get_edge_src. (perform_tree_ssa_dce): Adjust. * tree-loop-distribution.c (create_edge_for_control_dependence): Use get_edge_src. (pass_loop_distribution::execute): Adjust. Do loop destroying conditional on changed. * gcc.dg/torture/pr71253.c: New testcase. Added: trunk/gcc/testsuite/gcc.dg/torture/pr71253.c Modified: trunk/gcc/ChangeLog trunk/gcc/cfganal.c trunk/gcc/cfganal.h trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-loop-distribution.c trunk/gcc/tree-ssa-dce.c --- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> --- Fixed.