diff mbox

Remove redundant canonicalize_comparison from DOM

Message ID alpine.LSU.2.11.1611091208520.5294@t29.fhfr.qr
State New
Headers show

Commit Message

Richard Biener Nov. 9, 2016, 11:10 a.m. UTC
DOM currently canonicalizes GIMPLE_COND operand order.  But it does
so before constant/copy propagation into that stmt (so quite pointless)
and furthermore we fold the stmt if we constant/copy propagated
into it and fold already does the canonicalization.

Thus, removed.

Bootstrap & regtest pending on x86_64-unknown-linux-gnu.

Richard.

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.
diff mbox

Patch

Index: gcc/tree-ssa-dom.c
===================================================================
--- gcc/tree-ssa-dom.c	(revision 241992)
+++ gcc/tree-ssa-dom.c	(working copy)
@@ -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
    threading code with a simple API for simplifying statements.  */
 static tree
@@ -1789,9 +1746,6 @@  optimize_stmt (basic_block bb, gimple_st
       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);
   opt_stats.num_stmts++;