On Thu, Nov 15, 2012 at 1:53 PM, Diego Novillo <dnovi...@google.com> wrote: > > 2012-11-15 Diego Novillo <dnovi...@google.com> > > * vec.c (register_overhead): Convert it into > member function of vec_prefix. > (release_overhead): Likewise. > (calculate_allocation): Likewise. > (vec_heap_free): Remove. > (vec_gc_o_reserve_1): Remove. > (vec_heap_o_reserve_1): Remove. > (vec_stack_o_reserve_1): Remove. > (vec_stack_o_reserve_exact): Remove. > (register_stack_vec): New. > (stack_vec_register_index): New. > (unregister_stack_vec): New. > (vec_assert_fail): Remove. > * vec.h: Conditionally include ggc.h. Document conditional > hackery. > Update top-level documentation. > (ALONE_VEC_CHECK_INFO): Remove. > (VEC_CHECK_INFO): Remove. > (ALONE_VEC_CHECK_DECL): Remove. > (VEC_CHECK_DECL): Remove. > (ALONE_VEC_CHECK_PASS): Remove. > (VEC_CHECK_PASS): Remove. > (VEC_ASSERT): Remove. > (vec_prefix): Add friends va_gc, va_gc_atomic, va_heap and > va_stack. > Mark fields alloc_ and num_ as protected. > (struct vec_t): Remove. Remove all function members. > (struct vl_embed): Declare. > (struct vl_ptr): Declare. > (free): Remove. > (reserve_exact): Remove. > (reserve): Remove. > (safe_splice): Remove. > (safe_push): Remove. > (safe_grow): Remove. > (safe_grow_cleared): Remove. > (safe_insert): Remove. > (DEF_VEC_I): Remove. > (DEF_VEC_ALLOC_I): Remove. > (DEF_VEC_P): Remove. > (DEF_VEC_ALLOC_P): Remove. > (DEF_VEC_O): Remove. > (DEF_VEC_ALLOC_O): Remove. > (DEF_VEC_ALLOC_P_STACK): Remove. > (DEF_VEC_ALLOC_O_STACK): Remove. > (DEF_VEC_ALLOC_I_STACK): Remove. > (DEF_VEC_A): Remove. > (DEF_VEC_ALLOC_A): Remove. > (vec_stack_p_reserve_exact_1): Remove. > (vec_stack_o_reserve): Remove. > (vec_stack_o_reserve_exact): Remove. > (VEC_length): Remove. > (VEC_empty): Remove. > (VEC_address): Remove. > (vec_address): Remove. > (VEC_last): Remove. > (VEC_index): Remove. > (VEC_iterate): Remove. > (VEC_embedded_size): Remove. > (VEC_embedded_init): Remove. > (VEC_free): Remove. > (VEC_copy): Remove. > (VEC_space): Remove. > (VEC_reserve): Remove. > (VEC_reserve_exact): Remove. > (VEC_splice): Remove. > (VEC_safe_splice): Remove. > (VEC_quick_push): Remove. > (VEC_safe_push): Remove. > (VEC_pop): Remove. > (VEC_truncate): Remove. > (VEC_safe_grow): Remove. > (VEC_replace): Remove. > (VEC_quick_insert): Remove. > (VEC_safe_insert): Remove. > (VEC_ordered_remove): Remove. > (VEC_unordered_remove): Remove. > (VEC_block_remove): Remove. > (VEC_lower_bound): Remove. > (VEC_alloc): Remove. > (VEC_qsort): Remove. > > (va_heap): Declare. > (va_heap::default_layout): New typedef to vl_ptr. > (va_heap::reserve): New. > (va_heap::release): New. > (va_gc): Declare. > (va_gc::default_layout): New typedef to vl_embed. > (va_gc::reserve): New. > (va_gc::release): New. > (va_gc_atomic): Declare. Inherit from va_gc. > (va_stack): Declare. > (va_stack::default_layout): New typedef to vl_ptr. > (va_stack::alloc): New. > (va_stack::reserve): New. > (va_stack::release): New. > (register_stack_vec): Declare. > (stack_vec_register_index): Declare. > (unregister_stack_vec): Declare. > > (vec<T, A = va_heap, L = typename A::default_layout>): Declare > empty vec template. > (vec<T, A, vl_embed>): Partial specialization for embedded > layout. > (vec<T, A, vl_embed>::allocated): New. > (vec<T, A, vl_embed>::length): New. > (vec<T, A, vl_embed>::is_empty): New. > (vec<T, A, vl_embed>::address): New. > (vec<T, A, vl_embed>::operator[]): New. > (vec<T, A, vl_embed>::last New. > (vec<T, A, vl_embed>::space): New. > (vec<T, A, vl_embed>::iterate): New. > (vec<T, A, vl_embed>::iterate): New. > (vec<T, A, vl_embed>::copy): New. > (vec<T, A, vl_embed>::splice): New. > (vec<T, A, vl_embed>::quick_push New. > (vec<T, A, vl_embed>::pop New. > (vec<T, A, vl_embed>::truncate): New. > (vec<T, A, vl_embed>::quick_insert): New. > (vec<T, A, vl_embed>::ordered_remove): New. > (vec<T, A, vl_embed>::unordered_remove): New. > (vec<T, A, vl_embed>::block_remove): New. > (vec<T, A, vl_embed>::qsort): New. > (vec<T, A, vl_embed>::lower_bound): New. > (vec<T, A, vl_embed>::embedded_size): New. > (vec<T, A, vl_embed>::embedded_init): New. > (vec<T, A, vl_embed>::quick_grow): New. > (vec<T, A, vl_embed>::quick_grow_cleared): New. > (vec_safe_space): New. > (vec_safe_length): New. > (vec_safe_address): New. > (vec_safe_is_empty): New. > (vec_safe_reserve): New. > (vec_safe_reserve_exact): New. > (vec_alloc): New. > (vec_free): New. > (vec_safe_grow): New. > (vec_safe_grow_cleared): New. > (vec_safe_iterate): New. > (vec_safe_push): New. > (vec_safe_insert): New. > (vec_safe_truncate): New. > (vec_safe_copy): New. > (vec_safe_splice): New. > > (vec<T, A, vl_ptr>): New partial specialization for the space > efficient layout. > (vec<T, A, vl_embed>::exists): New. > (vec<T, A, vl_embed>::is_empty): New. > (vec<T, A, vl_embed>::length): New. > (vec<T, A, vl_embed>::address): New. > (vec<T, A, vl_embed>::operator[]): New. > (vec<T, A, vl_embed>::operator!=): New. > (vec<T, A, vl_embed>::operator==): New. > (vec<T, A, vl_embed>::last New. > (vec<T, A, vl_embed>::space): New. > (vec<T, A, vl_embed>::iterate): New. > (vec<T, A, vl_embed>::copy): New. > (vec<T, A, vl_embed>::reserve): New. > (vec<T, A, vl_embed>::reserve_exact): New. > (vec<T, A, vl_embed>::splice): New. > (vec<T, A, vl_embed>::safe_splice): New. > (vec<T, A, vl_embed>::quick_push): New. > (vec<T, A, vl_embed>::safe_push): New. > (vec<T, A, vl_embed>::pop New. > (vec<T, A, vl_embed>::truncate): New. > (vec<T, A, vl_embed>::safe_grow): New. > (vec<T, A, vl_embed>::safe_grow_cleared): New. > (vec<T, A, vl_embed>::quick_grow): New. > (vec<T, A, vl_embed>::quick_grow_cleared): New. > (vec<T, A, vl_embed>::quick_insert): New. > (vec<T, A, vl_embed>::safe_insert): New. > (vec<T, A, vl_embed>::ordered_remove): New. > (vec<T, A, vl_embed>::unordered_remove): New. > (vec<T, A, vl_embed>::block_remove): New. > (vec<T, A, vl_embed>::qsort): New. > (vec<T, A, vl_embed>::lower_bound): New. > (vec_stack_alloc): Define. > (FOR_EACH_VEC_SAFE_ELT): Define. > * vecir.h: Remove. Update all users. > * vecprim.h: Remove. Update all users. > Move uchar to coretypes.h. > > * Makefile.in (VEC_H): Add $(GGC_H). > Remove vecir.h and vecprim.h dependencies everywhere.
This looks OK to me. Ian