aboutsummaryrefslogtreecommitdiff
path: root/gcc/sel-sched.c
diff options
context:
space:
mode:
authorAlexander Monakov <amonakov@ispras.ru>2011-04-08 15:49:43 +0400
committerAlexander Monakov <amonakov@gcc.gnu.org>2011-04-08 15:49:43 +0400
commit07643d76c74845e250bdedca6b7148ebccff780b (patch)
treeb24f6232438679f7da43611698b485f6401bd044 /gcc/sel-sched.c
parent1f3b2b4e2914cbb5750e23acf609c5c5b7ca42a3 (diff)
downloadgcc-07643d76c74845e250bdedca6b7148ebccff780b.zip
gcc-07643d76c74845e250bdedca6b7148ebccff780b.tar.gz
gcc-07643d76c74845e250bdedca6b7148ebccff780b.tar.bz2
re PR target/48273 (ICE: in create_copy_of_insn_rtx, at sel-sched-ir.c:5604 with -fsel-sched-pipelining -fselective-scheduling2 -march=core2)
PR target/48273 * cfgloop.h (loop_has_exit_edges): New helper. * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs non-clonable. * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops that have no exit edges. testsuite: * g++.dg/opt/pr48273.C: New. From-SVN: r172175
Diffstat (limited to 'gcc/sel-sched.c')
-rw-r--r--gcc/sel-sched.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/sel-sched.c b/gcc/sel-sched.c
index 0e8173b..fb1a026 100644
--- a/gcc/sel-sched.c
+++ b/gcc/sel-sched.c
@@ -6781,7 +6781,8 @@ sel_setup_region_sched_flags (void)
bookkeeping_p = 1;
pipelining_p = (bookkeeping_p
&& (flag_sel_sched_pipelining != 0)
- && current_loop_nest != NULL);
+ && current_loop_nest != NULL
+ && loop_has_exit_edges (current_loop_nest));
max_insns_to_rename = PARAM_VALUE (PARAM_SELSCHED_INSNS_TO_RENAME);
max_ws = MAX_WS;
}