Commit dacb336e by Kazu Hirata Committed by Kazu Hirata

Makefile.in (TREE_SSA_LIVE_H): Add vecprim.h.

	* Makefile.in (TREE_SSA_LIVE_H): Add vecprim.h.
	* tree-ssa-live.c (tpa_init, tpa_remove_partition, tpa_delete,
	tpa_compact, root_var_init, type_var_init): Use VEC instead of
	VARRAY.
	* tree-ssa-live.h: Include vecprim.h.
	(tree_partition_associator_d): Change the type of
	first_partition to VEC(int,heap) *.
	(tpa_first_partition): Use VEC instead of VARRAY.

From-SVN: r112893
parent aa9d194e
2006-04-12 Kazu Hirata <kazu@codesourcery.com>
* Makefile.in (TREE_SSA_LIVE_H): Add vecprim.h.
* tree-ssa-live.c (tpa_init, tpa_remove_partition, tpa_delete,
tpa_compact, root_var_init, type_var_init): Use VEC instead of
VARRAY.
* tree-ssa-live.h: Include vecprim.h.
(tree_partition_associator_d): Change the type of
first_partition to VEC(int,heap) *.
(tpa_first_partition): Use VEC instead of VARRAY.
2006-04-12 Roger Sayle <roger@eyesopen.com> 2006-04-12 Roger Sayle <roger@eyesopen.com>
* expr.c (emit_group_store): Correct operand order in call to * expr.c (emit_group_store): Correct operand order in call to
......
...@@ -787,7 +787,7 @@ TREE_GIMPLE_H = tree-gimple.h tree-iterator.h ...@@ -787,7 +787,7 @@ TREE_GIMPLE_H = tree-gimple.h tree-iterator.h
TREE_FLOW_H = tree-flow.h tree-flow-inline.h tree-ssa-operands.h \ TREE_FLOW_H = tree-flow.h tree-flow-inline.h tree-ssa-operands.h \
bitmap.h $(BASIC_BLOCK_H) hard-reg-set.h $(TREE_GIMPLE_H) \ bitmap.h $(BASIC_BLOCK_H) hard-reg-set.h $(TREE_GIMPLE_H) \
$(HASHTAB_H) $(CGRAPH_H) $(IPA_REFERENCE_H) $(HASHTAB_H) $(CGRAPH_H) $(IPA_REFERENCE_H)
TREE_SSA_LIVE_H = tree-ssa-live.h $(PARTITION_H) TREE_SSA_LIVE_H = tree-ssa-live.h $(PARTITION_H) vecprim.h
PRETTY_PRINT_H = pretty-print.h input.h $(OBSTACK_H) PRETTY_PRINT_H = pretty-print.h input.h $(OBSTACK_H)
DIAGNOSTIC_H = diagnostic.h diagnostic.def $(PRETTY_PRINT_H) options.h DIAGNOSTIC_H = diagnostic.h diagnostic.def $(PRETTY_PRINT_H) options.h
C_PRETTY_PRINT_H = c-pretty-print.h $(PRETTY_PRINT_H) $(C_COMMON_H) $(TREE_H) C_PRETTY_PRINT_H = c-pretty-print.h $(PRETTY_PRINT_H) $(C_COMMON_H) $(TREE_H)
......
...@@ -882,7 +882,7 @@ tpa_init (var_map map) ...@@ -882,7 +882,7 @@ tpa_init (var_map map)
x = MAX (40, (num_partitions / 20)); x = MAX (40, (num_partitions / 20));
tpa->trees = VEC_alloc (tree, heap, x); tpa->trees = VEC_alloc (tree, heap, x);
VARRAY_INT_INIT (tpa->first_partition, x, "first_partition"); tpa->first_partition = VEC_alloc (int, heap, x);
return tpa; return tpa;
...@@ -899,7 +899,8 @@ tpa_remove_partition (tpa_p tpa, int tree_index, int partition_index) ...@@ -899,7 +899,8 @@ tpa_remove_partition (tpa_p tpa, int tree_index, int partition_index)
i = tpa_first_partition (tpa, tree_index); i = tpa_first_partition (tpa, tree_index);
if (i == partition_index) if (i == partition_index)
{ {
VARRAY_INT (tpa->first_partition, tree_index) = tpa->next_partition[i]; VEC_replace (int, tpa->first_partition, tree_index,
tpa->next_partition[i]);
} }
else else
{ {
...@@ -924,6 +925,7 @@ tpa_delete (tpa_p tpa) ...@@ -924,6 +925,7 @@ tpa_delete (tpa_p tpa)
return; return;
VEC_free (tree, heap, tpa->trees); VEC_free (tree, heap, tpa->trees);
VEC_free (int, heap, tpa->first_partition);
free (tpa->partition_to_tree_map); free (tpa->partition_to_tree_map);
free (tpa->next_partition); free (tpa->next_partition);
free (tpa); free (tpa);
...@@ -958,20 +960,20 @@ tpa_compact (tpa_p tpa) ...@@ -958,20 +960,20 @@ tpa_compact (tpa_p tpa)
if (tpa_next_partition (tpa, first) == NO_PARTITION) if (tpa_next_partition (tpa, first) == NO_PARTITION)
{ {
swap_t = VEC_index (tree, tpa->trees, last); swap_t = VEC_index (tree, tpa->trees, last);
swap_i = VARRAY_INT (tpa->first_partition, last); swap_i = VEC_index (int, tpa->first_partition, last);
/* Update the last entry. Since it is known to only have one /* Update the last entry. Since it is known to only have one
partition, there is nothing else to update. */ partition, there is nothing else to update. */
VEC_replace (tree, tpa->trees, last, VEC_replace (tree, tpa->trees, last,
VEC_index (tree, tpa->trees, x)); VEC_index (tree, tpa->trees, x));
VARRAY_INT (tpa->first_partition, last) VEC_replace (int, tpa->first_partition, last,
= VARRAY_INT (tpa->first_partition, x); VEC_index (int, tpa->first_partition, x));
tpa->partition_to_tree_map[tpa_first_partition (tpa, last)] = last; tpa->partition_to_tree_map[tpa_first_partition (tpa, last)] = last;
/* Since this list is known to have more than one partition, update /* Since this list is known to have more than one partition, update
the list owner entries. */ the list owner entries. */
VEC_replace (tree, tpa->trees, x, swap_t); VEC_replace (tree, tpa->trees, x, swap_t);
VARRAY_INT (tpa->first_partition, x) = swap_i; VEC_replace (int, tpa->first_partition, x, swap_i);
for (y = tpa_first_partition (tpa, x); for (y = tpa_first_partition (tpa, x);
y != NO_PARTITION; y != NO_PARTITION;
y = tpa_next_partition (tpa, y)) y = tpa_next_partition (tpa, y))
...@@ -1041,16 +1043,16 @@ root_var_init (var_map map) ...@@ -1041,16 +1043,16 @@ root_var_init (var_map map)
ann = var_ann (t); ann = var_ann (t);
if (ann->root_var_processed) if (ann->root_var_processed)
{ {
rv->next_partition[p] = VARRAY_INT (rv->first_partition, rv->next_partition[p] = VEC_index (int, rv->first_partition,
VAR_ANN_ROOT_INDEX (ann)); VAR_ANN_ROOT_INDEX (ann));
VARRAY_INT (rv->first_partition, VAR_ANN_ROOT_INDEX (ann)) = p; VEC_replace (int, rv->first_partition, VAR_ANN_ROOT_INDEX (ann), p);
} }
else else
{ {
ann->root_var_processed = 1; ann->root_var_processed = 1;
VAR_ANN_ROOT_INDEX (ann) = rv->num_trees++; VAR_ANN_ROOT_INDEX (ann) = rv->num_trees++;
VEC_safe_push (tree, heap, rv->trees, t); VEC_safe_push (tree, heap, rv->trees, t);
VARRAY_PUSH_INT (rv->first_partition, p); VEC_safe_push (int, heap, rv->first_partition, p);
} }
rv->partition_to_tree_map[p] = VAR_ANN_ROOT_INDEX (ann); rv->partition_to_tree_map[p] = VAR_ANN_ROOT_INDEX (ann);
} }
...@@ -1120,12 +1122,12 @@ type_var_init (var_map map) ...@@ -1120,12 +1122,12 @@ type_var_init (var_map map)
{ {
tv->num_trees++; tv->num_trees++;
VEC_safe_push (tree, heap, tv->trees, t); VEC_safe_push (tree, heap, tv->trees, t);
VARRAY_PUSH_INT (tv->first_partition, p); VEC_safe_push (int, heap, tv->first_partition, p);
} }
else else
{ {
tv->next_partition[p] = VARRAY_INT (tv->first_partition, y); tv->next_partition[p] = VEC_index (int, tv->first_partition, y);
VARRAY_INT (tv->first_partition, y) = p; VEC_replace (int, tv->first_partition, y, p);
} }
tv->partition_to_tree_map[p] = y; tv->partition_to_tree_map[p] = y;
} }
......
...@@ -24,6 +24,7 @@ Boston, MA 02110-1301, USA. */ ...@@ -24,6 +24,7 @@ Boston, MA 02110-1301, USA. */
#define _TREE_SSA_LIVE_H 1 #define _TREE_SSA_LIVE_H 1
#include "partition.h" #include "partition.h"
#include "vecprim.h"
/* Used to create the variable mapping when we go out of SSA form. */ /* Used to create the variable mapping when we go out of SSA form. */
typedef struct _var_map typedef struct _var_map
...@@ -338,7 +339,7 @@ make_live_on_entry (tree_live_info_p live, basic_block bb , int p) ...@@ -338,7 +339,7 @@ make_live_on_entry (tree_live_info_p live, basic_block bb , int p)
typedef struct tree_partition_associator_d typedef struct tree_partition_associator_d
{ {
VEC(tree,heap) *trees; VEC(tree,heap) *trees;
varray_type first_partition; VEC(int,heap) *first_partition;
int *next_partition; int *next_partition;
int *partition_to_tree_map; int *partition_to_tree_map;
int num_trees; int num_trees;
...@@ -384,7 +385,7 @@ tpa_tree (tpa_p tpa, int i) ...@@ -384,7 +385,7 @@ tpa_tree (tpa_p tpa, int i)
static inline int static inline int
tpa_first_partition (tpa_p tpa, int i) tpa_first_partition (tpa_p tpa, int i)
{ {
return VARRAY_INT (tpa->first_partition, i); return VEC_index (int, tpa->first_partition, i);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment