Index: tree-inline.c
===================================================================
--- tree-inline.c	(revision 170359)
+++ tree-inline.c	(working copy)
@@ -1476,6 +1476,7 @@ copy_bb (copy_body_data *id, basic_block
   basic_block copy_basic_block;
   tree decl;
   gcov_type freq;
+  bool dst_fn_is_tm_pure = is_tm_pure (id->dst_fn);
 
   /* create_basic_block() will append every new block to
      basic_block_info automatically.  */
@@ -1504,6 +1505,9 @@ copy_bb (copy_body_data *id, basic_block
       if (gimple_nop_p (stmt))
 	continue;
 
+      if (dst_fn_is_tm_pure && gimple_code (stmt) == GIMPLE_ASM)
+	gimple_asm_set_tm_safe (stmt, true);
+
       gimple_duplicate_stmt_histograms (cfun, stmt, id->src_cfun, orig_stmt);
       seq_gsi = copy_gsi;

