diff options
author | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-01-04 21:02:42 +0000 |
---|---|---|
committer | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-01-04 21:02:42 +0000 |
commit | 880061288f932e406b8539b0c8abf5203dafc13b (patch) | |
tree | 0d4b71e06f20c74e023eb6aacd7690d252cf6d24 /gcc/tree-ssa-pre.c | |
parent | c915853f865e4c6d706f3d171c7a61ef5002a655 (diff) | |
download | gcc-880061288f932e406b8539b0c8abf5203dafc13b.tar.gz |
2010-01-04 Richard Guenther <rguenther@suse.de>
* tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
a new entry only if needed.
* tree-ssa-dom.c (lookup_avail_expr): Likewise.
* tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
hashtable lookup.
* tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
the result array.
(phi_translate): Handle CONSTANTs early.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@155633 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-ssa-pre.c')
-rw-r--r-- | gcc/tree-ssa-pre.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c index 3087fe38ae9..82964428fbb 100644 --- a/gcc/tree-ssa-pre.c +++ b/gcc/tree-ssa-pre.c @@ -684,7 +684,10 @@ sorted_array_from_bitmap_set (bitmap_set_t set) { unsigned int i, j; bitmap_iterator bi, bj; - VEC(pre_expr, heap) *result = NULL; + VEC(pre_expr, heap) *result; + + /* Pre-allocate roughly enough space for the array. */ + result = VEC_alloc (pre_expr, heap, bitmap_count_bits (set->values)); FOR_EACH_VALUE_ID_IN_SET (set, i, bi) { @@ -1446,6 +1449,10 @@ phi_translate (pre_expr expr, bitmap_set_t set1, bitmap_set_t set2, if (!expr) return NULL; + /* Constants contain no values that need translation. */ + if (expr->kind == CONSTANT) + return expr; + if (value_id_constant_p (get_expr_value_id (expr))) return expr; @@ -1455,10 +1462,6 @@ phi_translate (pre_expr expr, bitmap_set_t set1, bitmap_set_t set2, switch (expr->kind) { - /* Constants contain no values that need translation. */ - case CONSTANT: - return expr; - case NARY: { unsigned int i; |