This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
PR ipa/67811, part 2
- From: Richard Henderson <rth at redhat dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Wed, 23 Dec 2015 16:47:27 -0800
- Subject: PR ipa/67811, part 2
- Authentication-results: sourceware.org; auth=none
Mea culpa. Somehow I diffed the wrong trees and missed a
regression in libitm.c/cancel.c.
Re-tested and committed.
r~
* tree-cfg.c (make_edges_bb): Add abort edge for outer transactions.
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index 436ea14..3b2fab5 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -839,7 +839,8 @@ make_edges_bb (basic_block bb, struct omp_region **pcur_region, int *pomp_index)
EDGE_TM_UNINSTRUMENTED | (label1 ? 0 : EDGE_FALLTHRU));
tree label3 = gimple_transaction_label_over (txn);
- if (gimple_transaction_subcode (txn) & GTMA_HAVE_ABORT)
+ if (gimple_transaction_subcode (txn)
+ & (GTMA_HAVE_ABORT | GTMA_IS_OUTER))
make_edge (bb, label_to_block (label3), EDGE_TM_ABORT);
fallthru = false;
--
2.5.0