aboutsummaryrefslogtreecommitdiff
path: root/gcc/loop-init.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2021-06-14 15:36:57 +0200
committerRichard Biener <rguenther@suse.de>2021-06-15 10:31:16 +0200
commitdfef1164b1c8d0b7abdf302f94d4be99a75ca791 (patch)
treecb1f0c425f68d95fb5fd006ffed93e366baa1b00 /gcc/loop-init.c
parentb10f895f41dbe98f2a7d448b91d083a68792a6a0 (diff)
downloadgcc-dfef1164b1c8d0b7abdf302f94d4be99a75ca791.zip
gcc-dfef1164b1c8d0b7abdf302f94d4be99a75ca791.tar.gz
gcc-dfef1164b1c8d0b7abdf302f94d4be99a75ca791.tar.bz2
Handle multiple latches in irreducible region mark
The following makes irreducible region discovery handle multiple latches. 2021-06-14 Richard Biener <rguenther@suse.de> * cfgloopanal.c (mark_irreducible_loops): Use a dominance check to identify loop latches. * cfgloop.c (verify_loop_structure): Likewise. * loop-init.c (apply_loop_flags): Allow marked irreducible regions even with multiple latches. * predict.c (rebuild_frequencies): Simplify.
Diffstat (limited to 'gcc/loop-init.c')
-rw-r--r--gcc/loop-init.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/loop-init.c b/gcc/loop-init.c
index 17f1407..1fde0ed 100644
--- a/gcc/loop-init.c
+++ b/gcc/loop-init.c
@@ -48,7 +48,8 @@ apply_loop_flags (unsigned flags)
not work). However, we avoid modifying cfg, which some
passes may want. */
gcc_assert ((flags & ~(LOOPS_MAY_HAVE_MULTIPLE_LATCHES
- | LOOPS_HAVE_RECORDED_EXITS)) == 0);
+ | LOOPS_HAVE_RECORDED_EXITS
+ | LOOPS_HAVE_MARKED_IRREDUCIBLE_REGIONS)) == 0);
loops_state_set (LOOPS_MAY_HAVE_MULTIPLE_LATCHES);
}
else