diff options
author | amonakov <amonakov@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-04-08 11:49:43 +0000 |
---|---|---|
committer | amonakov <amonakov@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-04-08 11:49:43 +0000 |
commit | a8d6ade370f2755c35c18aeaa9a713c1beb6a6a8 (patch) | |
tree | b24f6232438679f7da43611698b485f6401bd044 /gcc/sel-sched.c | |
parent | def66588c41e326621bee54f4ca6d22d616b1b48 (diff) | |
download | gcc-a8d6ade370f2755c35c18aeaa9a713c1beb6a6a8.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172175 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/sel-sched.c')
-rw-r--r-- | gcc/sel-sched.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/sel-sched.c b/gcc/sel-sched.c index 0e8173b3ddd..fb1a026bf28 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; } |