https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90001
--- Comment #6 from Roman Zhuykov <zhroma at gcc dot gnu.org> --- Author: zhroma Date: Fri Dec 13 17:02:53 2019 New Revision: 279375 URL: https://gcc.gnu.org/viewcvs?rev=279375&root=gcc&view=rev Log: modulo-sched: speed up DDG analysis (PR90001) PR rtl-optimization/90001 * ddg.c (create_ddg): Init max_dist array for each node. (free_ddg): Free max_dist array. (create_ddg_edge): Use bool field instead of aux union. (set_recurrence_length): Use prepared max_dist information instead of calling longest_simple_path. (create_scc): Remove graph argument, fill node's aux.count with SCC id, and move set_recurrence_length call to... (create_ddg_all_sccs): ...here, after filling all max_dist arrays using Floyd–Warshall-like algorithm. (update_dist_to_successors): Remove the whole function. (longest_simple_path): Likewise. * ddg.h (struct ddg_node): Add max_dist pointer. (struct ddg_edge): Use bool field instead of unused aux union. Modified: trunk/gcc/ChangeLog trunk/gcc/ddg.c trunk/gcc/ddg.h