diff mbox

[gimple-classes,committed,44/44] trans-mem.c: Use gassign

Message ID 1415284340-14186-45-git-send-email-dmalcolm@redhat.com
State New
Headers show

Commit Message

David Malcolm Nov. 6, 2014, 2:32 p.m. UTC
gcc/ChangeLog.gimple-classes:
	* trans-mem.c (thread_private_new_memory): Replace
	is_gimple_assign with a dyn_cast, introducing local gassign *
	"assign_stmt", using it in place of "stmt" for typesafety.
	(examine_assign_tm): Strengthen local "stmt" from gimple to
	gassign *.
	(expand_assign_tm): Likewise.
	(ipa_tm_scan_irr_block): Capture result of gimple_assign_single_p
	as a new local "assign_stmt", using it in place of "stmt" for
	typesafety.
---
 gcc/ChangeLog.gimple-classes | 12 ++++++++++++
 gcc/trans-mem.c              | 24 ++++++++++++------------
 2 files changed, 24 insertions(+), 12 deletions(-)
diff mbox

Patch

diff --git a/gcc/ChangeLog.gimple-classes b/gcc/ChangeLog.gimple-classes
index 71bb31b..e0840ed 100644
--- a/gcc/ChangeLog.gimple-classes
+++ b/gcc/ChangeLog.gimple-classes
@@ -1,5 +1,17 @@ 
 2014-11-05  David Malcolm  <dmalcolm@redhat.com>
 
+	* trans-mem.c (thread_private_new_memory): Replace
+	is_gimple_assign with a dyn_cast, introducing local gassign *
+	"assign_stmt", using it in place of "stmt" for typesafety.
+	(examine_assign_tm): Strengthen local "stmt" from gimple to
+	gassign *.
+	(expand_assign_tm): Likewise.
+	(ipa_tm_scan_irr_block): Capture result of gimple_assign_single_p
+	as a new local "assign_stmt", using it in place of "stmt" for
+	typesafety.
+
+2014-11-05  David Malcolm  <dmalcolm@redhat.com>
+
 	* sese.c (rename_uses): Add checked cast to gassign within region
 	guarded by is_gimple_assign.
 	(graphite_copy_stmts_from_block): Likewise.
diff --git a/gcc/trans-mem.c b/gcc/trans-mem.c
index 7e82de5..8806962 100644
--- a/gcc/trans-mem.c
+++ b/gcc/trans-mem.c
@@ -1403,23 +1403,23 @@  thread_private_new_memory (basic_block entry_block, tree x)
 	  && !dominated_by_p (CDI_DOMINATORS, gimple_bb (stmt), entry_block))
 	retval = mem_thread_local;
 
-      if (is_gimple_assign (stmt))
+      if (gassign *assign_stmt = dyn_cast <gassign *> (stmt))
 	{
-	  code = gimple_assign_rhs_code (stmt);
+	  code = gimple_assign_rhs_code (assign_stmt);
 	  /* x = foo ==> foo */
 	  if (code == SSA_NAME)
-	    x = gimple_assign_rhs1 (stmt);
+	    x = gimple_assign_rhs1 (assign_stmt);
 	  /* x = foo + n ==> foo */
 	  else if (code == POINTER_PLUS_EXPR)
-	    x = gimple_assign_rhs1 (stmt);
+	    x = gimple_assign_rhs1 (assign_stmt);
 	  /* x = (cast*) foo ==> foo */
 	  else if (code == VIEW_CONVERT_EXPR || code == NOP_EXPR)
-	    x = gimple_assign_rhs1 (stmt);
+	    x = gimple_assign_rhs1 (assign_stmt);
 	  /* x = c ? op1 : op2 == > op1 or op2 just like a PHI */
 	  else if (code == COND_EXPR)
 	    {
-	      tree op1 = gimple_assign_rhs2 (stmt);
-	      tree op2 = gimple_assign_rhs3 (stmt);
+	      tree op1 = gimple_assign_rhs2 (assign_stmt);
+	      tree op2 = gimple_assign_rhs3 (assign_stmt);
 	      enum thread_memory_type mem;
 	      retval = thread_private_new_memory (entry_block, op1);
 	      if (retval == mem_non_local)
@@ -1575,7 +1575,7 @@  requires_barrier (basic_block entry_block, tree x, gimple stmt)
 static void
 examine_assign_tm (unsigned *state, gimple_stmt_iterator *gsi)
 {
-  gimple stmt = gsi_stmt (*gsi);
+  gassign *stmt = as_a <gassign *> (gsi_stmt (*gsi));
 
   if (requires_barrier (/*entry_block=*/NULL, gimple_assign_rhs1 (stmt), NULL))
     *state |= GTMA_HAVE_LOAD;
@@ -2273,7 +2273,7 @@  build_tm_store (location_t loc, tree lhs, tree rhs, gimple_stmt_iterator *gsi)
 static void
 expand_assign_tm (struct tm_region *region, gimple_stmt_iterator *gsi)
 {
-  gimple stmt = gsi_stmt (*gsi);
+  gassign *stmt = as_a <gassign *> (gsi_stmt (*gsi));
   location_t loc = gimple_location (stmt);
   tree lhs = gimple_assign_lhs (stmt);
   tree rhs = gimple_assign_rhs1 (stmt);
@@ -4298,10 +4298,10 @@  ipa_tm_scan_irr_block (basic_block bb)
       switch (gimple_code (stmt))
 	{
 	case GIMPLE_ASSIGN:
-	  if (gimple_assign_single_p (stmt))
+	  if (gassign *assign_stmt = gimple_assign_single_p (stmt))
 	    {
-	      tree lhs = gimple_assign_lhs (stmt);
-	      tree rhs = gimple_assign_rhs1 (stmt);
+	      tree lhs = gimple_assign_lhs (assign_stmt);
+	      tree rhs = gimple_assign_rhs1 (assign_stmt);
 	      if (volatile_var_p (lhs) || volatile_var_p (rhs))
 		return true;
 	    }