https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98257
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- There's also 'A New Algorithm for Identifying Loops in Decompilation' by Tao Wei, Jian Mao, Wei Zou and You Chen of the Institute of Computer Science and Technology of the Peking University with similar complexity which is used by rev_post_order_and_mark_dfs_back_seme. Note for irreducible regions there can be multiple entries into a cycle and what edges are "back" depends on the visitation order of the entries.