Commit b3bb0eb9 by Jan Hubicka Committed by Jan Hubicka

parser.c (synthesize_implicit_template_parm): Use grow_tree_vec.


	* parser.c (synthesize_implicit_template_parm): Use grow_tree_vec.
	* ggc.h (ggc_internal_cleared_alloc): New macro.
	* vec.h (vec_safe_copy): Handle memory stats.
	* omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
	* target-globals.c (save_target_globals): Likewise.

From-SVN: r207588
parent e2f0f5f7
2014-02-06 Jakub Jelinek <jakub@redhat.com> 2014-02-06 Jan Hubicka <hubicka@ucw.cz>
* ggc.h (ggc_internal_cleared_alloc): New macro.
* vec.h (vec_safe_copy): Handle memory stats.
* omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
* target-globals.c (save_target_globals): Likewise.
2014-02-06 Jan Hubicka <hubicka@ucw.cz>
PR target/60077 PR target/60077
* expr.c (emit_move_resolve_push): Export; be bit more selective * expr.c (emit_move_resolve_push): Export; be bit more selective
......
2014-02-05 Jan Hubicka <hubicka@ucw.cz
* parser.c (synthesize_implicit_template_parm): Use grow_tree_vec.
2014-02-05 Jakub Jelinek <jakub@redhat.com> 2014-02-05 Jakub Jelinek <jakub@redhat.com>
PR c++/58703 PR c++/58703
......
...@@ -31957,7 +31957,7 @@ synthesize_implicit_template_parm (cp_parser *parser) ...@@ -31957,7 +31957,7 @@ synthesize_implicit_template_parm (cp_parser *parser)
{ {
tree& new_parms = INNERMOST_TEMPLATE_PARMS (current_template_parms); tree& new_parms = INNERMOST_TEMPLATE_PARMS (current_template_parms);
int new_parm_idx = TREE_VEC_LENGTH (new_parms); int new_parm_idx = TREE_VEC_LENGTH (new_parms);
new_parms = grow_tree_vec_stat (new_parms, new_parm_idx + 1); new_parms = grow_tree_vec (new_parms, new_parm_idx + 1);
TREE_VEC_ELT (new_parms, new_parm_idx) = parser->implicit_template_parms; TREE_VEC_ELT (new_parms, new_parm_idx) = parser->implicit_template_parms;
} }
......
...@@ -146,6 +146,7 @@ extern size_t ggc_round_alloc_size (size_t requested_size); ...@@ -146,6 +146,7 @@ extern size_t ggc_round_alloc_size (size_t requested_size);
/* Allocates cleared memory. */ /* Allocates cleared memory. */
extern void *ggc_internal_cleared_alloc_stat (size_t MEM_STAT_DECL) extern void *ggc_internal_cleared_alloc_stat (size_t MEM_STAT_DECL)
ATTRIBUTE_MALLOC; ATTRIBUTE_MALLOC;
#define ggc_internal_cleared_alloc(s) ggc_internal_cleared_alloc_stat (s MEM_STAT_INFO)
/* Resize a block. */ /* Resize a block. */
extern void *ggc_realloc_stat (void *, size_t MEM_STAT_DECL); extern void *ggc_realloc_stat (void *, size_t MEM_STAT_DECL);
......
...@@ -10649,7 +10649,7 @@ simd_clone_struct_alloc (int nargs) ...@@ -10649,7 +10649,7 @@ simd_clone_struct_alloc (int nargs)
size_t len = (sizeof (struct cgraph_simd_clone) size_t len = (sizeof (struct cgraph_simd_clone)
+ nargs * sizeof (struct cgraph_simd_clone_arg)); + nargs * sizeof (struct cgraph_simd_clone_arg));
clone_info = (struct cgraph_simd_clone *) clone_info = (struct cgraph_simd_clone *)
ggc_internal_cleared_alloc_stat (len PASS_MEM_STAT); ggc_internal_cleared_alloc (len);
return clone_info; return clone_info;
} }
......
...@@ -79,29 +79,21 @@ save_target_globals (void) ...@@ -79,29 +79,21 @@ save_target_globals (void)
struct target_lower_subreg lower_subreg; struct target_lower_subreg lower_subreg;
} *p; } *p;
p = (struct target_globals_extra *) p = (struct target_globals_extra *)
ggc_internal_cleared_alloc_stat (sizeof (struct target_globals_extra) ggc_internal_cleared_alloc (sizeof (struct target_globals_extra));
PASS_MEM_STAT);
g = (struct target_globals *) p; g = (struct target_globals *) p;
g->flag_state = &p->flag_state; g->flag_state = &p->flag_state;
g->regs = ggc_internal_cleared_alloc_stat (sizeof (struct target_regs) g->regs = ggc_internal_cleared_alloc (sizeof (struct target_regs));
PASS_MEM_STAT);
g->rtl = ggc_alloc_cleared_target_rtl (); g->rtl = ggc_alloc_cleared_target_rtl ();
g->hard_regs g->hard_regs
= ggc_internal_cleared_alloc_stat (sizeof (struct target_hard_regs) = ggc_internal_cleared_alloc (sizeof (struct target_hard_regs));
PASS_MEM_STAT); g->reload = ggc_internal_cleared_alloc (sizeof (struct target_reload));
g->reload = ggc_internal_cleared_alloc_stat (sizeof (struct target_reload) g->expmed = ggc_internal_cleared_alloc (sizeof (struct target_expmed));
PASS_MEM_STAT);
g->expmed = ggc_internal_cleared_alloc_stat (sizeof (struct target_expmed)
PASS_MEM_STAT);
g->optabs = &p->optabs; g->optabs = &p->optabs;
g->libfuncs = ggc_alloc_cleared_target_libfuncs (); g->libfuncs = ggc_alloc_cleared_target_libfuncs ();
g->cfgloop = &p->cfgloop; g->cfgloop = &p->cfgloop;
g->ira = ggc_internal_cleared_alloc_stat (sizeof (struct target_ira) g->ira = ggc_internal_cleared_alloc (sizeof (struct target_ira));
PASS_MEM_STAT); g->ira_int = ggc_internal_cleared_alloc (sizeof (struct target_ira_int));
g->ira_int = ggc_internal_cleared_alloc_stat (sizeof (struct target_ira_int) g->lra_int = ggc_internal_cleared_alloc (sizeof (struct target_lra_int));
PASS_MEM_STAT);
g->lra_int = ggc_internal_cleared_alloc_stat (sizeof (struct target_lra_int)
PASS_MEM_STAT);
g->builtins = &p->builtins; g->builtins = &p->builtins;
g->gcse = &p->gcse; g->gcse = &p->gcse;
g->bb_reorder = &p->bb_reorder; g->bb_reorder = &p->bb_reorder;
......
...@@ -679,9 +679,9 @@ vec_safe_truncate (vec<T, A, vl_embed> *v, unsigned size) ...@@ -679,9 +679,9 @@ vec_safe_truncate (vec<T, A, vl_embed> *v, unsigned size)
/* If SRC is not NULL, return a pointer to a copy of it. */ /* If SRC is not NULL, return a pointer to a copy of it. */
template<typename T, typename A> template<typename T, typename A>
inline vec<T, A, vl_embed> * inline vec<T, A, vl_embed> *
vec_safe_copy (vec<T, A, vl_embed> *src) vec_safe_copy (vec<T, A, vl_embed> *src CXX_MEM_STAT_INFO)
{ {
return src ? src->copy () : NULL; return src ? src->copy (ALONE_PASS_MEM_STAT) : NULL;
} }
/* Copy the elements from SRC to the end of DST as if by memcpy. /* Copy the elements from SRC to the end of DST as if by memcpy.
......
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