diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3f7bd3033877..950ac53794b0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -208,6 +208,11 @@ * Makefile.in: Fix dependencies. * config/rs6000/t-rs5000: Likewise. +2012-05-31 Aldy Hernandez + + * tree-ssa-loop-im.c (execute_sm): Do not check flag_tm. + * gimple.h (block_in_transaction): Check for flag_tm. + 2012-05-31 Aldy Hernandez PR tree-optimization/52558 diff --git a/gcc/gimple.h b/gcc/gimple.h index 8fd64da61dbf..193590dbe74c 100644 --- a/gcc/gimple.h +++ b/gcc/gimple.h @@ -1593,7 +1593,7 @@ gimple_set_has_volatile_ops (gimple stmt, bool volatilep) static inline bool block_in_transaction (basic_block bb) { - return bb->flags & BB_IN_TRANSACTION; + return flag_tm && bb->flags & BB_IN_TRANSACTION; } /* Return true if STMT is in a transaction. */ diff --git a/gcc/tree-ssa-loop-im.c b/gcc/tree-ssa-loop-im.c index 9c093f83dded..290cb7400a16 100644 --- a/gcc/tree-ssa-loop-im.c +++ b/gcc/tree-ssa-loop-im.c @@ -2153,7 +2153,7 @@ execute_sm (struct loop *loop, VEC (edge, heap) *exits, mem_ref_p ref) fmt_data.orig_loop = loop; for_each_index (&ref->mem, force_move_till, &fmt_data); - if ((flag_tm && block_in_transaction (loop_preheader_edge (loop)->src)) + if (block_in_transaction (loop_preheader_edge (loop)->src) || !PARAM_VALUE (PARAM_ALLOW_STORE_DATA_RACES)) multi_threaded_model_p = true;