aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/cp-gimplify.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/tree-ssa/pred-1.C15
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pred-1.c16
5 files changed, 42 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index fba9aa9..69d3da1 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2016-06-02 Jan Hubicka <jh@suse.cz>
+
+ * cp-gimplify.c (genericize_continue_stmt): Force addition of
+ predict stmt.
+
2016-06-02 Paolo Carlini <paolo.carlini@oracle.com>
* decl.c (xref_tag_1): Change pairs of errors to error + inform.
diff --git a/gcc/cp/cp-gimplify.c b/gcc/cp/cp-gimplify.c
index 4fc8ba1..72ba50e 100644
--- a/gcc/cp/cp-gimplify.c
+++ b/gcc/cp/cp-gimplify.c
@@ -362,7 +362,7 @@ genericize_continue_stmt (tree *stmt_p)
tree label = get_bc_label (bc_continue);
location_t location = EXPR_LOCATION (*stmt_p);
tree jump = build1_loc (location, GOTO_EXPR, void_type_node, label);
- append_to_statement_list (pred, &stmt_list);
+ append_to_statement_list_force (pred, &stmt_list);
append_to_statement_list (jump, &stmt_list);
*stmt_p = stmt_list;
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 00e4ce6..c567f75 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2016-06-03 Jan Hubicka <jh@suse.cz>
+
+ * g++.dg/tree-ssa/pred-1.C: New testcase
+ * gcc.dg/tree-ssa/pred-1.c: New testcase
+
2016-06-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR target/70957
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pred-1.C b/gcc/testsuite/g++.dg/tree-ssa/pred-1.C
new file mode 100644
index 0000000..01b065e
--- /dev/null
+++ b/gcc/testsuite/g++.dg/tree-ssa/pred-1.C
@@ -0,0 +1,15 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-profile_estimate" } */
+int a[100];
+void foo(int);
+main()
+{
+ int i;
+ for (i=0;i<100;i++)
+ {
+ if (a[i])
+ continue;
+ foo(i);
+ }
+}
+// { dg-final { scan-tree-dump "continue heuristics" "profile_estimate" } }
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pred-1.c b/gcc/testsuite/gcc.dg/tree-ssa/pred-1.c
new file mode 100644
index 0000000..97e3cb7
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pred-1.c
@@ -0,0 +1,16 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-profile_estimate" } */
+int a[100];
+void foo(int);
+int
+main()
+{
+ int i;
+ for (i=0;i<100;i++)
+ {
+ if (a[i])
+ continue;
+ foo(i);
+ }
+}
+// { dg-final { scan-tree-dump "continue heuristics" "profile_estimate" } }