summaryrefslogtreecommitdiff
path: root/gcc/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ChangeLog')
-rw-r--r--gcc/ChangeLog498
1 files changed, 498 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 935e3c0f908..d4d54d4cf8d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,501 @@
+2012-11-17 Diego Novillo <dnovillo@google.com>
+
+ VEC API overhaul (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
+
+ * 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_ptr>::exists): New.
+ (vec<T, A, vl_ptr>::is_empty): New.
+ (vec<T, A, vl_ptr>::length): New.
+ (vec<T, A, vl_ptr>::address): New.
+ (vec<T, A, vl_ptr>::operator[]): New.
+ (vec<T, A, vl_ptr>::operator!=): New.
+ (vec<T, A, vl_ptr>::operator==): New.
+ (vec<T, A, vl_ptr>::last): New.
+ (vec<T, A, vl_ptr>::space): New.
+ (vec<T, A, vl_ptr>::iterate): New.
+ (vec<T, A, vl_ptr>::copy): New.
+ (vec<T, A, vl_ptr>::reserve): New.
+ (vec<T, A, vl_ptr>::reserve_exact): New.
+ (vec<T, A, vl_ptr>::splice): New.
+ (vec<T, A, vl_ptr>::safe_splice): New.
+ (vec<T, A, vl_ptr>::quick_push): New.
+ (vec<T, A, vl_ptr>::safe_push): New.
+ (vec<T, A, vl_ptr>::pop): New.
+ (vec<T, A, vl_ptr>::truncate): New.
+ (vec<T, A, vl_ptr>::safe_grow): New.
+ (vec<T, A, vl_ptr>::safe_grow_cleared): New.
+ (vec<T, A, vl_ptr>::quick_grow): New.
+ (vec<T, A, vl_ptr>::quick_grow_cleared): New.
+ (vec<T, A, vl_ptr>::quick_insert): New.
+ (vec<T, A, vl_ptr>::safe_insert): New.
+ (vec<T, A, vl_ptr>::ordered_remove): New.
+ (vec<T, A, vl_ptr>::unordered_remove): New.
+ (vec<T, A, vl_ptr>::block_remove): New.
+ (vec<T, A, vl_ptr>::qsort): New.
+ (vec<T, A, vl_ptr>::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.
+
+2012-11-16 Diego Novillo <dnovillo@google.com>
+
+ * gengtype-lex.l (VEC): Remove.
+ Add characters in the set [\!\>\.-].
+ * gengtype-parse.c (token_names): Remove "VEC".
+ (require_template_declaration): Remove handling of VEC_TOKEN.
+ (type): Likewise.
+ Call create_user_defined_type when parsing GTY((user)).
+ * gengtype-state.c (type_lineloc): handle TYPE_UNDEFINED.
+ (write_state_undefined_type): New.
+ (write_state_type): Call write_state_undefined_type for
+ TYPE_UNDEFINED.
+ (read_state_type): Call read_state_undefined_type for
+ TYPE_UNDEFINED.
+ * gengtype.c (dbgprint_count_type_at): Handle TYPE_UNDEFINED.
+ (create_user_defined_type): Make extern.
+ (type_for_name): Factor out of resolve_typedef.
+ (create_undefined_type): New
+ (resolve_typedef): Call it when we cannot find a previous
+ typedef and the type is not a template.
+ (find_structure): Accept TYPE_UNDEFINED.
+ (set_gc_used_type): Add argument ALLOWED_UNDEFINED_TYPES,
+ default to false.
+ Emit an error for TYPE_UNDEFINED unless LEVEL is GC_UNUSED or
+ ALLOWED_UNDEFINED_TYPES is set.
+ Set ALLOWED_UNDEFINED_TYPES to true for TYPE_USER_STRUCT.
+ (filter_type_name): Accept templates with more than one
+ argument.
+ (output_mangled_typename): Handle TYPE_UNDEFINED
+ (walk_type): Likewise.
+ (write_types_process_field): Likewise.
+ (write_func_for_structure): If CHAIN_NEXT is set, ORIG_S
+ should not be a user-defined type.
+ (write_types_local_user_process_field): Handle TYPE_ARRAY,
+ TYPE_NONE and TYPE_UNDEFINED.
+ (write_types_local_process_field): Likewise.
+ (contains_scalar_p): Return 0 for TYPE_USER_STRUCT.
+ (write_root): Reject user-defined types that are not pointers.
+ Handle TYPE_NONE, TYPE_UNDEFINED, TYPE_UNION, TYPE_LANG_STRUCT
+ and TYPE_PARAM_STRUCT.
+ (output_typename): Handle TYPE_NONE, TYPE_UNDEFINED, and
+ TYPE_ARRAY.
+ (dump_typekind): Handle TYPE_UNDEFINED.
+ * gengtype.h (enum typekind): Add TYPE_UNDEFINED.
+ (create_user_defined_type): Declare.
+ (enum gty_token): Remove VEC_TOKEN.
+
+2012-11-16 Diego Novillo <dnovillo@google.com>
+
+ Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec)
+
+ * coretypes.h (uchar): Define.
+ * alias.c: Use new vec API in vec.h.
+ * asan.c: Likewise.
+ * attribs.c: Likewise.
+ * basic-block.h: Likewise.
+ * bb-reorder.c: Likewise.
+ * builtins.c: Likewise.
+ * calls.c: Likewise.
+ * cfg.c: Likewise.
+ * cfganal.c: Likewise.
+ * cfgcleanup.c: Likewise.
+ * cfgexpand.c: Likewise.
+ * cfghooks.c: Likewise.
+ * cfghooks.h: Likewise.
+ * cfgloop.c: Likewise.
+ * cfgloop.h: Likewise.
+ * cfgloopanal.c: Likewise.
+ * cfgloopmanip.c: Likewise.
+ * cfgrtl.c: Likewise.
+ * cgraph.c: Likewise.
+ * cgraph.h: Likewise.
+ * cgraphclones.c: Likewise.
+ * cgraphunit.c: Likewise.
+ * combine.c: Likewise.
+ * compare-elim.c: Likewise.
+ * coverage.c: Likewise.
+ * cprop.c: Likewise.
+ * data-streamer.h: Likewise.
+ * dbxout.c: Likewise.
+ * dce.c: Likewise.
+ * df-core.c: Likewise.
+ * df-problems.c: Likewise.
+ * df-scan.c: Likewise.
+ * dominance.c: Likewise.
+ * domwalk.c: Likewise.
+ * domwalk.h: Likewise.
+ * dse.c: Likewise.
+ * dwarf2cfi.c: Likewise.
+ * dwarf2out.c: Likewise.
+ * dwarf2out.h: Likewise.
+ * emit-rtl.c: Likewise.
+ * except.c: Likewise.
+ * except.h: Likewise.
+ * expr.c: Likewise.
+ * expr.h: Likewise.
+ * final.c: Likewise.
+ * fold-const.c: Likewise.
+ * function.c: Likewise.
+ * function.h: Likewise.
+ * fwprop.c: Likewise.
+ * gcc.c: Likewise.
+ * gcse.c: Likewise.
+ * genattr.c: Likewise.
+ * genattrtab.c: Likewise.
+ * genautomata.c: Likewise.
+ * genextract.c: Likewise.
+ * genopinit.c: Likewise
+ * ggc-common.c: Likewise.
+ * ggc.h: Likewise.
+ * gimple-low.c: Likewise.
+ * gimple-ssa-strength-reduction.c: Likewise.
+ * gimple-streamer-in.c: Likewise.
+ * gimple.c: Likewise.
+ * gimple.h: Likewise.
+ * gimplify.c: Likewise.
+ * graph.c: Likewise.
+ * graphds.c: Likewise.
+ * graphds.h: Likewise.
+ * graphite-blocking.c: Likewise.
+ * graphite-clast-to-gimple.c: Likewise.
+ * graphite-dependences.c: Likewise.
+ * graphite-interchange.c: Likewise.
+ * graphite-optimize-isl.c: Likewise.
+ * graphite-poly.c: Likewise.
+ * graphite-poly.h: Likewise.
+ * graphite-scop-detection.c: Likewise.
+ * graphite-scop-detection.h: Likewise.
+ * graphite-sese-to-poly.c: Likewise.
+ * graphite.c: Likewise.
+ * godump.c: Likewise.
+ * haifa-sched.c: Likewise.
+ * hw-doloop.c: Likewise.
+ * hw-doloop.h: Likewise.
+ * ifcvt.c: Likewise.
+ * insn-addr.h: Likewise.
+ * ipa-cp.c: Likewise.
+ * ipa-inline-analysis.c: Likewise.
+ * ipa-inline-transform.c: Likewise.
+ * ipa-inline.c: Likewise.
+ * ipa-inline.h: Likewise.
+ * ipa-prop.c: Likewise.
+ * ipa-prop.h: Likewise.
+ * ipa-pure-const.c: Likewise.
+ * ipa-ref-inline.h: Likewise.
+ * ipa-ref.c: Likewise.
+ * ipa-ref.h: Likewise.
+ * ipa-reference.c: Likewise.
+ * ipa-split.c: Likewise.
+ * ipa-utils.c: Likewise.
+ * ipa-utils.h: Likewise.
+ * ipa.c: Likewise.
+ * ira-build.c: Likewise.
+ * ira-color.c: Likewise.
+ * ira-emit.c: Likewise.
+ * ira-int.h: Likewise.
+ * ira.c: Likewise.
+ * loop-invariant.c: Likewise.
+ * loop-unroll.c: Likewise.
+ * lower-subreg.c: Likewise.
+ * lra-lives.c: Likewise.
+ * lra.c: Likewise.
+ * lto-cgraph.c: Likewise.
+ * lto-section-out.c: Likewise.
+ * lto-streamer-in.c: Likewise.
+ * lto-streamer-out.c: Likewise.
+ * lto-streamer.h: Likewise.
+ * lto-symtab.c: Likewise.
+ * mcf.c: Likewise.
+ * modulo-sched.c: Likewise.
+ * omp-low.c: Likewise.
+ * opts-common.c: Likewise.
+ * opts-global.c: Likewise.
+ * opts.c: Likewise.
+ * opts.h: Likewise.
+ * passes.c: Likewise.
+ * predict.c: Likewise.
+ * print-tree.c: Likewise.
+ * profile.c: Likewise.
+ * profile.h: Likewise.
+ * read-rtl.c: Likewise.
+ * ree.c: Likewise.
+ * reg-stack.c: Likewise.
+ * regrename.c: Likewise.
+ * regrename.h: Likewise.
+ * reload.c: Likewise.
+ * reload.h: Likewise.
+ * reload1.c: Likewise.
+ * rtl.h: Likewise.
+ * sched-deps.c: Likewise.
+ * sched-int.h: Likewise.
+ * sdbout.c: Likewise.
+ * sel-sched-dump.c: Likewise.
+ * sel-sched-ir.c: Likewise.
+ * sel-sched-ir.h: Likewise.
+ * sel-sched.c: Likewise.
+ * sese.c: Likewise.
+ * sese.h: Likewise.
+ * statistics.h: Likewise.
+ * stmt.c: Likewise.
+ * stor-layout.c: Likewise.
+ * store-motion.c: Likewise.
+ * tlink.c: Likewise.
+ * toplev.c: Likewise.
+ * trans-mem.c: Likewise.
+ * tree-browser.c: Likewise.
+ * tree-call-cdce.c: Likewise.
+ * tree-cfg.c: Likewise.
+ * tree-cfgcleanup.c: Likewise.
+ * tree-chrec.c: Likewise.
+ * tree-chrec.h: Likewise.
+ * tree-complex.c: Likewise.
+ * tree-data-ref.c: Likewise.
+ * tree-data-ref.h: Likewise.
+ * tree-dfa.c: Likewise.
+ * tree-diagnostic.c: Likewise.
+ * tree-dump.c: Likewise.
+ * tree-eh.c: Likewise.
+ * tree-emutls.c: Likewise.
+ * tree-flow.h: Likewise.
+ * tree-if-conv.c: Likewise.
+ * tree-inline.c: Likewise.
+ * tree-inline.h: Likewise.
+ * tree-into-ssa.c: Likewise.
+ * tree-iterator.c: Likewise.
+ * tree-loop-distribution.c: Likewise.
+ * tree-mudflap.c: Likewise.
+ * tree-optimize.c: Likewise.
+ * tree-outof-ssa.c: Likewise.
+ * tree-parloops.c: Likewise.
+ * tree-phinodes.c: Likewise.
+ * tree-predcom.c: Likewise.
+ * tree-pretty-print.c: Likewise.
+ * tree-scalar-evolution.c: Likewise.
+ * tree-sra.c: Likewise.
+ * tree-ssa-address.c: Likewise.
+ * tree-ssa-alias.c: Likewise.
+ * tree-ssa-ccp.c: Likewise.
+ * tree-ssa-coalesce.c: Likewise.
+ * tree-ssa-dce.c: Likewise.
+ * tree-ssa-dom.c: Likewise.
+ * tree-ssa-forwprop.c: Likewise.
+ * tree-ssa-live.c: Likewise.
+ * tree-ssa-live.h: Likewise.
+ * tree-ssa-loop-im.c: Likewise.
+ * tree-ssa-loop-ivcanon.c: Likewise.
+ * tree-ssa-loop-ivopts.c: Likewise.
+ * tree-ssa-loop-manip.c: Likewise.
+ * tree-ssa-loop-niter.c: Likewise.
+ * tree-ssa-loop-prefetch.c: Likewise.
+ * tree-ssa-math-opts.c: Likewise.
+ * tree-ssa-operands.c: Likewise.
+ * tree-ssa-phiopt.c: Likewise.
+ * tree-ssa-phiprop.c: Likewise.
+ * tree-ssa-pre.c: Likewise.
+ * tree-ssa-propagate.c: Likewise.
+ * tree-ssa-reassoc.c: Likewise.
+ * tree-ssa-sccvn.c: Likewise.
+ * tree-ssa-sccvn.h: Likewise.
+ * tree-ssa-strlen.c: Likewise.
+ * tree-ssa-structalias.c: Likewise.
+ * tree-ssa-tail-merge.c: Likewise.
+ * tree-ssa-threadedge.c: Likewise.
+ * tree-ssa-threadupdate.c: Likewise.
+ * tree-ssa-uncprop.c: Likewise.
+ * tree-ssa-uninit.c: Likewise.
+ * tree-ssa.c: Likewise.
+ * tree-ssanames.c: Likewise.
+ * tree-stdarg.c: Likewise.
+ * tree-streamer-in.c: Likewise.
+ * tree-streamer-out.c: Likewise.
+ * tree-streamer.c: Likewise.
+ * tree-streamer.h: Likewise.
+ * tree-switch-conversion.c: Likewise.
+ * tree-vect-data-refs.c: Likewise.
+ * tree-vect-generic.c: Likewise.
+ * tree-vect-loop-manip.c: Likewise.
+ * tree-vect-loop.c: Likewise.
+ * tree-vect-patterns.c: Likewise.
+ * tree-vect-slp.c: Likewise.
+ * tree-vect-stmts.c: Likewise.
+ * tree-vectorizer.c: Likewise.
+ * tree-vectorizer.h: Likewise.
+ * tree-vrp.c: Likewise.
+ * tree.c: Likewise.
+ * tree.h: Likewise.
+ * value-prof.c: Likewise.
+ * value-prof.h: Likewise.
+ * var-tracking.c: Likewise.
+ * varasm.c: Likewise.
+ * varpool.c: Likewise.
+ * vmsdbgout.c: Likewise.
+ * config/bfin/bfin.c: Likewise.
+ * config/c6x/c6x.c: Likewise.
+ * config/darwin.c: Likewise.
+ * config/i386/i386.c: Likewise.
+ * config/ia64/ia64.c: Likewise.
+ * config/mep/mep.c: Likewise.
+ * config/mips/mips.c: Likewise.
+ * config/pa/pa.c: Likewise.
+ * config/rs6000/rs6000-c.c: Likewise.
+ * config/rs6000/rs6000.c: Likewise.
+ * config/rx/rx.c: Likewise.
+ * config/spu/spu-c.c: Likewise.
+ * config/vms/vms.c: Likewise.
+ * config/vxworks.c: Likewise.
+ * config/epiphany/resolve-sw-modes.c: Likewise.
+
2012-11-17 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/55236