aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/Makefile.in4
-rw-r--r--gcc/function.c19
-rw-r--r--gcc/function.h2
-rw-r--r--gcc/tree-inline.c2
5 files changed, 22 insertions, 14 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d540abd..63ddbf5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -9,6 +9,15 @@
first_partition to VEC(int,heap) *.
(tpa_first_partition): Use VEC instead of VARRAY.
+ * Makefile.in (GTFILES): Move functions.h after tree.h.
+ * function.c (reset_block_changes, record_block_change,
+ check_block_change, free_block_changes): Use VEC instead of
+ VARRAY.
+ * function.h (function): Change the type of
+ ib_boundaries_block to VEC(tree,gc) *.
+ * tree-inline.c (copy_cfg_body): Initialize
+ ib_boundaries_block to NULL instead of (varray_type) 0.
+
2006-04-12 Roger Sayle <roger@eyesopen.com>
* expr.c (emit_group_store): Correct operand order in call to
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 67fdd77..68db99c 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -2803,8 +2803,8 @@ s-constrs-h: $(MD_DEPS) build/genpreds$(build_exeext)
GTFILES = $(srcdir)/input.h $(srcdir)/coretypes.h \
$(CPP_ID_DATA_H) $(host_xm_file_list) \
$(tm_file_list) $(HASHTAB_H) $(SPLAY_TREE_H) $(srcdir)/bitmap.h \
- $(srcdir)/coverage.c $(srcdir)/function.h $(srcdir)/rtl.h \
- $(srcdir)/optabs.h $(srcdir)/tree.h $(srcdir)/libfuncs.h $(SYMTAB_H) \
+ $(srcdir)/coverage.c $(srcdir)/rtl.h \
+ $(srcdir)/optabs.h $(srcdir)/tree.h $(srcdir)/function.h $(srcdir)/libfuncs.h $(SYMTAB_H) \
$(srcdir)/real.h $(srcdir)/varray.h $(srcdir)/insn-addr.h $(srcdir)/hwint.h \
$(srcdir)/ipa-reference.h $(srcdir)/output.h \
$(srcdir)/cselib.h $(srcdir)/basic-block.h $(srcdir)/cgraph.h \
diff --git a/gcc/function.c b/gcc/function.c
index ecdf2823..26c99fa 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -5518,8 +5518,8 @@ reposition_prologue_and_epilogue_notes (rtx f ATTRIBUTE_UNUSED)
void
reset_block_changes (void)
{
- VARRAY_TREE_INIT (cfun->ib_boundaries_block, 100, "ib_boundaries_block");
- VARRAY_PUSH_TREE (cfun->ib_boundaries_block, NULL_TREE);
+ cfun->ib_boundaries_block = VEC_alloc (tree, gc, 100);
+ VEC_quick_push (tree, cfun->ib_boundaries_block, NULL_TREE);
}
/* Record the boundary for BLOCK. */
@@ -5535,13 +5535,12 @@ record_block_change (tree block)
if(!cfun->ib_boundaries_block)
return;
- last_block = VARRAY_TOP_TREE (cfun->ib_boundaries_block);
- VARRAY_POP (cfun->ib_boundaries_block);
+ last_block = VEC_pop (tree, cfun->ib_boundaries_block);
n = get_max_uid ();
- for (i = VARRAY_ACTIVE_SIZE (cfun->ib_boundaries_block); i < n; i++)
- VARRAY_PUSH_TREE (cfun->ib_boundaries_block, last_block);
+ for (i = VEC_length (tree, cfun->ib_boundaries_block); i < n; i++)
+ VEC_safe_push (tree, gc, cfun->ib_boundaries_block, last_block);
- VARRAY_PUSH_TREE (cfun->ib_boundaries_block, block);
+ VEC_safe_push (tree, gc, cfun->ib_boundaries_block, block);
}
/* Finishes record of boundaries. */
@@ -5556,17 +5555,17 @@ check_block_change (rtx insn, tree *block)
{
unsigned uid = INSN_UID (insn);
- if (uid >= VARRAY_ACTIVE_SIZE (cfun->ib_boundaries_block))
+ if (uid >= VEC_length (tree, cfun->ib_boundaries_block))
return;
- *block = VARRAY_TREE (cfun->ib_boundaries_block, uid);
+ *block = VEC_index (tree, cfun->ib_boundaries_block, uid);
}
/* Releases the ib_boundaries_block records. */
void
free_block_changes (void)
{
- cfun->ib_boundaries_block = NULL;
+ VEC_free (tree, gc, cfun->ib_boundaries_block);
}
/* Returns the name of the current function. */
diff --git a/gcc/function.h b/gcc/function.h
index 282e04c..859709f 100644
--- a/gcc/function.h
+++ b/gcc/function.h
@@ -346,7 +346,7 @@ struct function GTY(())
location_t function_end_locus;
/* Array mapping insn uids to blocks. */
- struct varray_head_tag *ib_boundaries_block;
+ VEC(tree,gc) *ib_boundaries_block;
/* The variables unexpanded so far. */
tree unexpanded_var_list;
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c
index 3e35842..a6ee6ed 100644
--- a/gcc/tree-inline.c
+++ b/gcc/tree-inline.c
@@ -893,7 +893,7 @@ copy_cfg_body (copy_body_data * id, gcov_type count, int frequency,
*new_cfun = *DECL_STRUCT_FUNCTION (callee_fndecl);
new_cfun->cfg = NULL;
new_cfun->decl = new_fndecl = copy_node (callee_fndecl);
- new_cfun->ib_boundaries_block = (varray_type) 0;
+ new_cfun->ib_boundaries_block = NULL;
DECL_STRUCT_FUNCTION (new_fndecl) = new_cfun;
push_cfun (new_cfun);
init_empty_tree_cfg ();