summaryrefslogtreecommitdiff
path: root/gcc/var-tracking.c
diff options
context:
space:
mode:
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>2013-10-28 20:03:46 +0000
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>2013-10-28 20:03:46 +0000
commitd70aebca586f217a3258705fd852a978404ee6fe (patch)
tree938f27ac3813c8dca626ab865ab187f166eab2ea /gcc/var-tracking.c
parent76962d3924cc7215d51bc113fb94c2a0a705dd3e (diff)
downloadgcc-d70aebca586f217a3258705fd852a978404ee6fe.tar.gz
* df-scan.c (df_collection_rec): Adjust.
(copy_defs): New constant. (copy_uses): Likewise. (copy_eq_uses): Likewise. (copy_mw): Likewise. (copy_all): Likewise. (df_insn_rescan): Adjust. (df_notes_rescan): Likewise. (df_swap_refs): Likewise. (df_sort_and_compress_refs): Likewise. (df_sort_and_compress_mws): Likewise. (df_install_refs): Likewise. (df_install_mws): Likewise. (df_refs_add_to_chains): Add flags parameter controlling which vectors are coppied. (df_bb_refs_record): Adjust. (df_record_entry_block_defs): Likewise. (df_record_exit_block_defs): Likewise. (df_refs_verify): Likewise. (df_mws_verify): Likewise. (df_insn_refs_verify): Likewise. (df_bb_verify): Likewise. * ipa-pure-const.c (finish_state): Remove. (propagate): Adjust. * tree-data-ref.c tree-ssa-alias.c tree-ssa-loop-ivcanon.c tree-ssa-threadedge.c tree-vect-loop-manip.c tree-vect-slp.c var-tracking.c: Adjust. * vec.c (stack_vecs): Remove. (register_stack_vec): Likewise. (stack_vec_register_index): Likewise. (unregister_stack_vec): Likewise. * vec.h (struct va_stack): Remove. (struct vec<T, A, vl_ptr>): Specialize as struct vec<T, va_heap, vl_ptr> instead since va_heap is the only allocation strategy compatable with the vl_ptr layout. (struct vec<T, va_gc, vl_ptr>): Remove because it now gets an empty specialization anyway. (class stack_vec): New class. (vec_stack_alloc): Remove. (vec<T, va_heap, vl_ptr>::using_auto_storage): New method. * gcc-interface/decl.c (components_to_record): Adjust. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204137 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/var-tracking.c')
-rw-r--r--gcc/var-tracking.c26
1 files changed, 10 insertions, 16 deletions
diff --git a/gcc/var-tracking.c b/gcc/var-tracking.c
index f957c0c52ac..8b07f9fbf9f 100644
--- a/gcc/var-tracking.c
+++ b/gcc/var-tracking.c
@@ -7907,7 +7907,7 @@ struct expand_loc_callback_data
/* Stack of values and debug_exprs under expansion, and their
children. */
- vec<rtx, va_stack> expanding;
+ stack_vec<rtx, 4> expanding;
/* Stack of values and debug_exprs whose expansion hit recursion
cycles. They will have VALUE_RECURSED_INTO marked when added to
@@ -7915,7 +7915,7 @@ struct expand_loc_callback_data
resolves to a valid location. So, if the flag remains set at the
end of the search, we know no valid location for this one can
possibly exist. */
- vec<rtx, va_stack> pending;
+ stack_vec<rtx, 4> pending;
/* The maximum depth among the sub-expressions under expansion.
Zero indicates no expansion so far. */
@@ -8417,11 +8417,11 @@ vt_expand_loc_callback (rtx x, bitmap regs,
This function performs this finalization of NULL locations. */
static void
-resolve_expansions_pending_recursion (vec<rtx, va_stack> pending)
+resolve_expansions_pending_recursion (vec<rtx, va_heap> *pending)
{
- while (!pending.is_empty ())
+ while (!pending->is_empty ())
{
- rtx x = pending.pop ();
+ rtx x = pending->pop ();
decl_or_value dv;
if (!VALUE_RECURSED_INTO (x))
@@ -8441,8 +8441,6 @@ resolve_expansions_pending_recursion (vec<rtx, va_stack> pending)
do \
{ \
(d).vars = (v); \
- vec_stack_alloc (rtx, (d).expanding, 4); \
- vec_stack_alloc (rtx, (d).pending, 4); \
(d).depth.complexity = (d).depth.entryvals = 0; \
} \
while (0)
@@ -8450,7 +8448,7 @@ resolve_expansions_pending_recursion (vec<rtx, va_stack> pending)
#define FINI_ELCD(d, l) \
do \
{ \
- resolve_expansions_pending_recursion ((d).pending); \
+ resolve_expansions_pending_recursion (&(d).pending); \
(d).pending.release (); \
(d).expanding.release (); \
\
@@ -8744,7 +8742,7 @@ emit_note_insn_var_location (variable_def **varp, emit_note_data *data)
int
var_track_values_to_stack (variable_def **slot,
- vec<rtx, va_stack> *changed_values_stack)
+ vec<rtx, va_heap> *changed_values_stack)
{
variable var = *slot;
@@ -8779,7 +8777,7 @@ remove_value_from_changed_variables (rtx val)
static void
notify_dependents_of_changed_value (rtx val, variable_table_type htab,
- vec<rtx, va_stack> *changed_values_stack)
+ vec<rtx, va_heap> *changed_values_stack)
{
variable_def **slot;
variable var;
@@ -8864,13 +8862,11 @@ process_changed_values (variable_table_type htab)
{
int i, n;
rtx val;
- vec<rtx, va_stack> changed_values_stack;
-
- vec_stack_alloc (rtx, changed_values_stack, 20);
+ stack_vec<rtx, 20> changed_values_stack;
/* Move values from changed_variables to changed_values_stack. */
changed_variables
- .traverse <vec<rtx, va_stack>*, var_track_values_to_stack>
+ .traverse <vec<rtx, va_heap>*, var_track_values_to_stack>
(&changed_values_stack);
/* Back-propagate change notifications in values while popping
@@ -8891,8 +8887,6 @@ process_changed_values (variable_table_type htab)
n--;
}
}
-
- changed_values_stack.release ();
}
/* Emit NOTE_INSN_VAR_LOCATION note for each variable from a chain