This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH] More PRE TLC
- From: Richard Biener <rguenther at suse dot de>
- To: gcc-patches at gcc dot gnu dot org
- Date: Wed, 2 Aug 2017 08:51:05 +0200 (CEST)
- Subject: [PATCH] More PRE TLC
- Authentication-results: sourceware.org; auth=none
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]);