diff options
author | Patrick Marlier <patrick.marlier@gmail.com> | 2011-11-19 19:29:18 +0000 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2011-11-19 11:29:18 -0800 |
commit | 2e85d5e290aadb0cd0c50ddfcd8ba4f58c2301e7 (patch) | |
tree | 551446fabada9c1d3296b5eb05fbe2cd2aff9100 /gcc | |
parent | 6f83092f55c889774be048d047401ddef1696769 (diff) | |
download | gcc-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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/tracer.c | 9 |
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; } |