diff options
author | Richard Biener <rguenther@suse.de> | 2016-11-24 12:25:22 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2016-11-24 12:25:22 +0000 |
commit | eb2afa1a80613d37aa12fdd5a0624b45fdef9377 (patch) | |
tree | e719b1da7d230192f4964664cd374d04f8b94006 /gcc/cfgloopmanip.h | |
parent | 2d8fec87b11ecfad75f8cae7910e60e1a61ec61b (diff) | |
download | gcc-eb2afa1a80613d37aa12fdd5a0624b45fdef9377.zip gcc-eb2afa1a80613d37aa12fdd5a0624b45fdef9377.tar.gz gcc-eb2afa1a80613d37aa12fdd5a0624b45fdef9377.tar.bz2 |
re PR tree-optimization/71595 (ICE on valid code at -O2 and -O3 on x86_64-linux-gnu: in check_loop_closed_ssa_use, at tree-ssa-loop-manip.c:704)
2016-11-24 Richard Biener <rguenther@suse.de>
PR tree-optimization/71595
* cfgloopmanip.h (remove_path): Add irred_invalidated and
loop_closed_ssa_invalidated parameters, defaulted to NULL.
* cfgloopmanip.c (remove_path): Likewise, pass them along to
called functions. Only fix irred flags if the caller didn't
request state.
* tree-ssa-loop-ivcanon.c (unloop_loops): Use add_bb_to_loop.
(unloop_loops): Pass irred_invalidated and loop_closed_ssa_invalidated
to remove_path.
* gcc.dg/torture/pr71595.c: New testcase.
From-SVN: r242835
Diffstat (limited to 'gcc/cfgloopmanip.h')
-rw-r--r-- | gcc/cfgloopmanip.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/cfgloopmanip.h b/gcc/cfgloopmanip.h index 0e7dc7a..5c4552c 100644 --- a/gcc/cfgloopmanip.h +++ b/gcc/cfgloopmanip.h @@ -34,7 +34,7 @@ enum a complete peeling. */ extern edge mfb_kj_edge; -extern bool remove_path (edge); +extern bool remove_path (edge, bool * = NULL, bitmap = NULL); extern void place_new_loop (struct function *, struct loop *); extern void add_loop (struct loop *, struct loop *); extern void scale_loop_frequencies (struct loop *, int, int); |