mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			tree-ssa-dom.c (canonicalize_comparison): Remove.
2016-11-09 Richard Biener <rguenther@suse.de> * tree-ssa-dom.c (canonicalize_comparison): Remove. (optimize_stmt): Remove redundant pre-propagation canonicalization of comparison operand order. From-SVN: r242003
This commit is contained in:
		
							parent
							
								
									68c937083c
								
							
						
					
					
						commit
						2c49f22a48
					
				|  | @ -1,3 +1,9 @@ | ||||||
|  | 2016-11-09  Richard Biener  <rguenther@suse.de> | ||||||
|  | 
 | ||||||
|  | 	* tree-ssa-dom.c (canonicalize_comparison): Remove. | ||||||
|  | 	(optimize_stmt): Remove redundant pre-propagation canonicalization | ||||||
|  | 	of comparison operand order. | ||||||
|  | 
 | ||||||
| 2016-11-09  Martin Liska  <mliska@suse.cz> | 2016-11-09  Martin Liska  <mliska@suse.cz> | ||||||
| 
 | 
 | ||||||
| 	* fold-const-call.c (fold_const_call): Fix the folding. | 	* fold-const-call.c (fold_const_call): Fix the folding. | ||||||
|  |  | ||||||
|  | @ -753,49 +753,6 @@ make_pass_dominator (gcc::context *ctxt) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| /* Given a conditional statement CONDSTMT, convert the
 |  | ||||||
|    condition to a canonical form.  */ |  | ||||||
| 
 |  | ||||||
| static void |  | ||||||
| canonicalize_comparison (gcond *condstmt) |  | ||||||
| { |  | ||||||
|   tree op0; |  | ||||||
|   tree op1; |  | ||||||
|   enum tree_code code; |  | ||||||
| 
 |  | ||||||
|   gcc_assert (gimple_code (condstmt) == GIMPLE_COND); |  | ||||||
| 
 |  | ||||||
|   op0 = gimple_cond_lhs (condstmt); |  | ||||||
|   op1 = gimple_cond_rhs (condstmt); |  | ||||||
| 
 |  | ||||||
|   code = gimple_cond_code (condstmt); |  | ||||||
| 
 |  | ||||||
|   /* If it would be profitable to swap the operands, then do so to
 |  | ||||||
|      canonicalize the statement, enabling better optimization. |  | ||||||
| 
 |  | ||||||
|      By placing canonicalization of such expressions here we |  | ||||||
|      transparently keep statements in canonical form, even |  | ||||||
|      when the statement is modified.  */ |  | ||||||
|   if (tree_swap_operands_p (op0, op1, false)) |  | ||||||
|     { |  | ||||||
|       /* For relationals we need to swap the operands
 |  | ||||||
| 	 and change the code.  */ |  | ||||||
|       if (code == LT_EXPR |  | ||||||
| 	  || code == GT_EXPR |  | ||||||
| 	  || code == LE_EXPR |  | ||||||
| 	  || code == GE_EXPR) |  | ||||||
| 	{ |  | ||||||
|           code = swap_tree_comparison (code); |  | ||||||
| 
 |  | ||||||
|           gimple_cond_set_code (condstmt, code); |  | ||||||
|           gimple_cond_set_lhs (condstmt, op1); |  | ||||||
|           gimple_cond_set_rhs (condstmt, op0); |  | ||||||
| 
 |  | ||||||
|           update_stmt (condstmt); |  | ||||||
| 	} |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /* A trivial wrapper so that we can present the generic jump
 | /* A trivial wrapper so that we can present the generic jump
 | ||||||
|    threading code with a simple API for simplifying statements.  */ |    threading code with a simple API for simplifying statements.  */ | ||||||
| static tree | static tree | ||||||
|  | @ -1789,9 +1746,6 @@ optimize_stmt (basic_block bb, gimple_stmt_iterator si, | ||||||
|       print_gimple_stmt (dump_file, stmt, 0, TDF_SLIM); |       print_gimple_stmt (dump_file, stmt, 0, TDF_SLIM); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|   if (gimple_code (stmt) == GIMPLE_COND) |  | ||||||
|     canonicalize_comparison (as_a <gcond *> (stmt)); |  | ||||||
| 
 |  | ||||||
|   update_stmt_if_modified (stmt); |   update_stmt_if_modified (stmt); | ||||||
|   opt_stats.num_stmts++; |   opt_stats.num_stmts++; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Richard Biener
						Richard Biener