aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Marlier <patrick.marlier@gmail.com>2011-11-19 19:29:18 +0000
committerRichard Henderson <rth@gcc.gnu.org>2011-11-19 11:29:18 -0800
commit2e85d5e290aadb0cd0c50ddfcd8ba4f58c2301e7 (patch)
tree551446fabada9c1d3296b5eb05fbe2cd2aff9100
parent6f83092f55c889774be048d047401ddef1696769 (diff)
downloadgcc-2e85d5e290aadb0cd0c50ddfcd8ba4f58c2301e7.zip
gcc-2e85d5e290aadb0cd0c50ddfcd8ba4f58c2301e7.tar.gz
gcc-2e85d5e290aadb0cd0c50ddfcd8ba4f58c2301e7.tar.bz2
re PR middle-end/51211 (ICE: SIGSEGV in execute_tm_mark (trans-mem.c:2242) with -fgnu-tm -O -freorder-blocks -ftracer --param hot-bb-frequency-fraction=1 and __transaction_atomic)
PR middle-end/51211 * tracer.c (ignore_bb_p): Don't copy GIMPLE_TRANSACTION. From-SVN: r181512
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/tracer.c9
2 files changed, 14 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 69c6337..eb4e212 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2011-11-19 Patrick Marlier <patrick.marlier@gmail.com>
+
+ PR middle-end/51211
+ * tracer.c (ignore_bb_p): Don't copy GIMPLE_TRANSACTION.
+
2011-11-19 Eric Botcazou <ebotcazou@adacore.com>
* expmed.c (store_bit_field_1): Revert bogus formatting change.
diff --git a/gcc/tracer.c b/gcc/tracer.c
index d3523b9..602e758 100644
--- a/gcc/tracer.c
+++ b/gcc/tracer.c
@@ -90,10 +90,19 @@ bb_seen_p (basic_block bb)
static bool
ignore_bb_p (const_basic_block bb)
{
+ gimple g;
+
if (bb->index < NUM_FIXED_BLOCKS)
return true;
if (optimize_bb_for_size_p (bb))
return true;
+
+ /* A transaction is a single entry multiple exit region. It must be
+ duplicated in its entirety or not at all. */
+ g = last_stmt (CONST_CAST_BB (bb));
+ if (g && gimple_code (g) == GIMPLE_TRANSACTION)
+ return true;
+
return false;
}