modulo-sched: speed up DDG analysis (PR90001)
authorRoman Zhuykov <zhroma@ispras.ru>
Fri, 13 Dec 2019 17:02:53 +0000 (17:02 +0000)
committerRoman Zhuykov <zhroma@gcc.gnu.org>
Fri, 13 Dec 2019 17:02:53 +0000 (17:02 +0000)
commit728c2e5eeaa91cf708f2b1b1f996653a7eebae59
tree62136a55af00cbdc3a1f6358607258019c789b02
parent7b945b19ad7cebebbaaf4eec44a7a572233ab91b
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.

From-SVN: r279375
gcc/ChangeLog
gcc/ddg.c
gcc/ddg.h