summaryrefslogtreecommitdiff
path: root/gcc/cfgloop.h
diff options
context:
space:
mode:
authoramonakov <amonakov@138bc75d-0d04-0410-961f-82ee72b054a4>2011-04-08 11:49:43 +0000
committeramonakov <amonakov@138bc75d-0d04-0410-961f-82ee72b054a4>2011-04-08 11:49:43 +0000
commita8d6ade370f2755c35c18aeaa9a713c1beb6a6a8 (patch)
treeb24f6232438679f7da43611698b485f6401bd044 /gcc/cfgloop.h
parentdef66588c41e326621bee54f4ca6d22d616b1b48 (diff)
downloadgcc-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/cfgloop.h')
-rw-r--r--gcc/cfgloop.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/cfgloop.h b/gcc/cfgloop.h
index f7bb1341a63..0ff44de67d3 100644
--- a/gcc/cfgloop.h
+++ b/gcc/cfgloop.h
@@ -443,6 +443,14 @@ loop_outer (const struct loop *loop)
return VEC_index (loop_p, loop->superloops, n - 1);
}
+/* Returns true if LOOP has at least one exit edge. */
+
+static inline bool
+loop_has_exit_edges (const struct loop *loop)
+{
+ return loop->exits->next->e != NULL;
+}
+
/* Returns the list of loops in current_loops. */
static inline VEC (loop_p, gc) *