Patchwork Committed: fix PR tree-optimization/57027

login
register
mail settings
Submitter Joern Rennecke
Date May 3, 2013, 11:23 a.m.
Message ID <20130503072334.ckbodiwygcs8wswo-nzlynne@webmail.spamcop.net>
Download mbox | patch
Permalink /patch/241272/
State New
Headers show

Comments

Joern Rennecke - May 3, 2013, 11:23 a.m.
Bootstrapped & regtested on i686-pc-linux-gnu.

Committed, as reviewed by Richard Biener:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57027
and also arguably obvious.
2013-05-03  Joern Rennecke <joern.rennecke@embecosm.com>

	PR tree-optimization/57027
	* tree-ssa-math-opts.c (convert_mult_to_fma): When checking for
	fnms opportunity, check we got the prerequisite kind of tree / gimple
	before using accessor functions.

Patch

Index: tree-ssa-math-opts.c
===================================================================
--- tree-ssa-math-opts.c	(revision 198552)
+++ tree-ssa-math-opts.c	(working copy)
@@ -2581,11 +2581,15 @@  convert_mult_to_fma (gimple mul_stmt, tr
 	  && optab_handler (fnma_optab, TYPE_MODE (type)) != CODE_FOR_nothing)
 	{
 	  tree rhs2 = gimple_assign_rhs2 (use_stmt);
-	  gimple stmt2 = SSA_NAME_DEF_STMT (rhs2);
 
-	  if (has_single_use (rhs2)
-	      && gimple_assign_rhs_code (stmt2) == MULT_EXPR)
-	    return false;
+	  if (TREE_CODE (rhs2) == SSA_NAME)
+	    {
+	      gimple stmt2 = SSA_NAME_DEF_STMT (rhs2);
+	      if (has_single_use (rhs2)
+		  && is_gimple_assign (stmt2)
+		  && gimple_assign_rhs_code (stmt2) == MULT_EXPR)
+	      return false;
+	    }
 	}
 
       /* We can't handle a * b + a * b.  */