2017-06-26 Richard Biener <rguenther@suse.de>
PR tree-optimization/81203
* tree-tailcall.c (find_tail_calls): Do not move stmts into
non-dominating BBs.
* gcc.dg/torture/pr81203.c: New testcase.
From-SVN: r249644
+2017-06-26 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/81203
+ * tree-tailcall.c (find_tail_calls): Do not move stmts into
+ non-dominating BBs.
+
2017-06-26 Marek Polacek <polacek@redhat.com>
PR c/80116
+2017-06-26 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/81203
+ * gcc.dg/torture/pr81203.c: New testcase.
+
2017-06-26 Marek Polacek <polacek@redhat.com>
PR c/80116
--- /dev/null
+/* { dg-do compile } */
+
+int a;
+int b()
+{
+ int c, d;
+ if (a)
+ d = b();
+ return 1 + c + d;
+}
{
if (! tail_recursion)
return;
+ /* Do not deal with checking dominance, the real fix is to
+ do path isolation for the transform phase anyway, removing
+ the need to compute the accumulators with new stmts. */
+ if (abb != bb)
+ return;
for (unsigned opno = 1; opno < gimple_num_ops (stmt); ++opno)
{
tree op = gimple_op (stmt, opno);