diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 69c633728f03..eb4e2122b935 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2011-11-19 Patrick Marlier + + PR middle-end/51211 + * tracer.c (ignore_bb_p): Don't copy GIMPLE_TRANSACTION. + 2011-11-19 Eric Botcazou * expmed.c (store_bit_field_1): Revert bogus formatting change. diff --git a/gcc/tracer.c b/gcc/tracer.c index d3523b985b1c..602e7580d994 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; }