aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2010-01-05 10:53:11 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2010-01-05 10:53:11 +0000
commit1befacc8c5554979882499fa6a1d797791cf85ba (patch)
tree2b17e4703de3f7b4a5439a4619330735d4a5b71b /gcc
parent7604eb4e07613c79a9b81da29baabdac8187f461 (diff)
downloadgcc-1befacc8c5554979882499fa6a1d797791cf85ba.zip
gcc-1befacc8c5554979882499fa6a1d797791cf85ba.tar.gz
gcc-1befacc8c5554979882499fa6a1d797791cf85ba.tar.bz2
tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
2010-01-05 Richard Guenther <rguenther@suse.de> * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize. From-SVN: r155643
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/tree-ssa-pre.c13
2 files changed, 15 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 89398d7..9f8770f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2010-01-05 Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
+
2010-01-05 Jakub Jelinek <jakub@redhat.com>
PR other/42611
diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c
index 124ba3b..972af00 100644
--- a/gcc/tree-ssa-pre.c
+++ b/gcc/tree-ssa-pre.c
@@ -867,8 +867,17 @@ bitmap_value_insert_into_set (bitmap_set_t set, pre_expr expr)
{
unsigned int val = get_expr_value_id (expr);
- if (!bitmap_set_contains_value (set, val))
- bitmap_insert_into_set_1 (set, expr, val, false);
+#ifdef ENABLE_CHECKING
+ gcc_assert (expr->id == get_or_alloc_expression_id (expr));
+#endif
+
+ /* Constant values are always considered to be part of the set. */
+ if (value_id_constant_p (val))
+ return;
+
+ /* If the value membership changed, add the expression. */
+ if (bitmap_set_bit (set->values, val))
+ bitmap_set_bit (set->expressions, expr->id);
}
/* Print out EXPR to outfile. */