This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] More PRE TLC


Bootstrapped and tested on x86_64-unknown-linux-gnu, applied.

Richard.

2017-08-02  Richard Biener  <rguenther@suse.de>

	* tree-ssa-pre.c (bitmap_insert_into_set_1): Remove and inline
	into ...
	(bitmap_insert_into_set): ... this.

Index: gcc/tree-ssa-pre.c
===================================================================
--- gcc/tree-ssa-pre.c	(revision 250777)
+++ gcc/tree-ssa-pre.c	(working copy)
@@ -540,8 +540,6 @@ static void bitmap_set_copy (bitmap_set_
 static void bitmap_set_and (bitmap_set_t, bitmap_set_t);
 static bool bitmap_set_contains_value (bitmap_set_t, unsigned int);
 static void bitmap_insert_into_set (bitmap_set_t, pre_expr);
-static void bitmap_insert_into_set_1 (bitmap_set_t, pre_expr,
-				      unsigned int, bool);
 static bitmap_set_t bitmap_set_new (void);
 static tree create_expression_by_pieces (basic_block, pre_expr, gimple_seq *,
 					 tree);
@@ -732,27 +730,22 @@ bitmap_remove_from_set (bitmap_set_t set
     }
 }
 
+/* Insert an expression EXPR into a bitmapped set.  */
+
 static void
-bitmap_insert_into_set_1 (bitmap_set_t set, pre_expr expr,
-			  unsigned int val, bool allow_constants)
+bitmap_insert_into_set (bitmap_set_t set, pre_expr expr)
 {
-  if (allow_constants || !value_id_constant_p (val))
+  unsigned int val = get_expr_value_id (expr);
+  if (! value_id_constant_p (val))
     {
-      /* We specifically expect this and only this function to be able to
-	 insert constants into a set.  */
+      /* Note this is the only function causing multiple expressions
+         for the same value to appear in a set.  This is needed for
+	 TMP_GEN, PHI_GEN and NEW_SETs.  */
       bitmap_set_bit (&set->values, val);
       bitmap_set_bit (&set->expressions, get_or_alloc_expression_id (expr));
     }
 }
 
-/* Insert an expression EXPR into a bitmapped set.  */
-
-static void
-bitmap_insert_into_set (bitmap_set_t set, pre_expr expr)
-{
-  bitmap_insert_into_set_1 (set, expr, get_expr_value_id (expr), false);
-}
-
 /* Copy a bitmapped set ORIG, into bitmapped set DEST.  */
 
 static void
@@ -2471,7 +2515,8 @@ compute_antic (void)
     {
       /* For partial antic we ignore backedges and thus we do not need
          to perform any iteration when we process blocks in postorder.  */
-      int postorder_num = pre_and_rev_post_order_compute (NULL, postorder.address (), false);
+      int postorder_num
+	= pre_and_rev_post_order_compute (NULL, postorder.address (), false);
       for (i = postorder_num - 1 ; i >= 0; i--)
 	{
 	  basic_block block = BASIC_BLOCK_FOR_FN (cfun, postorder[i]);


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]