mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			re PR tree-optimization/67381 (genmatch does not honor the order of patterns)
2015-08-31 Richard Biener <rguenther@suse.de> PR middle-end/67381 * genmatch.c (dt_node::gen_kids): Also treat matches as barrier. From-SVN: r227344
This commit is contained in:
		
							parent
							
								
									77c028c522
								
							
						
					
					
						commit
						6974662928
					
				|  | @ -1,3 +1,8 @@ | ||||||
|  | 2015-08-31  Richard Biener  <rguenther@suse.de> | ||||||
|  | 
 | ||||||
|  | 	PR middle-end/67381 | ||||||
|  | 	* genmatch.c (dt_node::gen_kids): Also treat matches as barrier. | ||||||
|  | 
 | ||||||
| 2015-08-31  Marc Glisse  <marc.glisse@inria.fr> | 2015-08-31  Marc Glisse  <marc.glisse@inria.fr> | ||||||
| 
 | 
 | ||||||
| 	* match.pd (SIN, COS, TAN, COSH): Reorder for consistency. | 	* match.pd (SIN, COS, TAN, COSH): Reorder for consistency. | ||||||
|  |  | ||||||
|  | @ -2529,12 +2529,15 @@ dt_node::gen_kids (FILE *f, int indent, bool gimple) | ||||||
| 	  else | 	  else | ||||||
| 	    gcc_unreachable (); | 	    gcc_unreachable (); | ||||||
| 	} | 	} | ||||||
|       else if (kids[i]->type == dt_node::DT_MATCH |       else if (kids[i]->type == dt_node::DT_SIMPLIFY) | ||||||
| 	       || kids[i]->type == dt_node::DT_SIMPLIFY) |  | ||||||
| 	others.safe_push (kids[i]); | 	others.safe_push (kids[i]); | ||||||
|       else if (kids[i]->type == dt_node::DT_TRUE) |       else if (kids[i]->type == dt_node::DT_MATCH | ||||||
|  | 	       || kids[i]->type == dt_node::DT_TRUE) | ||||||
| 	{ | 	{ | ||||||
| 	  /* A DT_TRUE operand serves as a barrier - generate code now
 | 	  /* A DT_TRUE operand serves as a barrier - generate code now
 | ||||||
|  | 	     for what we have collected sofar. | ||||||
|  | 	     Like DT_TRUE, DT_MATCH serves as a barrier as it can cause | ||||||
|  | 	     dependent matches to get out-of-order.  Generate code now | ||||||
| 	     for what we have collected sofar.  */ | 	     for what we have collected sofar.  */ | ||||||
| 	  gen_kids_1 (f, indent, gimple, gimple_exprs, generic_exprs, | 	  gen_kids_1 (f, indent, gimple, gimple_exprs, generic_exprs, | ||||||
| 		      fns, generic_fns, preds, others); | 		      fns, generic_fns, preds, others); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Richard Biener
						Richard Biener