diff options
author | Richard Biener <rguenther@suse.de> | 2021-06-14 15:36:57 +0200 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2021-06-15 10:31:16 +0200 |
commit | dfef1164b1c8d0b7abdf302f94d4be99a75ca791 (patch) | |
tree | cb1f0c425f68d95fb5fd006ffed93e366baa1b00 /gcc/loop-init.c | |
parent | b10f895f41dbe98f2a7d448b91d083a68792a6a0 (diff) | |
download | gcc-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.c | 3 |
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 |