This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[tsan] Don't instrument clobber stmts, minor cleanups


Hi!

 var ={v} {CLOBBER};
stmts shouldn't be tsan instrumented, those aren't stores, just
markups that var's scope ends.  Additionally this patch removes the
IMHO unneeded TODO_update_address_taken (discussed earlier already)
and fixes formatting of a few comments.

Ok for trunk?

2012-11-23  Jakub Jelinek  <jakub@redhat.com>

	* tsan.c: Fix up comment formatting.
	(instrument_gimple): Ignore gimple_clobber_p stmts.
	(pass_tsan, pass_tsan_O0): Remove TODO_update_address_taken
	from todo_flags_finish.

--- gcc/tsan.c.jj	2012-11-23 10:31:37.000000000 +0100
+++ gcc/tsan.c	2012-11-23 13:35:06.448082211 +0100
@@ -107,7 +107,7 @@ is_load_of_const_p (tree expr, bool is_w
 }
 
 /* Instruments EXPR if needed. If any instrumentation is inserted,
- * return true. */
+   return true.  */
 
 static bool
 instrument_expr (gimple_stmt_iterator gsi, tree expr, bool is_write)
@@ -161,7 +161,7 @@ instrument_expr (gimple_stmt_iterator gs
       || bitsize != size * BITS_PER_UNIT)
     return false;
 
-  /* TODO: handle other case: ARRAY_RANGE_REF. */
+  /* TODO: handle other case: ARRAY_RANGE_REF.  */
   if (tcode != ARRAY_REF
       && tcode != VAR_DECL
       && tcode != COMPONENT_REF
@@ -197,7 +197,7 @@ instrument_expr (gimple_stmt_iterator gs
     {
       /* If the call can throw, it must be the last stmt in
 	 a basic block, so the instrumented stmts need to be
-	 inserted in successor bbs. */
+	 inserted in successor bbs.  */
       if (is_ctrl_altering_stmt (stmt))
 	{
 	  edge e;
@@ -217,7 +217,7 @@ instrument_expr (gimple_stmt_iterator gs
 }
 
 /* Instruments the gimple pointed to by GSI. Return
- * true if func entry/exit should be instrumented. */
+   true if func entry/exit should be instrumented.  */
 
 static bool
 instrument_gimple (gimple_stmt_iterator gsi)
@@ -231,7 +231,8 @@ instrument_gimple (gimple_stmt_iterator
       && (gimple_call_fndecl (stmt)
 	  != builtin_decl_implicit (BUILT_IN_TSAN_INIT)))
     return true;
-  else if (is_gimple_assign (stmt))
+  else if (is_gimple_assign (stmt)
+	   && !gimple_clobber_p (stmt))
     {
       if (gimple_store_p (stmt))
 	{
@@ -248,7 +249,7 @@ instrument_gimple (gimple_stmt_iterator
 }
 
 /* Instruments all interesting memory accesses in the current function.
- * Return true if func entry/exit should be instrumented. */
+   Return true if func entry/exit should be instrumented.  */
 
 static bool
 instrument_memory_accesses (void)
@@ -372,8 +373,7 @@ struct gimple_opt_pass pass_tsan =
   0,					/* properties_provided  */
   0,					/* properties_destroyed  */
   0,					/* todo_flags_start  */
-  TODO_verify_all | TODO_update_ssa
-  | TODO_update_address_taken		/* todo_flags_finish  */
+  TODO_verify_all | TODO_update_ssa	/* todo_flags_finish  */
  }
 };
 
@@ -399,7 +399,6 @@ struct gimple_opt_pass pass_tsan_O0 =
   0,					/* properties_provided  */
   0,					/* properties_destroyed  */
   0,					/* todo_flags_start  */
-  TODO_verify_all | TODO_update_ssa
-  | TODO_update_address_taken		/* todo_flags_finish  */
+  TODO_verify_all | TODO_update_ssa	/* todo_flags_finish  */
  }
 };

	Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]