1. 10 Jan, 2013 1 commit
  2. 04 Jan, 2013 1 commit
  3. 03 Jan, 2013 1 commit
    • gcc.c (process_command): Update copyright notice dates. · df8e2b4f
      	* gcc.c (process_command): Update copyright notice dates.
      	* gcov.c (print_version): Likewise.
      	* gcov-dump.c (print_version): Likewise.
      
      	* gfortranspec.c (lang_specific_driver): Update copyright notice
      	dates.
      
      	* jcf-dump.c (version): Update copyright notice dates.
      
      	* mf-runtime.c (__mf_usage): Update copyright notice dates.
      
      	* gnu/java/rmi/registry/RegistryImpl.java (version): Update
      	copyright notice dates.
      	* tools/gnu/classpath/tools/orbd/Main.java (run): Likewise.
      
      	* gnu/gcj/convert/Convert.java (version): Update copyright notice
      	dates.
      	* gnu/gcj/tools/gcj_dbtool/Main.java (main): Likewise.
      
      From-SVN: r194838
      Jakub Jelinek committed
  4. 18 Nov, 2012 1 commit
    • This patch rewrites the old VEC macro-based interface into a new one based on… · 9771b263
      This patch rewrites the old VEC macro-based interface into a new one based on the template class 'vec'.
      
      This patch rewrites the old VEC macro-based interface into a new one
      based on the template class 'vec'.  The user-visible changes are
      described in http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec.
      
      I have tested the patch pretty extensively:
      
      - Regular bootstraps on x86_64, ppc, ia64, sparc and hppa.
      - Bootstraps with --enable-checking=release
      - Bootstraps with --enable-checking=gc,gcac
      - Basic builds on all targets (using contrib/config-list.mk).
      
      We no longer access the vectors via VEC_* macros.  The pattern is
      "VEC_operation (T, A, V, args)" becomes "V.operation (args)".
      
      The only thing I could not do is create proper ctors and dtors for the
      vec class.  Since these vectors are stored in unions, we
      have to keep them as PODs (C++03 does not allow non-PODs in unions).
      
      This means that creation and destruction must be explicit.  There is a
      new method vec<type, allocation, layout>::create() and another vec<type,
      allocation, layout>::destroy() to allocate the internal vector.
      
      For vectors that must be pointers, there is a family of free functions
      that implement the operations that need to tolerate NULL vectors.
      These functions all start with the prefix 'vec_safe_'.  See the wiki
      page for details.
      
      The gengtype change removes the special handling for VEC() that used
      to exist in gengtype. Additionally, it allows gengtype to recognize
      templates of more than one argument and introduces the concept of an
      undefined type (useful for template arguments that may or may not be
      types).
      
      When a TYPE_UNDEFINED is reached, gengtype will ignore it if it
      happens inside a type marked with GTY((user)).  Otherwise, it will
      emit an error.
      
      Finally, gengtype rejects root types marked GTY((user)) that are not
      first class pointers.
      
      2012-11-16  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.
      
      From-SVN: r193595
      Diego Novillo committed
  5. 14 Nov, 2012 1 commit
  6. 25 Oct, 2012 1 commit
    • Change hash_table to support a comparator type different from the value type… · 5831a5f0
      Change hash_table to support a comparator type different from the value type stored in the hash table.
      
      Change hash_table to support a comparator type different from the
      value type stored in the hash table.  The 'find' functions now may
      take a different type from the value type.  This requires introducing
      a second typedef into the Descriptor conceptual type.  Change the
      Descriptor concept to use typedefs value_type and compare_type instead
      of T.  Change all users to match.
      
      Add usage documentation to hash-table.h.
      
      Tested on x86-64.
      
      
      Index: gcc/ChangeLog
      
      2012-10-25  Lawrence Crowl  <crowl@google.com>
      
      	* hash-table.h: Add usage documentation.
      	(template struct typed_free_remove): Clarify documentation. 
      	Rename template parameter.
      	(struct typed_noop_remove): Likewise.
      	(descriptor concept): Change typedef T to value_type.
      	Add typedef compare_type.  Use more precise template parameter name,
      	Descriptor instead of Descr.  Update users to match.
      	(struct hash_table): Change 'find' parameters to use compare_type
      	instead of the value type.
      
      From-SVN: r192823
      Lawrence Crowl committed
  7. 09 Oct, 2012 1 commit
    • Change more non-GTY hash tables to use the new type-safe template hash table. · 703c8606
      Constify member function parameters that can be const.
      Correct a couple of expressions in formerly uninstantiated templates.
      
      The new code is 0.362% faster in bootstrap, with a 99.5% confidence of
      being faster.
      
      Tested on x86-64.
      
      
      Index: gcc/java/ChangeLog
      
      2012-10-01  Lawrence Crowl  <crowl@google.com>
      
      	* Make-lang.in (JAVA_OBJS): Add dependence on hash-table.o.
      	(JCFDUMP_OBJS): Add dependence on hash-table.o.
      	(jcf-io.o): Add dependence on hash-table.h.
      	* jcf-io.c (memoized_class_lookups): Change to use type-safe hash table.
      
      Index: gcc/c/ChangeLog
      
      2012-10-09  Lawrence Crowl  <crowl@google.com>
      
      	* Make-lang.in (c-decl.o): Add dependence on hash-table.h.
      	* c-decl.c (detect_field_duplicates_hash): Change to new type-safe
      	hash table.
      
      Index: gcc/objc/ChangeLog
      
      2012-10-01  Lawrence Crowl  <crowl@google.com>
      
      	* Make-lang.in (OBJC_OBJS): Add dependence on hash-table.o.
      	(objc-act.o): Add dependence on hash-table.h.
      	* objc-act.c (objc_detect_field_duplicates): Change to new type-safe
      	hash table.
      
      Index: gcc/ChangeLog
      
      2012-10-09  Lawrence Crowl  <crowl@google.com>
      
      	* Makefile.in (fold-const.o): Add depencence on hash-table.h.
      	(dse.o): Likewise.
      	(cfg.o): Likewise.
      	* fold-const.c (fold_checksum_tree): Change to new type-safe hash table.
      	* (print_fold_checksum): Likewise.
      	* cfg.c (var bb_original): Likewise.
      	* (var bb_copy): Likewise.
      	* (var loop_copy): Likewise.
      	* hash-table.h (template hash_table): Constify parameters for find...
      	and remove_elt... member functions.
              (hash_table::empty) Correct size expression.
              (hash_table::clear_slot) Correct deleted entry assignment.
      	* dse.c (var rtx_group_table): Change to new type-safe hash table.
      
      Index: gcc/cp/ChangeLog
      
      2012-10-09  Lawrence Crowl  <crowl@google.com>
      
      	* Make-lang.in (class.o): Add dependence on hash-table.h.
      	(tree.o): Likewise.
      	(semantics.o): Likewise.
      	* class.c (fixed_type_or_null): Change to new type-safe hash table.
      	* tree.c (verify_stmt_tree): Likewise.
      	(verify_stmt_tree_r): Likewise.
      	* semantics.c (struct nrv_data): Likewise.
      
      From-SVN: r192273
      Lawrence Crowl committed
  8. 24 Sep, 2012 1 commit
    • Finish conversion of uses of double_int to the new API. · 9be0ac8c
      Some old functionality required new interfaces, and these have been added to
      double-int.[hc]:
      
        double_int::from_pair - static constructor function
        wide_mul_with_sign - double-wide multiply instruction
        sub_with_overflow - subtraction with overlow testing
        neg_with_overflow - negation with overlow testing
        divmod_with_overflow - div and mod with overlow testing
      
      This patch corrects the bootstrap problem on HPPA, via the addition of
      sub_with_overflow.  (The overflow properties of negation and addition are
      different from subtraction.)
      
      The prior two generations of the interface have been removed.
      
      Some of these old interfaces are still used as static implementation in
      double-int.c.
      
      The changed compiler appears 0.321% faster with 80% confidence of being faster.
      
      Tested on x86_64, HPPA, and SPARC.  However, there are changes to the avr
      config files, and I have not tested those.
      
      
      Index: gcc/java/ChangeLog
      
      2012-09-24  Lawrence Crowl  <crowl@google.com>
      
      	* decl.c (java_init_decl_processing): Change to new double_int API.
      	* jcf-parse.c (get_constant): Likewise.
      	* boehm.c (mark_reference_fields): Likewise.
      	(get_boehm_type_descriptor): Likewise.
      
      Index: gcc/ChangeLog
      
      2012-09-24  Lawrence Crowl  <crowl@google.com>
      
      	* double-int.h (double_int::from_pair): New.
      	(double_int::wide_mul_with_sign): New.
      	(double_int::sub_with_overflow): New.
      	(double_int::neg_with_overflow): New.
      	(double_int::divmod_with_overflow): New.
      	(shwi_to_double_int): Remove.
      	(uhwi_to_double_int): Remove.
      	(double_int_to_shwi): Remove.
      	(double_int_to_uhwi): Remove.
      	(double_int_fits_in_uhwi_p): Remove.
      	(double_int_fits_in_shwi_p): Remove.
      	(double_int_fits_in_hwi_p): Remove.
      	(double_int_mul): Remove.
      	(double_int_mul_with_sign): Remove.
      	(double_int_add): Remove.
      	(double_int_sub): Remove.
      	(double_int_neg): Remove.
      	(double_int_div): Remove.
      	(double_int_sdiv): Remove.
      	(double_int_udiv): Remove.
      	(double_int_mod): Remove.
      	(double_int_smod): Remove.
      	(double_int_umod): Remove.
      	(double_int_divmod): Remove.
      	(double_int_sdivmod): Remove.
      	(double_int_udivmod): Remove.
      	(double_int_multiple_of): Remove.
      	(double_int_setbit): Remove.
      	(double_int_ctz): Remove.
      	(double_int_not): Remove.
      	(double_int_ior): Remove.
      	(double_int_and): Remove.
      	(double_int_and_not): Remove.
      	(double_int_xor): Remove.
      	(double_int_lshift): Remove.
      	(double_int_rshift): Remove.
      	(double_int_lrotate): Remove.
      	(double_int_rrotate): Remove.
      	(double_int_negative_p): Remove.
      	(double_int_cmp): Remove.
      	(double_int_scmp): Remove.
      	(double_int_ucmp): Remove.
      	(double_int_max): Remove.
      	(double_int_smax): Remove.
      	(double_int_umax): Remove.
      	(double_int_min): Remove.
      	(double_int_smin): Remove.
      	(double_int_umin): Remove.
      	(double_int_ext): Remove.
      	(double_int_sext): Remove.
      	(double_int_zext): Remove.
      	(double_int_mask): Remove.
      	(double_int_max_value): Remove.
      	(double_int_min_value): Remove.
      	(double_int_zero_p): Remove.
      	(double_int_one_p): Remove.
      	(double_int_minus_one_p): Remove.
      	(double_int_equal_p): Remove.
      	(double_int_popcount): Remove.
      	(extern add_double_with_sign): Remove.
      	(#define add_double): Remove.
      	(extern neg_double): Remove.
      	(extern mul_double_with_sign): Remove.
      	(extern mul_double_wide_with_sign): Remove.
      	(#define mul_double): Remove.
      	(extern lshift_double): Remove.
      	(extern div_and_round_double): Remove.
      	* double-int.c (add_double_with_sign): Make static.
      	(#defined add_double): Localized from header.
      	(neg_double): Make static.
      	(mul_double_with_sign): Make static.
      	(mul_double_wide_with_sign): Make static.
      	(#defined mul_double): Localized from header.
      	(lshift_double): Make static.
      	(div_and_round_double): Make static.
      	(double_int::wide_mul_with_sign): New.
      	(double_int::sub_with_overflow): New.
      	(double_int::neg_with_overflow): New.
      	(double_int::divmod_with_overflow): New.
      	* emit-rtl.c (init_emit_once): Change to new double_int API.
      	* explow.c (plus_constant): Likewise.
      	* expmed.c (choose_multiplier): Likewise.
      	* fold-const.c (#define OVERFLOW_SUM_SIGN): Remove.
      	(int_const_binop_1): Change to new double_int API.
      	(fold_div_compare): Likewise.
      	(maybe_canonicalize_comparison): Likewise.
      	(pointer_may_wrap_p): Likewise.
      	(fold_negate_const): Likewise.
      	(fold_abs_const): Likewise.
      	* simplify-rtx.c (simplify_const_unary_operation): Likewise.
      	(simplify_const_binary_operation): Likewise.
      	* tree-chrec.c (tree_fold_binomial): Likewise.
      	* tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
      	* config/sparc/sparc.c (sparc_fold_builtin): Likewise.
      	* config/avr/avr.c (avr_double_int_push_digit): Likewise.
      	(avr_map): Likewise.
      	(avr_map_decompose): Likewise.
      	(avr_out_insert_bits): Likewise.
      
      Index: gcc/cp/ChangeLog
      
      2012-09-24  Lawrence Crowl  <crowl@google.com>
      
      	* init.c (build_new_1): Change to new double_int API.
      	* decl.c (build_enumerator): Likewise.
      	* typeck2.c (process_init_constructor_array): Likewise.
      	* mangle.c (write_array_type): Likewise.
      
      Index: gcc/fortran/ChangeLog
      
      2012-09-24  Lawrence Crowl  <crowl@google.com>
      
      	* trans-expr.c (gfc_conv_cst_int_power): Change to new double_int API.
      	* target-memory.c (gfc_interpret_logical): Likewise.
      
      From-SVN: r191675
      Lawrence Crowl committed
  9. 11 Sep, 2012 1 commit
    • Remove unnecessary VEC function overloads. · f32682ca
      Several VEC member functions that accept an element 'T' used to have
      two overloads: one taking 'T', the second taking 'T *'.
      
      This used to be needed because of the interface dichotomy between
      vectors of objects and vectors of pointers.  In the past, vectors of
      pointers would use pass-by-value semantics, but vectors of objects
      would use pass-by-reference semantics.  This is no longer necessary,
      but the distinction had remained.
      
      The main side-effect of this change is some code reduction in code
      that manipulates vectors of objects.  For instance,
      
      -  struct iterator_use *iuse;
      -
      -  iuse = VEC_safe_push (iterator_use, heap, iterator_uses, NULL);
      -  iuse->iterator = iterator;
      -  iuse->ptr = ptr;
      +  struct iterator_use iuse = {iterator, ptr};
      +  VEC_safe_push (iterator_use, heap, iterator_uses, iuse);
      
      Compile time performance was not affected.
      
      Tested on x86_64 and ppc64.
      
      Also built all-gcc on all targets using VEC routines: arm, bfin, c6x,
      epiphany, ia64, mips, sh, spu, and vms.
      
      2012-09-10  Diego Novillo  <dnovillo@google.com>
      
      	* vec.h (vec_t::quick_push): Remove overload that accepts 'T *'.
      	Update all users.
      	(vec_t::safe_push): Likewise.
      	(vec_t::quick_insert): Likewise.
      	(vec_t::lower_bound): Likewise.
      	(vec_t::safe_insert): Likewise.
      	(vec_t::replace): Change second argument to 'T &'.
      
      From-SVN: r191165
      Diego Novillo committed
  10. 15 Aug, 2012 1 commit
    • backport: As described in http://gcc.gnu.org/ml/gcc/2012-08/msg00015.html... · 0823efed
      Merge from cxx-conversion branch (http://gcc.gnu.org/wiki/cxx-conversion).
      
      As described in http://gcc.gnu.org/ml/gcc/2012-08/msg00015.html, this patch
      changes the default bootstrap process so that stage 1 always builds with a C++
      compiler.
      
      Other than the bootstrap change, the patch makes no functional changes to the
      compiler.  Everything should build as it does now in trunk.  The main
      changes in this patch are:
      
      1- Configuration changes.
      2- Re-write of VEC.
      3- Re-write of gengtype to support C++ templates and
         user-provided marking functions.
      4- New hash table class.
      5- Re-write double_int.
      6- Implement tree macros as inline functions so they can be
         called from gdb.
      
      As discussed before, several of these changes do not fully change
      the call sites to use the new APIs.
      
      The bootstrap changes have already been tested on a wide range of
      targets (http://gcc.gnu.org/wiki/CppBuildStatus).  Additionally,
      I have tested the merged trunk on: x86_64-unknown-linux-gnu,
      mips64el-unknown-linux-gnu, powerpc64-unknown-linux-gnu,
      i686-pc-linux-gnu, and ia64-unknown-linux-gnu.
      
      ChangeLog
      2012-08-14   Diego Novillo  <dnovillo@google.com>
      
      	Merge from cxx-conversion branch.
      
      	* Makefile.tpl (STAGE[+id+]_CXXFLAGS): Remove
      	POSTSTAGE1_CONFIGURE_FLAGS.
      	* Makefile.in: Regenerate.
      	* configure.ac (ENABLE_BUILD_WITH_CXX): Remove.  Update all users.
      	Force C++ when bootstrapping.
      	* configure: Regenerate.
      
      
      libcpp/ChangeLog
      2012-08-14   Diego Novillo  <dnovillo@google.com>
      
      	Merge from cxx-conversion branch.  Configury.
      
      	* Makefile.in: Remove all handlers of ENABLE_BUILD_WITH_CXX.
      	* configure.ac: Likewise.
      	* configure: Regenerate.
      
      2012-08-14   Lawrence Crowl  <crowl@google.com>
      
      	Merge from cxx-conversion branch.  New C++ hash table.
      
      	* include/symtab.h (typedef struct ht hash_table): Change the typedef
      	name to cpp_hash_table.  Update all users of the typedef.
      
      gcc/ChangeLog
      2012-08-14   Diego Novillo  <dnovillo@google.com>
      
      	Merge from cxx-conversion branch.  Configury.
      
      	* configure.ac (CXX_FOR_BUILD): Define and substitute.
      	(BUILD_CXXFLAGS): Define.
      	Remove all handlers of ENABLE_BUILD_WITH_CXX.
      	Force all build to be with C++.
      	* Makefile.in (BUILD_CXXFLAGS): Use it.
      	Remove all handlers of ENABLE_BUILD_WITH_CXX.
      	* configure: Regenerate.
      	* config.in: Regenerate.
      	* doc/install.texi: Remove documentation for --enable-build-with-cxx
      	and --enable-build-poststage1-with-cxx.
      
      2012-08-14   Diego Novillo  <dnovillo@google.com>
      
      	Merge from cxx-conversion branch.  Re-implement VEC in C++.
      
      	* vec.c (vec_heap_free): Convert into a template function.
      	(vec_gc_o_reserve_1): Make extern.
      	(vec_gc_p_reserve): Remove.
      	(vec_gc_p_reserve_exact): Remove.
      	(vec_gc_o_reserve): Remove.
      	(vec_gc_o_reserve_exact): Remove.
      	(vec_heap_o_reserve_1): Make extern.
      	(vec_heap_p_reserve): Remove.
      	(vec_heap_p_reserve_exact): Remove.
      	(vec_heap_o_reserve): Remove.
      	(vec_heap_o_reserve_exact): Remove.
      	(vec_stack_p_reserve): Remove.
      	(vec_stack_p_reserve_exact): Remove.
      	* vec.h (VEC_CHECK_INFO, VEC_CHECK_DECL, VEC_CHECK_PASS,
      	VEC_ASSERT, VEC_ASSERT_FAIL, vec_assert_fail): Move earlier
      	in the file.
      	(VEC): Define to vec_t<T>.
      	(vec_allocation_t): Define.
      	(struct vec_prefix): Move earlier in the file.
      	(vec_t<T>): New template.
      	(DEF_VEC_I, DEF_VECL_ALLOC_I, DEF_VEC_P, DEF_VEC_ALLOC_P,
      	DEF_VEC_O, DEF_VEC_ALLOC_P, DEF_VEC_O, DEF_VEC_ALLOC_O,
      	DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_O_STACK,
      	DEF_VEC_ALLOC_I_STACK): Expand to 'struct vec_swallow_trailing_semi'.
      	(DEF_VEC_A): Provide template instantiations for
      	GC/PCH markers that do not traverse the vector.
      	(vec_stack_p_reserve): Remove.
      	(vec_stack_p_reserve_exact): Remove.
      	(vec_stack_p_reserve_exact_1): Remove.
      	(vec_stack_o_reserve): Remove.
      	(vec_stack_o_reserve_exact): Remove.
      	(vec_stack_free): Re-write as a template function.
      	(vec_reserve): New template function.
      	(vec_reserve_exact): New template function.
      	(vec_heap_free): New template function if GATHER_STATISTICS is
      	defined.  Otherwise, macro that expands to free().
      	(VEC_length_1): New template function.
      	(VEC_length): Call it.
      	(VEC_empty_1): New template function.
      	(VEC_empty): Call it.
      	(VEC_address_1): New template function.
      	(VEC_address): Call it.
      	(VEC_last_1): New template function.
      	(VEC_last): Call it.  Change return type to T&.
      	Change all users that used VEC_Os.
      	(VEC_index_1): New template function.
      	(VEC_index): Call it.  Return a T& instead of a T*.
      	Update all callers that were using VEC_O before.
      	(VEC_iterate_1): New template function.
      	(VEC_iterate): Call it.
      	(VEC_embedded_size_1): New template function.
      	(VEC_embedded_size): Call it.
      	(VEC_embedded_init_1): New template function.
      	(VEC_embedded_init): Call it.
      	(VEC_alloc_1): New template function.
      	(VEC_alloc): Call it.  If A is 'stack', call XALLOCAVAR to
      	do the allocation.
      	(VEC_free_1): New template function.
      	(VEC_free): Call it.
      	(VEC_copy_1): New template function.
      	(VEC_copy): Call it.
      	(VEC_space_1): New template function
      	(VEC_space): Call it.
      	(VEC_reserve_1): New template function.
      	(VEC_reserve): Call it.
      	(VEC_reserve_exact_1): New template function.
      	(VEC_reserve_exact): Call it.
      	(VEC_splice_1): New template function.
      	(VEC_splice): Call it.
      	(VEC_safe_splice_1): New template function.
      	(VEC_safe_splice): Call it.
      	(VEC_quick_push_1): New template function.  Create two overloads, one
      	accepting T, the other accepting T *.  Update all callers
      	where T and T * are ambiguous.
      	(VEC_quick_push): Call it.
      	(VEC_safe_push_1): New template function. Create two overloads, one
      	accepting T, the other accepting T *.  Update all callers
      	where T and T * are ambiguous.
      	(VEC_safe_push): Call it.
      	(VEC_pop_1): New template function.
      	(VEC_pop): Call it.
      	(VEC_truncate_1): New template function.
      	(VEC_truncate): Call it.
      	(VEC_safe_grow_1): New template function.
      	(VEC_safe_grow): Call it.
      	(VEC_safe_grow_cleared_1): New template function.
      	(VEC_safe_grow_cleared): Call it.
      	(VEC_replace_1): New template function.
      	(VEC_replace): Call it.  Always accept T instead of T*.
      	Update all callers that used VEC_Os.
      	(VEC_quick_insert_1): New template function.
      	(VEC_quick_insert): Call it.
      	(VEC_safe_insert_1): New template function.
      	(VEC_safe_insert): Call it.
      	(VEC_ordered_remove_1): New template function.
      	(VEC_ordered_remove): Call it.
      	(VEC_unordered_remove_1): New template function.
      	(VEC_unordered_remove): Call it.
      	(VEC_block_remove_1): New template function.
      	(VEC_block_remove): Call it.
      	(VEC_lower_bound_1): New template function.
      	(VEC_lower_bound): Call it.
      	(VEC_OP): Remove.
      	(DEF_VEC_FUNC_P): Remove.
      	(DEF_VEC_ALLOC_FUNC_P): Remove.
      	(DEF_VEC_NONALLOC_FUNCS_P): Remove.
      	(DEF_VEC_FUNC_O): Remove.
      	(DEF_VEC_ALLOC_FUNC_O): Remove.
      	(DEF_VEC_NONALLOC_FUNCS_O): Remove.
      	(DEF_VEC_ALLOC_FUNC_I): Remove.
      	(DEF_VEC_NONALLOC_FUNCS_I): Remove.
      	(DEF_VEC_ALLOC_FUNC_P_STACK): Remove.
      	(DEF_VEC_ALLOC_FUNC_O_STACK): Remove.
      	(DEF_VEC_ALLOC_FUNC_I_STACK): Remove.
      	(vec_reserve_exact): New template function.
      
      	* gengtype-lex.l (DEF_VEC_ALLOC_[IOP]/{EOID}): Remove.
      	* gengtype-parse.c (token_names): Remove DEF_VEC_ALLOC_[IOP].
      	(typedef_name): Emit vec_t<C1> instead of VEC_C1_C2.
      	(def_vec_alloc): Remove.  Update all callers.
      	* gengtype.c (filter_type_name): New.
      	(output_mangled_typename): Call it.
      	(write_func_for_structure): Likewise.
      	(write_types): Likewise.
      	(write_root): Likewise.
      	(write_typed_alloc_def): Likewise.
      	(note_def_vec): Emit vec_t<TYPE_NAME> instead of VEC_TYPE_NAME_base.
      	(note_def_vec_alloc): Remove.
      	* gengtype.h (note_def_vec_alloc): Remove.
      	(DEFVEC_ALLOC): Remove token code.
      
      	* df-scan.c (df_bb_verify): Remove call to df_free_collection_rec
      	inside the insn traversal loop.
      	* gimplify.c (gimplify_compound_lval): Rename STACK to EXPR_STACK.
      	* ipa-inline.c (inline_small_functions): Rename HEAP to EDGE_HEAP.
      	* reg-stack.c (stack): Rename to STACK_PTR.  Update all users.
      	* tree-vrp.c (stack): Rename to EQUIV_STACK.  Update all users.
      
      	* config/bfin/bfin.c (hwloop_optimize): Update some calls to
      	VEC_* for vectors of non-pointers.
      	* config/c6x/c6x.c (try_rename_operands): Likewise.
      	(reshuffle_units): Likewise.
      	* config/mips/mips.c (mips_multi_start): Likewise.
      	(mips_multi_add): Likewise.
      	(mips_multi_copy_insn): Likewise.
      	(mips_multi_set_operand): Likewise.
      	* hw-doloop.c (discover_loop): Likewise.
      	(discover_loops): Likewise.
      	(reorg_loops): Likewise.
      
      2012-08-14   Diego Novillo  <dnovillo@google.com>
      
      	Merge from cxx-conversion branch.  C++ support in gengtype.
      
      	* coretypes.h (gt_pointer_operator): Move from ...
      	* ggc.h: ... here.
      	* doc/gty.texi: Document support for C++ templates and
      	user-provided markers.
      	* gcc/gengtype-lex.l: Update copyright year.
      	Remove support for recognizing DEF_VEC_O, DEF_VEC_P and
      	DEFVEC_I.
      	* gengtype-parse.c: Update copyright year.
      	(token_names): Remove DEF_VEC_O, DEF_VEC_P and DEF_VEC_I.
      	(require_template_declaration): New.
      	(typedef_name): Call it.
      	(type): Replace IS_UNION with KIND. Replace all users.
      	(def_vec): Remove.  Update all users.
      	* gengtype-state.c (type_lineloc): Handle TYPE_USER_STRUCT.
      	(write_state_user_struct_type): New.
      	(write_state_type): Call it.
      	(read_state_user_struct_type): New.
      	(read_state_type): Call it.
      	* gengtype.c: Update copyright year.
      	(dump_pair): Move declaration to the top.
      	(dump_type): Likewise.
      	(dump_type_list): Likewise.
      	(dbgprint_count_type_at): Handle TYPE_USER_STRUCT.
      	(create_user_defined_type): New.
      	(resolve_typedef): Call it.
      	(new_structure): Replace argument ISUNION with KIND.
      	Change users to refer to KIND directly.
      	Update all callers.
      	(find_structure): Likewise.
      	(set_gc_used_type): Handle TYPE_USER_STRUCT.
      	(create_file): Update HDR to include new copyright year.
      	(struct walk_type_data): Add field IN_PTR_FIELD.
      	(output_mangled_typename): Handle TYPE_USER_STRUCT.
      	(walk_type): Set D->IN_PTR_FIELD when walking a TYPE_POINTER.
      	Clear it afterwards.
      	Handle TYPE_USER_STRUCT.
      	(write_types_process_field): Handle TYPE_USER_STRUCT.
      	(get_type_specifier): Move earlier in the file.
      	(write_type_decl): New.
      	(write_marker_function_name): New.
      	(write_user_func_for_structure_ptr): New.
      	(write_user_func_for_structure_body): New.
      	(write_user_marking_functions): New.
      	(write_func_for_structure): Call write_marker_function_name
      	and write_type_decl.
      	Do not call walk_type for TYPE_USER_STRUCT. Emit a call to the user
      	function directly.
      	Call write_user_marking_functions on TYPE_USER_STRUCTs.
      	(write_types_local_user_process_field): New.
      	(write_pch_user_walking_for_structure_body): New.
      	(write_pch_user_walking_functions): New.
      	(write_types_local_process_field): Handle TYPE_USER_STRUCT.
      	(write_local_func_for_structure): Do not call walk_type for
      	TYPE_USER_STRUCT. Instead, emit the call to gt_pch_nx directly.
      	Call write_pch_user_walking_functions for TYPE_USER_STRUCTs.
      	(write_root): Handle TYPE_USER_STRUCT.
      	(vec_prefix_type): Remove.  Update all users.
      	(note_def_vec): Remove.  Update all users.
      	(dump_typekind): Handle TYPE_USER_STRUCT.
      	(dump_type): Initialize SEEN_TYPES, if needed.
      	Handle TYPE_USER_STRUCT.
      	(dump_everything): Do not initialize SEEN_TYPES.
      	* gengtype.h: Update copyright year.
      	(enum typekind): Add TYPE_USER_STRUCT.
      	(union_or_struct_p): Rename from UNION_OR_STRUCT_P.
      	Convert into function.
      	Add an overload taking const_type_p.
      	Update all callers.
      	(new_structure): Change second field to type enum typekind.
      	Update all users.
      	(find_structure): Likewise.
      	(note_def_vec): Remove.
      	(DEFVEC_OP): Remove.
      	(DEFVEC_I): Remove.
      	* ggc-page.c (gt_ggc_mx): Add entry points for marking
      	'const char *&', 'unsigned char *&' and 'unsigned char&'.
      	* ggc-zone.c (gt_ggc_mx): Add entry points for marking
      	'const char *&' and 'unsigned char *&'.
      	* stringpool.c (gt_pch_nx): Add entry points for marking
      	'const char *&', 'unsigned char *&' and 'unsigned char&'.
      	Add an entry point for the overload taking arguments 'unsigned char
      	*', 'gt_pointer_operator' and 'void *'.
      	* vec.h (struct vec_prefix): Remove GTY marker.
      	(struct vec_t): Remove GTY((length)) attribute from field 'vec'.
      	(gt_ggc_mx (vec_t<T> *)): New template function.
      	(gt_pch_nx (vec_t<T> *)): New template function.
      	(gt_pch_nx (vec_t<T *> *, gt_pointer_operator, void *)): New template
      	function.
      	(gt_pch_nx (vec_t<T> *, gt_pointer_operator, void *)): New template
      	function.
      
      	* basic-block.h (struct edge_def): Mark GTY((user)).
      	Remove all GTY markers from fields.
      	(gt_ggc_mx): Declare.
      	(gt_pch_nx): Declare.
      	* tree-cfg.c (gt_ggc_mx): New.
      	(gt_pch_nx): New.
      
      	* gengtype-lex.l (USER_GTY): Add pattern for "user".
      	* gengtype-parse.c (option): Handle USER_GTY.
      	(opts_have): New.
      	(type): Call it.
      	If the keyword 'user' is used, do not walk the fields
      	of the structure.
      	* gengtype.h (USER_GTY): Add.
      	* doc/gty.texi: Update.
      
      2012-08-14   Lawrence Crowl  <crowl@google.com>
      
      	Merge cxx-conversion branch.  Implement C++ hash table.
      
      	* hash-table.h: New. Implementation borrowed from libiberty/hashtab.c.
      	* hash-table.c: Likewise.
      	* tree-ssa-tail-merge.c: Include hash-table.h instead of hashtab.h.
      	(static htab_t same_succ_htab): Change type to hash_table;
      	move specification of helper functions from create call to declaration.
      	Change users to invoke member functions.
      	(same_succ_print_traverse): Make extern ssa_.... Change callers.
      	Remove void* casting.
      	(same_succ_hash): Likewise.
      	(same_succ_equal): Likewise.
      	(same_succ_delete): Likewise.
      	* tree-ssa-threadupdate.c: Include hash-table.h.
      	(struct local_info): Rename to ssa_local_info_t to avoid overloading
      	the type name local_info with the variable name local_info.
      	(static htab_t redirection_data): Change type to hash_table.
      	Move specification of helper functions from create call to declaration.
      	Change users to invoke member functions.
      	(redirection_data_hash): Make extern ssa_.... Change callers.
      	Remove void* casting.
      	(redirection_data_eq): Likewise.
      	(fix_duplicate_block_edges): Likewise.
      	(create_duplicates): Likewise.
      	(fixup_template_block): Likewise.
      	(redirect_edges): Likewise.
      	(lookup_redirection_data): Change types associated with the hash table
      	from void* to their actual type. Remove unnecessary casts.
      	* tree-ssa-ccp.c: Include hash-table.h.
      	(typedef gimple_htab): New.  Uses hash_table.  Replace specific uses
      	of htab_t with gimple_htab.  Change users to invoke member functions.
      	Move specification of helper functions from create call to declaration.
      	* tree-ssa-coalesce.c: Include hash-table.h instead of hashtab.h.
      	(hash_ssa_name_by_var): Make extern. Remove void* casting.
      	(eq_ssa_name_by_var): Likewise.
      	(coalesce_ssa_name): Change type of local static htab_t ssa_name_hash
      	to hash_table. Change users to invoke member functions.
      	Move specification of helper functions from create call to declaration.
      	* coverage.c: Include hash-table.h instead of hashtab.h.
      	(static htab_t counts_hash): Change type to hash_table;
      	move specification of helper functions from create call to declaration.
      	Change users to invoke member functions.
      	(htab_counts_entry_hash): Make extern. Rename with coverage_... instead
      	of htab_... Remove void* casting.
      	(htab_counts_entry_eq): Likewise.
      	(htab_counts_entry_del): Likewise.
      	* tree-ssa-pre.c: Include hash-table.h instead of hashtab.h.
      	(static htab_t expression_to_id): Change type to hash_table.
      	Move specification of helper functions from create call to declaration.
      	Change users to invoke member functions.
      	(static htab_t phi_translate_table): Likewise.
      	(pre_expr_eq): Make extern ssa_.... Change callers.
      	Remove void* casting.
      	(pre_expr_hash): Likewise.
      	(expr_pred_trans_hash): Likewise.
      	(expr_pred_trans_eq): Likewise.
      	(alloc_expression_id): Change types associated with the hash table
      	from void* to their actual type. Remove unnecessary casts.
      	(lookup_expression_id): Likewise.
      	(phi_trans_lookup): Likewise.
      	(phi_trans_add): Likewise.
      	* stringpool.c: Rename uses of libcpp typedef hash_table to
      	cpp_hash_table.
      	* Makefile.in: Add hash-table.o to OBJS-libcommon-target.
      	Add $(HASH_TABLE_H). Add new dependences on $(HASH_TABLE_H).
      
      2012-08-14   Lawrence Crowl  <crowl@google.com>
      
      	Merge from cxx-conversion branch.  Re-write double_int in C++.
      
      	* hash-table.h
      	(typedef double_int): Change to struct (POD).
      	(double_int::make): New overloads for int to double-int conversion.
      	(double_int::mask): New.
      	(double_int::max_value): New.
      	(double_int::min_value): New.
      	(double_int::operator ++): New.
      	(double_int::operator --): New.
      	(double_int::operator *=): New.
      	(double_int::operator +=): New.
      	(double_int::operator -=): New.
      	(double_int::to_signed): New.
      	(double_int::to_unsigned): New.
      	(double_int::fits_unsigned): New.
      	(double_int::fits_signed): New.
      	(double_int::fits): New.
      	(double_int::trailing_zeros): New.
      	(double_int::popcount): New.
      	(double_int::multiple_of): New.
      	(double_int::set_bit): New.
      	(double_int::mul_with_sign): New.
      	(double_int::operator * (binary)): New.
      	(double_int::operator + (binary)): New.
      	(double_int::operator - (binary)): New.
      	(double_int::operator - (unary)): New.
      	(double_int::operator ~ (unary)): New.
      	(double_int::operator & (binary)): New.
      	(double_int::operator | (binary)): New.
      	(double_int::operator ^ (binary)): New.
      	(double_int::and_not): New.
      	(double_int::lshift): New.
      	(double_int::rshift): New.
      	(double_int::alshift): New.
      	(double_int::arshift): New.
      	(double_int::llshift): New.
      	(double_int::lrshift): New.
      	(double_int::lrotate): New.
      	(double_int::rrotate): New.
      	(double_int::div): New.
      	(double_int::sdiv): New.
      	(double_int::udiv): New.
      	(double_int::mod): New.
      	(double_int::smod): New.
      	(double_int::umod): New.
      	(double_int::divmod): New.
      	(double_int::sdivmod): New.
      	(double_int::udivmod): New.
      	(double_int::ext): New.
      	(double_int::zext): New.
      	(double_int::sext): New.
      	(double_int::is_zero): New.
      	(double_int::is_one): New.
      	(double_int::is_minus_one): New.
      	(double_int::is_negative): New.
      	(double_int::cmp): New.
      	(double_int::ucmp): New.
      	(double_int::scmp): New.
      	(double_int::ult): New.
      	(double_int::ugt): New.
      	(double_int::slt): New.
      	(double_int::sgt): New.
      	(double_int::max): New.
      	(double_int::smax): New.
      	(double_int::umax): New.
      	(double_int::min): New.
      	(double_int::smin): New.
      	(double_int::umin): New.
      	(double_int::operator ==): New.
      	(double_int::operator !=): New.
      	(shwi_to_double_int): Change implementation to use member function.
      	(double_int_minus_one): Likewise.
      	(double_int_zero): Likewise.
      	(double_int_one): Likewise.
      	(double_int_two): Likewise.
      	(double_int_ten): Likewise.
      	(uhwi_to_double_int): Likewise.
      	(double_int_to_shwi): Likewise.
      	(double_int_to_uhwi): Likewise.
      	(double_int_fits_in_uhwi_p): Likewise.
      	(double_int_fits_in_shwi_p): Likewise.
      	(double_int_fits_in_hwi_p): Likewise.
      	(double_int_mul): Likewise.
      	(double_int_mul_with_sign): Likewise.
      	(double_int_add): Likewise.
      	(double_int_sub): Likewise.
      	(double_int_neg): Likewise.
      	(double_int_div): Likewise.
      	(double_int_sdiv): Likewise.
      	(double_int_udiv): Likewise.
      	(double_int_mod): Likewise.
      	(double_int_smod): Likewise.
      	(double_int_umod): Likewise.
      	(double_int_divmod): Likewise.
      	(double_int_sdivmod): Likewise.
      	(double_int_udivmod): Likewise.
      	(double_int_multiple_of): Likewise.
      	(double_int_setbit): Likewise.
      	(double_int_ctz): Likewise.
      	(double_int_not): Likewise.
      	(double_int_ior): Likewise.
      	(double_int_and): Likewise.
      	(double_int_and_not): Likewise.
      	(double_int_xor): Likewise.
      	(double_int_lshift): Likewise.
      	(double_int_rshift): Likewise.
      	(double_int_lrotate): Likewise.
      	(double_int_rrotate): Likewise.
      	(double_int_cmp): Likewise.
      	(double_int_scmp): Likewise.
      	(double_int_ucmp): Likewise.
      	(double_int_max): Likewise.
      	(double_int_smax): Likewise.
      	(double_int_umax): Likewise.
      	(double_int_min): Likewise.
      	(double_int_smin): Likewise.
      	(double_int_umin): Likewise.
      	(double_int_ext): Likewise.
      	(double_int_sext): Likewise.
      	(double_int_zext): Likewise.
      	(double_int_mask): Likewise.
      	(double_int_max_value): Likewise.
      	(double_int_min_value): Likewise.
      	(double_int_zero_p): Likewise.
      	(double_int_one_p): Likewise.
      	(double_int_minus_one_p): Likewise.
      	(double_int_equal_p): Likewise.
      	(double_int_popcount): Likewise.
      	* hash-table.c
      	(double_int_mask): Reuse implementation for double_int::mask.
      	(double_int_max_value): Likewise.
      	(double_int_min_value): Likewise.
      	(double_int_ext): Likewise.
      	(double_int_zext): Likewise.
      	(double_int_sext): Likewise.
      	(double_int_mul_with_sign): Likewise.
      	(double_int_divmod): Likewise.
      	(double_int_sdivmod): Likewise.
      	(double_int_udivmod): Likewise.
      	(double_int_div): Likewise.
      	(double_int_sdiv): Likewise.
      	(double_int_udiv): Likewise.
      	(double_int_mod): Likewise.
      	(double_int_smod): Likewise.
      	(double_int_umod): Likewise.
      	(double_int_multiple_of): Likewise.
      	(double_int_lshift): Likewise.
      	(double_int_rshift): Likewise.
      	(double_int_lrotate): Likewise.
      	(double_int_rrotate): Likewise.
      	(double_int_cmp): Likewise.
      	(double_int_ucmp): Likewise.
      	(double_int_scmp): Likewise.
      	(double_int_max): Likewise.
      	(double_int_smax): Likewise.
      	(double_int_umax): Likewise.
      	(double_int_min): Likewise.
      	(double_int_smin): Likewise.
      	(double_int_umin): Likewise.
      	(double_int_min): Likewise.
      	(double_int_min): Likewise.
      	(double_int_min): Likewise.
      	(double_int_min): Likewise.
      	(double_int_min): Likewise.
      	(double_int_min): Likewise.
      	(double_int::alshift): New.
      	(double_int::arshift): New.
      	(double_int::llshift): New.
      	(double_int::lrshift): New.
      	(double_int::ult): New.
      	(double_int::ugt): New.
      	(double_int::slt): New.
      	(double_int::sgt): New.
      	(double_int_setbit): Reuse implementation for double_int::set_bit,
      	which avoids a name conflict with a macro.
      	(double_int_double_int_ctz): Reuse implementation for
      	double_int::trailing_zeros.
      	(double_int_fits_in_shwi_p): Reuse implementation for
      	double_int::fits_signed.
      	(double_int_fits_in_hwi_p): Reuse implementation for double_int::fits.
      	(double_int_mul): Reuse implementation for binary
      	double_int::operator *.
      	(double_int_add): Likewise.
      	(double_int_sub): Likewise.
      	(double_int_neg): Reuse implementation for unary
      	double_int::operator -.
      	(double_int_max_value): Likewise.
      	* fixed-value.c: Change to use member functions introduced above.
      
      2012-08-14   Lawrence Crowl  <crowl@google.com>
      
      	Merge cxx-conversion branch.  Support tree macro calling
      	from gdb.
      
      	* tree.h (tree_check): New.
      	(TREE_CHECK): Use inline function above instead of __extension__.
      	(tree_not_check): New.
      	(TREE_NOT_CHECK): Use inline function above instead of __extension__.
      	(tree_check2): New.
      	(TREE_CHECK2): Use inline function above instead of __extension__.
      	(tree_not_check2): New.
      	(TREE_NOT_CHECK2): Use inline function above instead of __extension__.
      	(tree_check3): New.
      	(TREE_CHECK3): Use inline function above instead of __extension__.
      	(tree_not_check3): New.
      	(TREE_NOT_CHECK3): Use inline function above instead of __extension__.
      	(tree_check4): New.
      	(TREE_CHECK4): Use inline function above instead of __extension__.
      	(tree_not_check4): New.
      	(TREE_NOT_CHECK4): Use inline function above instead of __extension__.
      	(tree_check5): New.
      	(TREE_CHECK5): Use inline function above instead of __extension__.
      	(tree_not_check5): New.
      	(TREE_NOT_CHECK5): Use inline function above instead of __extension__.
      	(contains_struct_check): New.
      	(CONTAINS_STRUCT_CHECK): Use inline function above instead of
      	__extension__.
      	(tree_class_check): New.
      	(TREE_CLASS_CHECK): Use inline function above instead of __extension__.
      	(tree_range_check): New.
      	(TREE_RANGE_CHECK): Use inline function above instead of __extension__.
      	(omp_clause_subcode_check): New.
      	(OMP_CLAUSE_SUBCODE_CHECK): Use inline function above instead of
      	__extension__.
      	(omp_clause_range_check): New.
      	(OMP_CLAUSE_RANGE_CHECK): Use inline function above instead of
      	__extension__.
      	(expr_check): New.
      	(EXPR_CHECK): Use inline function above instead of __extension__.
      	(non_type_check): New.
      	(NON_TYPE_CHECK): Use inline function above instead of __extension__.
      	(tree_vec_elt_check): New.
      	(TREE_VEC_ELT_CHECK): Use inline function above instead of
      	__extension__.
      	(omp_clause_elt_check): New.
      	(OMP_CLAUSE_ELT_CHECK): Use inline function above instead of
      	__extension__.
      	(tree_operand_check): New.
      	(TREE_OPERAND_CHECK): Use inline function above instead of
      	__extension__.
      	(tree_operand_check_code): New.
      	(TREE_OPERAND_CHECK_CODE): Use inline function above instead of
      	__extension__.
      	(TREE_CHAIN): Simplify implementation.
      	(TREE_TYPE): Simplify implementation.
      	(tree_operand_length): Move for compilation dependences.
      	* gdbinit.in: (macro define __FILE__): New.
      	(macro define __LINE__): New.
      	(skip "tree.h"): New.
      
      gcc/cp/ChangeLog
      2012-08-14   Diego Novillo  <dnovillo@google.com>
      
      	Merge from cxx-conversion branch.  Re-write VEC in C++.
      
      	* call.c (add_function_candidate): Remove const qualifier
      	from call to VEC_index.
      
      2012-08-14   Diego Novillo  <dnovillo@google.com>
      
      	Merge from cxx-conversion branch.  Configury.
      
      	* go-c.h: Remove all handlers of ENABLE_BUILD_WITH_CXX.
      	* go-gcc.cc: Likewise.
      	* go-system.h: Likewise.
      
      From-SVN: r190402
      Diego Novillo committed
  11. 30 Jul, 2012 1 commit
    • gengtype.c (adjust_field_type): Diagnose duplicate "length" option applications… · c0fd3497
      gengtype.c (adjust_field_type): Diagnose duplicate "length" option applications and option being applied to...
      
      gcc:
      2012-07-27  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      	    Steven Bosscher  <steven@gcc.gnu.org>
      
      	* gengtype.c (adjust_field_type): Diagnose duplicate "length"
      	option applications and option being applied to arrays of atomic
      	types.
      	(walk_type): Allow "atomic" option on strings too.
      	* dwarf2out.h (struct dw_vec_struct): Use the "atomic" GTY option
      	for the array field.
      	* vec.h: Describe the atomic object "A" type of the macros in
      	the header comment.
      	(VEC_T_GTY_ATOMIC, DEF_VEC_A, DEF_VEC_ALLOC_A): Define.
      	* emit-rtl.c (locations_locators_vals): use the atomic object
      	vector.
      	* doc/gty.texi: Clarify that GTY option "length" is only for
      	arrays of non-atomic objects.  Fix typo in the description of the
      	"atomic" option.
      
      gcc/java:
      2012-07-24  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* jcf.h (CPool): Use the "atomic" GTY option for the tags field.
      	(bootstrap_method): Likewise for the bootstrap_arguments field.
      
      libcpp:
      2012-07-24  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* include/line-map.h (line_map_macro): Use the "atomic" GTY option
      	for the macro_locations field.
      
      Co-Authored-By: Steven Bosscher <steven@gcc.gnu.org>
      
      From-SVN: r189951
      Laurynas Biveinis committed
  12. 16 Jul, 2012 1 commit
    • system.h (dump_file): Do not define. · 7ee2468b
      gcc/
      	* system.h (dump_file): Do not define.
      	* tree-pass.h: Include dumpfile.h, which is a new file containing...
      	(enum tree_dump_index, TDF_*, get_dump_file_name, dump_enabled_p,
      	dump_initialized_p, dump_begin, dump_end, dump_node, dump_switch_p,
      	dump_flag_name, dump_file, dump_flags, dump_file_name,
      	get_dump_file_info, struct dump_file_info): all of this, moved to...
      	* dumpfile.h: Here, new file.
      	* tree-dump.h: Include dumpfile.h, but not tree-pass.h.
      	(dump_stmt): Remove prototype for C++ specific function.
      	(dump_enumerated_decls): Move prototype from here...
      	* tree-flow.h (dump_enumerated_decls): ... to here.
      	(get_ref_base_and_extent) Move prototype from here ...
      	* tree.h (get_ref_base_and_extent) ... to here.
      	* tree-ssa-live.c: Do not inclde tree-pretty-print.h, because
      	gimple-pretty-print.h is enough.  Do not include tree-dump.h,
      	include timevar.h and dumpfile.h instead.
      	(struct numbered_tree_d, compare_decls_by_uid,
      	dump_enumerated_decls_push, dump_enumerated_decls): Move from here ...
      	* tree-dfa.c:(struct numbered_tree_d, compare_decls_by_uid,
      	dump_enumerated_decls_push, dump_enumerated_decls):... to here.
      	Do not include timevar.h.
      	* tree.c: Do not include timevar.h.
      	* tree-cfg.c: Do not include langhooks.h, tree-pretty-print.h, and
      	timevar.h.
      	(dump_cfg_stats): Use current_function_name.
      	(gimple_cfg2vcg): Likewise.
      	(dump_function_to_file): Likewise.
      	* df-scan.c: Do not include tree-pass.h and timevar.h.
      	Include dumpfile.h.
      	(df_entry_block_bitmap_verify, df_exit_block_bitmap_verify): Do not
      	use print_current_pass.
      	* df-problems.c: Include dumpfile.h.
      	Always define REG_DEAD_DEBUGGING, avoid #ifdef code, because it
      	leads to errors in the code not selected.
      	(df_note_compute): Do not print_rtl_with_bb here.  Fix compilation
      	bug if REG_DEAD_DEBUGGING is not 0, get_insns is not available here.
      	* lcm.c: Include dumpfile.h.
      	Remove obsolete include of insn-attr.h.
      	* dojump.c (do_compare_rtx_and_jump): Remove failure printing for
      	missing probability notes.
      	* stmt.c: Include dumpfile.h.
      	(emit_case_decision_tree): Re-enable printing expand details only
      	if TDF_DETAILS.
      	* alias.c, auto-inc-dec.c, bb-reorder.c, caller-save.c, cfg.c, 
      	cfgcleanup.c, cfgexpand.c, cfgloop.c, cfgloopmanip.c, cgraph.c, 
      	cgraphclones.c, cgraphunit.c, combine.c, combine-stack-adj.c, 
      	coverage.c, cprop.c, cse.c, cselib.c, dbgcnt.c, dce.c, df-core.c, 
      	dse.c, dwarf2out.c, emit-rtl.c, except.c, expr.c, final.c, 
      	function.c, fwprop.c, gcse.c, gimple-fold.c, 
      	gimple-pretty-print.c, gimple-ssa-strength-reduction.c, 
      	gimplify.c, graphite-blocking.c, graphite-clast-to-gimple.c, 
      	graphite-dependences.c, graphite-interchange.c, 
      	graphite-optimize-isl.c, graphite-poly.c, 
      	graphite-sese-to-poly.c, haifa-sched.c, hw-doloop.c, ifcvt.c, 
      	ipa.c, ipa-cp.c, ipa-inline-analysis.c, ipa-inline.c, 
      	ipa-inline-transform.c, ipa-prop.c, ipa-pure-const.c, 
      	ipa-reference.c, ipa-split.c, ipa-utils.c, ira.c, ira-emit.c, 
      	jump.c, loop-doloop.c, loop-init.c, loop-invariant.c, loop-iv.c, 
      	loop-unroll.c, loop-unswitch.c, lower-subreg.c, 
      	lto-section-out.c, lto-streamer-in.c, matrix-reorg.c, mcf.c, 
      	mode-switching.c, modulo-sched.c, omega.c, omp-low.c, passes.c, 
      	plugin.c, postreload.c, postreload-gcse.c, predict.c, print-rtl.c, 
      	print-tree.c, profile.c, recog.c, ree.c, regcprop.c, reginfo.c, 
      	regmove.c, regrename.c, reg-stack.c, reload1.c, reorg.c, 
      	sched-rgn.c, sched-vis.c, sel-sched.c, sel-sched-ir.c, 
      	store-motion.c, tracer.c, trans-mem.c, tree-affine.c, 
      	tree-call-cdce.c, tree-cfgcleanup.c, tree-chrec.c, 
      	tree-data-ref.c, tree-diagnostic.c, tree-dump.c,
      	tree-eh.c, tree-flow-inline.h, tree-if-conv.c, tree-into-ssa.c, 
      	tree-mudflap.c, tree-nrv.c, tree-object-size.c, 
      	tree-optimize.c, tree-outof-ssa.c, tree-predcom.c, 
      	tree-pretty-print.c, tree-profile.c, tree-scalar-evolution.c, 
      	tree-sra.c, tree-ssa-address.c, tree-ssa-alias.c, tree-ssa.c, 
      	tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-copy.c, 
      	tree-ssa-copyrename.c,, tree-ssa-dce.c, tree-ssa-dom.c, 
      	tree-ssa-dse.c, tree-ssa-forwprop.c, tree-ssa-ifcombine.c, 
      	tree-ssa-loop.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c, 
      	tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c, 
      	tree-ssa-loop-manip.c, tree-ssa-loop-niter.c, 
      	tree-ssa-loop-prefetch.c, tree-ssa-loop-unswitch.c, 
      	tree-ssa-math-opts.c, tree-ssa-operands.c, tree-ssa-phiopt.c, 
      	tree-ssa-phiprop.c, tree-ssa-pre.c, tree-ssa-propagate.c, 
      	tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-sink.c, 
      	tree-ssa-structalias.c, tree-ssa-tail-merge.c, tree-ssa-ter.c, 
      	tree-ssa-threadedge.c, tree-ssa-threadupdate.c, 
      	tree-ssa-uncprop.c, tree-ssa-uninit.c, 
      	tree-switch-conversion.c, tree-tailcall.c, 
      	tree-vect-data-refs.c, tree-vect-loop.c, 
      	tree-vect-loop-manip.c, tree-vectorizer.c, 
      	tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c, 
      	tree-vrp.c, value-prof.c, var-tracking.c, web.c: Include tree-pass.h
      	only if needed.  If tree-pass.h is included, do not include timevar.h
      	and dumpfile.h.  If tree-pass.h is not included but dump_file, or
      	dump_flags, or the TDF_* flags are used, include dumpfile.h.
      	If gimple-pretty-print.h is included, don't include tree-pretty-print.h.
      	Remove assorted unnecessary includes.
      
      	* config/mn10300/mn10300.c, config/c6x/c6x.c, config/ia64/ia64.c,
      	config/arm/arm.c, config/bfin/bfin.c, config/frv/frv.c,
      	config/spu/spu.c, config/mep/mep.c, config/i386/i386.c:
      	Include dumpfile.h.
      	* config/rl78/rl78.c: Include dumpfile.h instead of tree-pass.h.
      	* arm/t-arm, avr/t-avr, i386/t-i386, ia64/t-ia64, mep/t-mep,
      	spu/t-spu-elf: Fix dependencies.
      
      c-family/
      	* c-gimplify.c: Include dumpfile.h instead of tree-dump.h.
      	* c-ada-spec.c: Likewise.
      	* c-dump.c (dump_stmt): Move to cp/dump.c, the only user.
      
      c/
      	* c-decl.c: Include dumpfile.h instead of tree-dump.h.
      	* Make-lang.in: Fix dependencies.
      
      cp/
      	* dump.c (dump_stmt): Moved here from c-dump.c.
      	* optimize.c: Include dumpfile.h instead of tree-dump.h.
      	* class.c: Likewise.
      	* decl2.c: Likewise.
      	* Make-lang.in: Fix dependencies.
      
      fortran/
      	* f95-lang.c: Include dumpfile.h instead of tree-dump.h.
      	* Make-lang.in: Fix dependencies.
      
      java/
      	* java-gimplify.c Include dumpfile.h instead of tree-dump.h
      	* Make-lang.in: Fix dependencies.
      
      lto/
      	* lto.c: Do not include timevar.h.
      	* Make-lang.in: Fix dependencies.
      
      ada/
      	* gcc-interface/utils.c: Include timevar.h.
      	* Make-lang.in: Fix dependencies.
      
      From-SVN: r189519
      Steven Bosscher committed
  13. 11 Jul, 2012 2 commits
    • java-tree.h (force_evaluation_order): Remove prototype. · 53cd1f80
      	* java-tree.h (force_evaluation_order): Remove prototype.
      	* expr.c (force_evaluation_order): Remove unused function.
      
      From-SVN: r189428
      Steven Bosscher committed
    • expr.h (can_move_by_pieces): Move prototype from here ... · 6bdf3519
      gcc/
      	* expr.h (can_move_by_pieces): Move prototype from here ...
      	* tree.h (can_move_by_pieces): ... to here.
      	* optabs.h (set_widening_optab_handler): Use XCNEW.
      	* gimplify.c: Do not include expr.h.
      
      	* toplev.c: Do not include dwarf2out.h.
      	* config/ia64/ia64.c: Likewise.
      	* config/sparc/sparc.c: Likewise.
      	* config/sparc/t-sparc (sparc.o): Fix dependencies.
      
      	* Makefile.in (toplev.o): Fix dependencies
      	(c-family/c-gimplify.o): Likewise.
      	(c-family/c-common.o): Likewise.
      
      c-family/
      	* c-gimplify.c: Do not include basic-block.h.
      	* c-common.c: Do not include linfuncs.h.
      
      cp/
      	* method.c: Do not include tree-pass.h.
      
      fortran/
      	* trans.c: Do not include defaults.h.
      	* trans-intrinsic.c: Likewise.
      
      java/
      	* decl.c: Do not include libfuncs.h.
      	* class.c: Do not include defaults.h.
      	* jvgenmain.c: Likewise.
      	* magnle.c: Likewise.
      	* Make-lang.in (decl.o): Fix dependencies.
      
      From-SVN: r189425
      Steven Bosscher committed
  14. 08 Jul, 2012 1 commit
    • alias.h: Do not include coretypes.h in header files. · 79bdca32
      gcc/
      	* alias.h: Do not include coretypes.h in header files.
      	* cppbuiltin.h: Likewise.
      	* double-int.h: Likewise.
      	* gimple-fold.h: Likewise.
      	* flags.h: Likewise.
      	* tree-ssa-alias.h: Likewise.
      	* gengtype.h (obstack_chunk_alloc, obstack_chunk_free,
      	OBSTACK_CHUNK_SIZE): Define here to avoid dependency on coretypes.h.
      	* Makefile.in (RTL_BASE_H): Depend on coretypes.h.
      	(TREE_H): Likewise.
      	(ALIAS_H): Do not depend on coretypes.h.
      	(FLAGS_H): Likewise.
      	(realmpfr.o): Depend on coretypes.h.
      
      java/
      	* verify.h: Do not include system.h and coretypes.h here.
      	* verify-impl.c: Include them here instead.
      
      From-SVN: r189358
      Steven Bosscher committed
  15. 05 Jul, 2012 1 commit
  16. 04 Jun, 2012 1 commit
    • output.h (merge_weak, [...]): Move protos from here... · a4b7d13c
      	* output.h (merge_weak, assemble_alias,
      	initializer_constant_valid_p,
      	initializer_constant_valid_for_bitfield_p): Move protos from here...
      	* tree.h: ... to here.
      
      	* cgraphclones.c: Do not include output.h.
      	* gimplify.c: Likewise.
      	* reload.c: Likewise.
      	* recog.c: Likewise.
      	* tree-ssa-loop-ivopts.c: Likewise.
      	* tree-switch-conversion.c: Likewise.
      	* c-parser.c: Likewise.
      	* c-typeck.c: Likewise.
      
      	* Makefile.in: Fix dependencies.
      
      c-family/
      	* c-common.c: Do not include output.h.
      	* c-pragma.c: Likewise.
      
      cp/
      	* semantics.c: Do not include output.h.
      	* decl2.c: Likewise.
      	* friend.c: Likewise.
      	* typeck.c: Likewise.
      	* typeck2.c: Likewise.
      	* Make-lang.in: Fix dependencies.
      
      ada/
      	* gcc-interface/utils2.c: Do not include output.h.
      	* gcc-interface/Make-lang.in: Fix dependencies.
      
      From-SVN: r188178
      Steven Bosscher committed
  17. 31 May, 2012 1 commit
    • output.h (__gcc_host_wide_int__): Move to hwint.h. · be7a421e
      	* output.h (__gcc_host_wide_int__): Move to hwint.h.
      	(decl_default_tls_model): Move to tree.h
      	(dump_file): Move to system.h.
      	(default_stabs_asm_out_destructor, default_stabs_asm_out_constructor,
      	dbxout_int, dbxout_stabd, dbxout_begin_stabn, dbxout_begin_stabn_sline,
      	dbxout_begin_empty_stabs, dbxout_begin_simple_stabs,
      	dbxout_begin_simple_stabs_desc, dbxout_stab_value_zero,
      	dbxout_stab_value_zero, dbxout_stab_value_label_diff,
      	dbxout_stab_value_internal_label,
      	dbxout_stab_value_internal_label_diff): Move from here ...
      	* dbxout.h: ... to here.
      	* system.h (dump_file): Moved here from output.h.
      	* hwint.h (__gcc_host_wide_int__): Moved here from output.h.
      	* tree.h (decl_default_tls_model): Moved here from output.h.
      	* varasm.c (default_stabs_asm_out_destructor,
      	default_stabs_asm_out_constructor): Move from here ...
      	* dbxout.c: ... to here.
      
      	* gcov-dump.c (dump_file): Rename to dump_gcov_file.  Update callers.
      
      	* collect2.h (dump_file): Rename to dump_ld_file.
      	* collect2.c: Likewise.
      	* tlink.c: Likewise.
      
      	* alias.c: Do not include output.h.
      	* auto-inc-dec.c: Likewise.
      	* bt-load.c: Likewise.
      	* caller-save.c: Likewise.
      	* cfg.c: Likewise.
      	* cfgbuild.c: Likewise.
      	* cfgcleanup.c: Likewise.
      	* cfglayout.c: Likewise.
      	* cfgloop.c: Likewise.
      	* cfgloopanal.c: Likewise.
      	* cfgloopmanip.c: Likewise.
      	* cfgrtl.c: Likewise.
      	* cgraph.c: Likewise.
      	* cgraphclones.c: Likewise.
      	* combine-stack-adj.c: Likewise.
      	* combine.c: Likewise.
      	* cprop.c: Likewise.
      	* cse.c: Likewise.
      	* cselib.c: Likewise.
      	* dbgcnt.c: Likewise.
      	* df-problems.c: Likewise.
      	* df-scan.c: Likewise.
      	* dojump.c: Likewise.
      	* fwprop.c: Likewise.
      	* gcse.c: Likewise.
      	* graph.c: Likewise.
      	* haifa-sched.c: Likewise.
      	* hw-doloop.c: Likewise.
      	* ipa-inline-transform.c: Likewise.
      	* ipa-pure-const.c: Likewise.
      	* ipa-reference.c: Likewise.
      	* ipa-utils.c: Likewise.
      	* ira-build.c: Likewise.
      	* ira-emit.c: Likewise.
      	* lcm.c: Likewise.
      	* loop-doloop.c: Likewise.
      	* loop-invariant.c: Likewise.
      	* loop-iv.c: Likewise.
      	* loop-unroll.c: Likewise.
      	* loop-unswitch.c: Likewise.
      	* lto-cgraph.c: Likewise.
      	* lto-section-in.c: Likewise.
      	* lto-streamer-in.c: Likewise.
      	* mcf.c: Likewise.
      	* mode-switching.c: Likewise.
      	* postreload-gcse.c: Likewise.
      	* postreload.c: Likewise.
      	* predict.c: Likewise.
      	* profile.c: Likewise.
      	* ree.c: Likewise.
      	* reg-stack.c: Likewise.
      	* regcprop.c: Likewise.
      	* regmove.c: Likewise.
      	* regstat.c: Likewise.
      	* reload1.c: Likewise.
      	* sched-ebb.c: Likewise.
      	* sel-sched-dump.c: Likewise.
      	* simplify-rtx.c: Likewise.
      	* stor-layout.c: Likewise.
      	* store-motion.c: Likewise.
      	* tracer.c: Likewise.
      	* tree-affine.c: Likewise.
      	* tree-cfg.c: Likewise.
      	* tree-cfgcleanup.c: Likewise.
      	* tree-dfa.c: Likewise.
      	* tree-into-ssa.c: Likewise.
      	* tree-nomudflap.c: Likewise.
      	* tree-optimize.c: Likewise.
      	* tree-pretty-print.c: Likewise.
      	* tree-profile.c: Likewise.
      	* tree-ssa-address.c: Likewise.
      	* tree-ssa-ccp.c: Likewise.
      	* tree-ssa-copy.c: Likewise.
      	* tree-ssa-dom.c: Likewise.
      	* tree-ssa-loop-ch.c: Likewise.
      	* tree-ssa-loop-im.c: Likewise.
      	* tree-ssa-loop-manip.c: Likewise.
      	* tree-ssa-loop-niter.c: Likewise.
      	* tree-ssa-loop-prefetch.c: Likewise.
      	* tree-ssa-loop-unswitch.c: Likewise.
      	* tree-ssa-loop.c: Likewise.
      	* tree-ssa-propagate.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.
      	* value-prof.c: Likewise.
      	* var-tracking.c: Likewise.
      	* web.c: Likewise.
      
      	* config/m32r/m32r.c: Include dbxout.h.
      	* config/pa/pa.c: Likewise.
      	* config/rs6000/rs6000.c: Likewise.
      
      	* Makefile.in: Fix dependencies.
      	* config/rs6000/t-rs5000: Likewise.
      
      c-family/
      	* c-ada-spec.c: Do not include output.h.
      	* c-semantics.c: Likewise.
      
      cp/
      	* call.c: Do not include output.h.
      	* class.c: Likewise.
      	* except.c: Likewise.
      	* friend.c: Likewise.
      	* init.c: Likewise.
      	* lex.c: Likewise.
      	* method.c: Likewise.
      	* parser.c: Likewise.
      	* pt.c: Likewise.
      	* rtti.c: Likewise.
      	* search.c: Likewise.
      
      objc/
      	* objc-act.c: Do not include output.h.
      
      fortran/
      	* trans-common.c: Do not include output.h.
      	* trans-decl.c: Likewise.
      
      java/
      	* resource.c: Do not include output.h.
      
      From-SVN: r188082
      Steven Bosscher committed
  18. 21 May, 2012 1 commit
  19. 22 Apr, 2012 1 commit
    • lto-symtab.c (lto_varpool_replace_node): Do not merge needed flags. · 66058468
      	* lto-symtab.c (lto_varpool_replace_node): Do not merge needed flags.
      	* cgraphbuild.c (record_reference, record_type_list, mark_address,
      	mark_load, mark_store): Do not mark varpool nodes as needed.
      	* cgraph.c (cgraph_new_nodes): Remove.
      	(cgraph_create_function_alias): Do not mark nodes as reachable.
      	(cgraph_add_thunk): Likewise.
      	(cgraph_mark_reachable_node): Do not manage the queue.
      	* cgraph.h (cgraph_node): Remove next_needed.
      	(varpool_nodes_queue): Remove next_needed and prev_needed.
      	(x_cgraph_nodes_queue, x_cgraph_nodes_queue, cgraph_new_nodes): Remove.
      	(cgraph_new_nodes): Declare.
      	(x_varpool_nodes_queue, varpool_nodes_queue); Remove.
      	(varpool_analyze_pending_decls): Remove.
      	(varpool_analyze_node): New.
      	(varpool_mark_needed_node): Remove.
      	(varpool_first_variable, varpool_next_variable): New inlines.
      	(varpool_first_static_initializer, varpool_next_static_initializer): Update.
      	(FOR_EACH_STATIC_VARIABLE): Remove unused walker.
      	(varpool_first_defined_variable): New inline.
      	(varpool_next_defined_variable): New inline
      	(FOR_EACH_VARIABLE): Reimplement.
      	(FOR_EACH_DEFINED_VARIABLE): Reimplement.
      	* toplev.c (wrapup_global_declaration_2): Use analyzed instead of
      	needed flag.
      	* cgraphunit.c (cgraph_new_nodes): Declare here.
      	(enqueue_node): New function.
      	(cgraph_process_new_functions): update for new
      	node set; when constructing cgraph enqueue node for processing.
      	(cgraph_add_new_function): Use new node set.
      	(process_function_and_variable_attributes): Do not set varpool needed
      	flags.
      	(referred_to_p): New function.
      	(varpool_finalize_decl): Move here from varpool.c; enqueue needed node
      	when varpool is in construction.
      	(cgraph_analyze_functions): Rewrite.
      	(cgraph_expand_all_functions): Update.
      	(cgraph_output_in_order): Do not analyze pending decls; do not set needed flags.
      	(cgraph_optimize): Do not analyze pending decls.
      	* lto-cgraph.c (input_varpool_node): Clear analyzed flag for objects in other
      	partition; do not mark node as needed.
      	* dwarf2out.c (reference_to_unused): Use analyzed flag.
      	(premark_types_used_by_global_vars_helper): Likewise.
      	* ipa.c (process_references): Do not call varpool_mark_needed_node.
      	(cgraph_remove_unreachable_nodes): Do not rely on varpool and
      	cgrpah queues.
      	(function_and_variable_visibility): Do not mark node as needed.
      	(whole_program_function_and_variable_visibility): Likewise.
      	* Makefile.in (gt-varpool.h): No longer needed.
      	* passes.c (execute_one_pass, execute_ipa_pass_list): Update.
      	(ipa_write_summaries): Do not use needed flag.
      	* varpool.c: Do not include gt-varpool.h
      	(x_varpool_nodes_queue, x_varpool_last_needed_node,
      	x_varpool_last_needed_node, x_varpool_first_unanalyzed_node,
      	x_varpool_first_unanalyzed_node, varpool_assembled_nodes_queue):
      	Remove.
      	(varpool_remove_node): Do not update the lists.
      	(dump_varpool_node): Do not dump needed flag.
      	(varpool_enqueue_needed_node): Remove.
      	(varpool_mark_needed_node): Remove.
      	(varpool_reset_queue): Remove.
      	(varpool_finalize_decl): Move to cgraphunit.c
      	(varpool_analyze_node): New functions based on former
      	varpool_analyze_pending_decls.
      	(varpool_analyze_pending_decls): Remove.
      	(varpool_assemble_decl): Do not update the lists.
      	(enqueue_node): New function.
      	(varpool_remove_unreferenced_decls): Rewrite.
      	(varpool_empty_needed_queue): Remove.
      	(add_new_static_var): Do not mark node as needed.
      	(varpool_create_variable_alias): Handle expansion state
      	creation.
      	* except.c (output_ttype): Do not mark node as needed.
      	* varasm.c (mark_decl_referenced): Do not use mark_needed_node.
      	* tree-profile.c (init_ic_make_global_vars, init_ic_make_global_vars):
      	Likewise.
      	* tree-switch-conversion.c (build_one_array): Likewise.
      
      	* class.c (build_utf8_ref): Do not mark varpool node as needed.
      
      	* gcc-interface/utils.c (gnat_write_global_declarations): Do not mark
      	needed node.
      
      	* lto-partition.c (partition_varpool_node_p): Do not use needed flag.
      
      	* decl2.c (maybe_make_one_only): Mark keyed COMDATs as USED so they
      	gets finalized.
      
      From-SVN: r186687
      Jan Hubicka committed
  20. 20 Apr, 2012 1 commit
    • lto-symtab.c (lto_cgraph_replace_node): Merge needed instead of force flags. · ead84f73
      	* lto-symtab.c (lto_cgraph_replace_node): Merge needed instead of force flags.
      	* cgraph.c (cgraph_add_thunk): Use mark_reachable_node.
      	(cgraph_remove_node): Update.
      	(cgraph_mark_needed_node): Remove.
      	(cgraph_mark_force_output_node): New.
      	(dump_cgraph_node): Do not dump needed flag.
      	(cgraph_node_cannot_be_local_p_1): Update.
      	(cgraph_can_remove_if_no_direct_calls_and_refs): Update.
      	* cgraph.h (symtab_node_base): Add force_output flag.
      	(cgraph_node): Remove needed flag.
      	(varpool_node): Remove force_output flag.
      	(cgraph_mark_needed_node): Remove.
      	(cgraph_mark_force_output_node): New.
      	(cgraph_only_called_directly_or_aliased_p,
      	varpool_can_remove_if_no_refs, varpool_all_refs_explicit_p): Update.
      	* ipa-cp.c (ipcp_generate_summary): Remove out of date assert.
      	* cgraphunit.c (cgraph_decide_is_function_needed): rewrite.
      	(cgraph_add_new_function); Update.
      	(cgraph_mark_if_needed); Update.
      	(verify_cgraph_node): Update.
      	(cgraph_analyze_function): Alias target is reachable.
      	(process_function_and_variable_attributes): Update: externally_visible
      	flag makes function reachable.
      	(cgraph_analyze_functions): Update dumping.
      	* lto-cgraph.c (lto_output_node, lto_output_varpool_node,
      	input_overwrite_node, input_varpool_node): Update streaming.
      	* lto-streamer-out.c (produce_symtab): Use force_output.
      	* ipa.c (process_references): Weakrefs must be processed.
      	(cgraph_remove_unreachable_nodes): Likewise; update for new
      	force_output flag.
      	(varpool_externally_visible_p); Weakrefs are externally visible
      	even if they are not.
      	(function_and_variable_visibility): Update; when processing alias
      	pair force the targets to be output.
      	(whole_program_function_and_variable_visility): Use mark_reachable_node.
      	* trans-mem.c (ipa_tm_mark_needed_node): Remove
      	(ipa_tm_mark_force_output_node): New function.
      	(ipa_tm_create_version_alias, ipa_tm_create_version): Update.
      	* gimple-fold.c (can_refer_decl_in_current_unit_p): Be lax about aliases.
      	* varasm.c (mark_decl_referenced): Update.
      	(find_decl_and_mark_needed): Remove.
      	(find_decl): New function.
      	(weak_finish, finish_aliases_1, assemble_alias): Update; do not mark
      	alias targets as needed.
      	(dump_tm_clone_pairs): Update.
      	* tree-inline.c (copy_bb): Update check.
      	* symtab.c (dump_symtab_base): Dump force_output.
      	* tree-ssa-structalias.c (ipa_pta_execute): Use force_output.
      	* passes.c (execute_todo): Fix dumping.
      	* varpool.c (decide_is_variable_needed, varpool_finalize_decl): Update.
      	(varpool_analyze_pending_decls): Alias target is reachable.
      	(varpool_create_variable_alias): Finalize weakrefs.
      
      	* class.c (make_local_function_alias): Do not mark symbol referenced.
      
      	* objc-acct.c (mark_referenced_methods); Use
      	cgraph_mark_force_output_node.
      
      	* gcc-interface/utils.c (gnat_write_global_declarations): Update for new
      	force_output placement.
      
      	* lto/lto-partition.c (partition_cgraph_node_p): Use force_output.
      
      From-SVN: r186624
      Jan Hubicka committed
  21. 11 Apr, 2012 3 commits
    • Fix java bootstrap on 32-bit targets · 3dee4905
      	* jcf-dump.c (print_constant): Cast JPOOL_USHORT2, JPOOL_USHORT1
      	results to long to match formats.
      
      From-SVN: r186330
      Rainer Orth committed
    • jcf-reader.c (jcf_parse_bootstrap_methods): Add ATTRIBUTE_UNUSED. · e9184c9e
      2012-04-11  Andrew Haley  <aph@redhat.com>
      
      	* jcf-reader.c (jcf_parse_bootstrap_methods): Add
      	ATTRIBUTE_UNUSED.
      
      From-SVN: r186319
      Andrew Haley committed
    • jcf.h (bootstrap_method): New. · cca4dd59
      2012-04-11  Andrew Haley  <aph@redhat.com>
      
      	* jcf.h (bootstrap_method): New.
      	(BootstrapMethods): New.
      	(JCF): Add BootstrapMethods.
      	(enum cpool_tag): Add MethodHandle, MethodType, and InvokeDynamic.
      	* jcf-reader.c (jcf_parse_bootstrap_methods): New.
      	(jcf_parse_constant_pool): Handlers for MethodHandle, MethodType,
      	and InvokeDynamic.
      	(jcf_parse_bootstrap_methods): New.
      	* javaop.def (invokedynamic): New opcode.
      	* jcf-parse.c (get_constant): An unknown constant type should not
      	be an internal error, but a fatal one.  Make it so.
      	* jcf-dump.c (HANDLE_BOOTSTRAP_METHODS_ATTRIBUTE): New.
      	(HANDLE_END_BOOTSTRAP_METHODS): New.
      	(print_constant): Handlers for MethodHandle, MethodType, and
      	InvokeDynamic.
      
      From-SVN: r186307
      Andrew Haley committed
  22. 02 Apr, 2012 1 commit
  23. 29 Mar, 2012 1 commit
  24. 23 Jan, 2012 1 commit
  25. 01 Jan, 2012 1 commit
    • gcc.c (process_command): Update copyright notice dates. · 66f1b195
      gcc/
      	* gcc.c (process_command): Update copyright notice dates.
      	* gcov.c (print_version): Likewise.
      	* gcov-dump.c (print_version): Likewise.
      	* mips-tfile.c (main): Likewise.
      	* mips-tdump.c (main): Likewise.
      gcc/fortran/
      	* gfortranspec.c (lang_specific_driver): Update copyright notice
      	dates.
      gcc/java/
      	* jcf-dump.c (version): Update copyright notice dates.
      libmudflap/
      	* mf-runtime.c (__mf_usage): Update copyright notice dates.
      libjava/
      	* gnu/gcj/convert/Convert.java (version): Update copyright notice
      	dates.
      	* gnu/gcj/tools/gcj_dbtool/Main.java (main): Likewise.
      libjava/classpath/
      	* gnu/java/rmi/registry/RegistryImpl.java (version): Update
      	copyright notice dates.
      	* tools/gnu/classpath/tools/orbd/Main.java (run): Likewise.
      
      From-SVN: r182773
      Jakub Jelinek committed
  26. 03 Dec, 2011 1 commit
  27. 23 Nov, 2011 1 commit
  28. 07 Nov, 2011 1 commit
    • Allow libcalls to be installed for legacy __sync optabs. · cedb4a1a
      This allows a target which implements the __sync interfaces
      in libgcc to continue to use them transparently with the
      new __atomic builtins.
      
      It is assumed that these libgcc routines DO NOT use spinlocks.
      This is true of all extant libgcc instances.
      
              * optabs.h (OTI_sync_compare_and_swap, OTI_sync_lock_test_and_set,
              OTI_sync_old_add, OTI_sync_old_sub, OTI_sync_old_ior,
              OTI_sync_old_and, OTI_sync_old_xor, OTI_sync_old_nand,
              OTI_sync_new_add, OTI_sync_new_sub, OTI_sync_new_ior,
              OTI_sync_new_and, OTI_sync_new_xor, OTI_sync_new_nand): Move and
              rename from the direct_optab_index enum.
              (sync_compare_and_swap_optab, sync_lock_test_and_set_optab,
              sync_old_add_optab, sync_old_sub_optab, sync_old_ior_optab,
              sync_old_and_optab, sync_old_xor_optab, sync_old_nand_optab,
              sync_new_add_optab, sync_new_sub_optab, sync_new_ior_optab,
              sync_new_and_optab, sync_new_xor_optab, sync_new_nand_optab): Read
              from the optab_table, not the direct_optab_table.
              (init_sync_libfuncs): Declare.
              (can_compare_and_swap_p): Update parameters.
              * optabs.c (init_sync_libfuncs_1, init_sync_libfuncs): New.
              (can_compare_and_swap_p): Add allow_libcall parameter; if true,
              test for the legacy compare-and-swap libcall.
              (expand_atomic_exchange): Use the legacy test-and-set libcall.
              (expand_atomic_compare_and_swap): Use the legacy CAS libcall.
              (struct atomic_op_functions): Update for optab type changes.
              (maybe_emit_op): Likewise.
              (expand_atomic_fetch_op): Use the legacy fetch-op libcalls.
              * builtins.c (fold_builtin_atomic_always_lock_free): Update call
              to can_compare_and_swap_p.
              * omp-low.c (expand_omp_atomic_fetch_op): Likewise.
              (expand_omp_atomic_pipeline): Likewise.
              * genopinit.c (optabs): Make sync_old_*_optab, sync_new_*_optab,
              sync_compare_and_swap_optab, sync_lock_test_and_set_optab regular
              optabs.
      
      From-SVN: r181134
      Richard Henderson committed
  29. 02 Nov, 2011 1 commit
    • Move shlib support to toplevel libgcc · b040f2be
      	gcc:
      	PR translation/45116
      	* Makefile.in (slibdir): Remove, don't export.
      	(SHLIB_NM_FLAGS): Remove.
      	(libgcc.mvars): Don't emit SHLIB_LINK, SHLIB_INSTALL,
      	SHLIB_DLLDIR, SHLIB_EXT, SHLIB_MKMAP, SHLIB_MKMAP_OPTS,
      	SHLIB_MAPFILES, SHLIB_NM_FLAGS.
      	(DRIVER_DEFINES): Test SHLIB instead of SHLIB_LINK.
      	(gcc.o): Pass SHLIB instead of SHLIB_LINK.
      	(gccspec.o): Likewise.
      	(installdirs): Don't create $(DESTDIR)$(slibdir).
      	* configure.ac (slibdir): Remove.
      	* configure: Regenerate.
      	* libgcc-libsystem.ver: Move to ../libgcc/config.
      	* mkmap-flat.awk, mkmap-symver.awk: Move to ../libgcc.
      	* config/libgcc-glibc.ver: Move to ../libgcc/config.
      	* config/t-libunwind (SHLIB_LC): Remove.
      	* config/t-linux (SHLIB_MAPFILES): Remove.
      	* config/t-slibgcc-dummy: Rename to config/t-slibgcc.
      	* config/t-slibgcc-elf-ver: Remove.
      	* config/t-slibgcc-libgcc, config/t-slibgcc-nolc-override: Move to
      	../libgcc/config.
      	* config/alpha/libgcc-alpha-ldbl.ver, config/alpha/t-linux: Move
      	to ../libgcc/config/alpha.
      	* config/alpha/t-vms (shlib_version, SHLIB_EXT, SHLIB_OBJS,
      	SHLIB_NAME, SHLIB_MULTILIB, SHLIB_INSTALL, SHLIB_SYMVEC,
      	SHLIB_SYMVECX2, SHLIB_LINK): Remove.
      	* config/arm/libgcc-bpabi.ver: Move to ../libgcc/config/arm.
      	* config/arm/t-bpabi (SHLIB_MAPFILES): Remove.
      	* config/arm/t-netbsd (SHLIB_EXT, SHLIB_NAME, SHLIB_SONAME,
      	SHLIB_OBJS, SHLIB_LINK, SHLIB_INSTALL): Remove.
      	* config/arm/t-symbian (SHLIB_LC): Remove.
      	* config/bfin/libgcc-bfin.ver: Move to
      	../libgcc/config/bfin/libgcc-glibc.ver.
      	* config/bfin/t-bfin-linux (SHLIB_MAPFILES): Remove.
      	* config/c6x/libgcc-c6xeabi.ver: Move to
      	../libgcc/config/c6x/libgcc-eabi.ver.
      	* config/c6x/t-c6x-elf (SHLIB_MAPFILES): Remove.
      	* config/cris/libgcc.ver: Move to
      	../libgcc/config/cris/libgcc-glibc.ver.
      	* config/cris/t-linux (SHLIB_MAPFILES): Remove.
      	* config/frv/libgcc-frv.ver: Move to ../libgcc/config/frv.
      	* config/frv/t-linux (SHLIB_MAPFILES): Remove.
      	* config/i386/darwin-libgcc.10.4.ver: Move to
      	../libgcc/config/i386/libgcc-darwin.10.4.ver.
      	* config/i386/darwin-libgcc.10.5.ver: Move to
      	../libgcc/config/i386/libgcc-darwin.10.5.ver.
      	* config/i386/libgcc-glibc.ver: Move to ../libgcc/config/i386.
      	* config/i386/t-cygming (SHLIB_EXT, SHLIB_IMPLIB, SHLIB_SOVERSION,
      	SHLIB_SONAME, SHLIB_MAP, SHLIB_OBJS, SHLIB_DIR, SHLIB_SLIBDIR_QUAL)
      	SHLIB_PTHREAD_CFLAG, SHLIB_PTHREAD_LDFLAG, SHLIB_LINK,
      	SHLIB_INSTALL, SHLIB_MKMAP, SHLIB_MKMAP_OPTS, SHLIB_MAPFILES):
      	Remove.
      	* config/i386/t-cygwin (SHLIB_LC, SHLIB_EH_EXTENSION,
      	SHLIB_IMPLIB, SHLIB_SONAME, SHLIB_MKMAP_OPTS): Remove.
      	* config/i386/t-dlldir, config/i386/t-dlldir-x: Move to
      	../libgcc/config/i386.
      	* config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Move to
      	../libgcc/config/i386.
      	* config/i386/t-linux: Move to ../libgcc/config/i386.
      	* config/i386/t-mingw-pthread: Move to ../libgcc/config/i386.
      	* config/i386/t-mingw-w32 (SHLIB_LC): Remove.
      	* config/i386/t-mingw-w64: Likewise.
      	* config/i386/t-mingw32: Remove.
      	* config/ia64/libgcc-glibc.ver, config/ia64/libgcc-ia64.ver: Move
      	to ../libgcc/config/ia64.
      	* config/ia64/t-glibc: Remove.
      	* config/ia64/t-hpux (SHLIB_EXT, SHLIB_LINK, SHLIB_INSTALL): Remove.
      	* config/ia64/t-ia64 (SHLIB_MAPFILES): Remove.
      	* config/ia64/t-vms (shlib_version, SHLIB_EXT, SHLIB_OBJS,
      	SHLIB_NAME, SHLIB_MULTILIB, SHLIB_INSTALL, SHLIB_LINK): Remove.
      	* config/ia64/vms_symvec_libgcc_s.opt: Remove.
      	* config/m32r/libgcc-glibc.ver: Move to ../libgcc/config/m32r.
      	* config/m32r/t-linux (SHLIB_MAPFILES): Remove.
      	* config/m68k/t-slibgcc-elf-ver: Move to ../libgcc/config/m68k.
      	* config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Remove.
      	* config/pa/t-hpux-shlib: Move to ../libgcc/config/pa/t-slibgcc-hpux.
      	* config/pa/t-slibgcc-dwarf-ver, config/pa/t-slibgcc-sjsj-ver:
      	Move to ../libgcc/config/pa.
      	* config/rs6000/darwin-libgcc.10.4.ver: Move to
      	../libgcc/config/rs6000/libgcc-darwin.10.4.ver.
      	* config/rs6000/darwin-libgcc.10.5.ver: Move to
      	../libgcc/config/rs6000/libgcc-darwin.10.5.ver.
      	* config/rs6000/t-aix43 (SHLIB_EXT, SHLIB_LINK, SHLIB_INSTALL,
      	SHLIB_LIBS, SHLIB_MKMAP, SHLIB_NM_FLAGS, AR_FLAGS_FOR_TARGET): Remove.
      	* config/rs6000/t-aix52: Likewise.
      	* config/sh/libgcc-excl.ver, config/sh/libgcc-glibc.ver: Move to
      	../libgcc/config/sh.
      	* config/sparc/libgcc-sparc-glibc.ver: Move to
      	../libgcc/config/sparc/libgcc-glibc.ver.
      	* config/sparc/t-linux: Move to ../libgcc/config/sparc.
      	* config/xtensa/t-linux (SHLIB_MAPFILES): Remove.
      	* config/xtensa/libgcc-xtensa.ver: Move to
      	../libgcc/config/xtensa/libgcc-glibc.ver.
      	* config.gcc (*-*-freebsd*): Replace t-slibgcc-elf-ver with
      	t-slibgcc in tmake_file.
      	Remove t-slibgcc-nolc-override for *-*-freebsd[34],
      	*-*-freebsd[34].* with pthreads.
      	(*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu,
      	*-*-knetbsd*-gnu, *-*-gnu*, *-*-kopensolaris*-gnu): Replace
      	t-slibgcc-elf-ver with t-slibgcc in tmake_file.
      	(*-*-netbsd*): Likewise.
      	(*-*-solaris2*): Replace t-slibgcc-dummy with t-slibgcc in tmake_file.
      	(*-*-*vms*): Add t-slibgcc to tmake_file.
      	(alpha*-*-linux*): Remove alpha/t-linux from tmake_file.
      	(alpha*-dec-osf5.1*): Replace t-slibgcc-dummy with t-slibgcc in
      	tmake_file.
      	(arm*-*-linux*): Remove t-slibgcc-libgcc from tmake_file for
      	arm*-*-linux-*eabi.
      	(bfin*-linux-uclibc*): Replace t-slibgcc-dummy with t-slibgcc in
      	tmake_file.
      	(crisv32-*-linux*, cris-*-linux*): Likewise.
      	(hppa*-*-linux*): Remove t-slibgcc-libgcc, pa/t-slibgcc-sjlj-ver,
      	pa/t-slibgcc-dwarf-ver from tmake_file.
      	(hppa[12]*-*-hpux10*): Replace pa/t-hpux-shlib with t-slibgcc in
      	tmake_file.
      	Remove pa/t-slibgcc-sjlj-ver, pa/t-slibgcc-dwarf-ver from tmake_file.
      	(hppa*64*-*-hpux11*): Likewise.
      	(hppa[12]*-*-hpux11*): Likewise.
      	(i[34567]86-*-darwin*): Replace t-slibgcc-dummy in t-slibgcc in
      	tmake_file.
      	(x86_64-*-darwin*): Likewise.
      	(i[34567]86-*-cygwin*): Remove tmake_eh_file, tmake_dlldir_file.
      	Add t-slibgcc to tmake_file.
      	(i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
      	Remove i386/t-mingw32 from tmake_file unless x86_64-w64-*,
      	i[34567]86-w64-*.
      	Remove i386/t-mingw-pthread from tmake_file.
      	(ia64*-*-linux*): Remove ia64/t-glibc from tmake_file.
      	(ia64*-*-hpux*): Add t-slibgcc to tmake_file.
      	(ia64-hp-*vms*): Likewise.
      	(m32r-*-linux*): Replace t-slibgcc-elf-ver with t-slibgcc in
      	tmake_file.
      	(m32rle-*-linux*): Likewise.
      	(m68k-*-linux*): Remove m68k/t-slibgcc-elf-ver from tmake_file.
      	(microblaze*-linux*): Remove t-slibgcc-elf-ver,
      	t-slibgcc-nolc-override from tmake_file.
      	(mips-sgi-irix6.5*): Replace t-slibgcc-dummy with t-slibgcc in
      	tmake_file.
      	(powerpc-*-darwin*): Likewise.
      	(powerpc64-*-darwin*): Likewise.
      	(powerpc-*-freebsd*): Remove t-slibgcc-libgcc from tmake_file.
      	(powerpc-*-linux*, powerpc64-*-linux*): Likewise.
      	(rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*): Add
      	t-slibgcc to tmake_file.
      	(rs6000-ibm-aix5.1.*, powerpc-ibm-aix5.1.*): Likewise.
      	(rs6000-ibm-aix5.2.*, powerpc-ibm-aix5.2.*): Likewise.
      	(rs6000-ibm-aix5.3.*, powerpc-ibm-aix5.3.*): Likewise.
      	(rs6000-ibm-aix[6789].*, powerpc-ibm-aix[6789].*): Likewise.
      	(sparc-*-linux*): Remove sparc/t-linux from tmake_file.
      	(sparc64-*-linux*): Likewise.
      	(tic6x-*-uclinux): Replace t-slibgcc-elf-ver with t-slibgcc in
      	tmake_file.
      	(i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu,
      	x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Remove i386/t-linux
      	from tmake_file.
      
      	gcc/cp:
      	* Make-lang.in (g++spec.o): Pass SHLIB instead of SHLIB_LINK.
      
      	gcc/fortran:
      	* Makef-lang.in (gfortranspec.o): Pass SHLIB instead of SHLIB_LINK.
      
      	gcc/go:
      	* Make-lang.in (gospec.o): Pass SHLIB instead of SHLIB_LINK.
      
      	gcc/java:
      	* Make-lang.in (jvspec.o): Pass SHLIB instead of SHLIB_LINK.
      
      	libgcc:
      	* Makefile.in (SHLIB_NM_FLAGS): Set.
      	* mkmap-flat.awk, mkmap-symver.awk: New files.
      	* configure.ac (libgcc_cv_lib_sjlj_exceptions): Check for SjLj
      	exceptions.
      	* configure: Regenerate.
      	* config/libgcc-glibc.ver: New file.
      	* config/libgcc-libsystem.ver: New file.
      	* config/t-libunwind (SHLIB_LC): Set.
      	* config/t-linux: New file.
      	* config/t-slibgcc (INSTALL_SHLIB): New.
      	(SHLIB_INSTALL): Use it.
      	* config/t-slibgcc-darwin (SHLIB_MKMAP): Use $(srcdir) to refer
      	to mkmap-symver.awk.
      	(SHLIB_MAPFILES): Don't append, adapt pathname.
      	(SHLIB_VERPFX): Set.
      	* config/t-slibgcc-elf-ver (SHLIB_MKMAP): Use $(srcdir) to refer
      	to mkmap-symver.awk.
      	* config/t-slibgcc-gld-nover, config/t-slibgcc-hpux,
      	config/t-slibgcc-libgcc, config/t-slibgcc-vms: New files.
      	* config/alpha/libgcc-alpha-ldbl.ver, config/alpha/t-linux: New files.
      	* config/alpha/t-slibgcc-osf (SHLIB_MKMAP): Use $(srcdir) to refer
      	to mkmap-flat.awk.
      	* config/arm/t-bpabi (SHLIB_MAPFILES): Set.
      	* config/bfin/libgcc-glibc.ver, config/bfin/t-linux: New files.
      	* config/c6x/libgcc-eabi.ver, config/c6x/t-elf: New files.
      	* config/cris/libgcc-glibc.ver, config/cris/t-linux: New files.
      	* config/frv/libgcc-frv.ver, config/frv/t-linux: New files.
      	* config/i386/libgcc-darwin.10.4.ver,
      	config/i386/libgcc-darwin.10.5.ver, config/i386/libgcc-glibc.ver:
      	New files.
      	* config/i386/t-darwin: Remove.
      	* config/i386/t-darwin64: Likewise.
      	* config/i386/t-dw2-eh, config/i386/t-sjlj-eh: New files.
      	* config/i386/t-slibgcc-cygming, config/i386/t-cygwin,
      	config/i386/t-dlldir, config/i386/t-dlldir-x: New files.
      	* config/i386/t-linux: New file.
      	* config/i386/t-mingw32: New file.
      	* config/ia64/libgcc-glibc.ver, config/ia64/libgcc-ia64.ver: New files.
      	* config/ia64/t-glibc: Rename to ...
      	* config/ia64/t-linux: ... this.
      	(SHLIB_MAPFILES): Set.
      	* config/ia64/t-glibc-libunwind: Rename to ...
      	* config/ia64/t-linux-libunwind: ... this.
      	* config/ia64/t-ia64 (SHLIB_MAPFILES): Set.
      	* config/ia64/t-slibgcc-hpux: New file.
      	* config/m32r/libgcc-glibc.ver, config/m32r/t-linux: New files.
      	* config/m68k/t-slibgcc-elf-ver: New file.
      	* config/mips/t-mips16 (SHLIB_MAPFILES): Set.
      	* config/mips/t-slibgcc-irix (SHLIB_MKMAP): Use $(srcdir) to refer
      	to mkmap-flat.awk.
      	* config/pa/t-slibgcc-hpux: New file.
      	* config/pa/t-slibgcc-dwarf-ver, config/pa/t-slibgcc-sjsj-ver: New
      	files.
      	* config/rs6000/libgcc-darwin.10.4.ver,
      	config/rs6000/libgcc-darwin.10.5.ver: New files.
      	* config/rs6000/libgcc-ppc-glibc.ver: Rename to
      	config/rs6000/libgcc-glibc.ver.
      	* config/rs6000/libgcc-ppc64.ver: Rename to
      	config/rs6000/libgcc-ibm-ldouble.ver.
      	* config/rs6000/t-darwin (SHLIB_VERPFX): Remove.
      	* config/rs6000/t-ibm-ldouble (SHLIB_MAPFILES): Adapt filename.
      	* config/rs6000/t-ldbl128: Rename to ...
      	* config/rs6000/t-linux: ... this.
      	(SHLIB_MAPFILES): Adapt filename.
      	* config/rs6000/t-slibgcc-aix: New file.
      	* config/sh/libgcc-excl.ver, config/sh/libgcc-glibc.ver: New files.
      	* config/sh/t-linux (SHLIB_MAPFILES): Use $(srcdir) to refer to
      	libgcc-excl.ver, libgcc-glibc.ver.
      	(SHLIB_LINK, SHLIB_INSTALL): Remove.
      	* config/sparc/libgcc-glibc.ver: New file.
      	* config/sparc/t-linux: New file.
      	* config/xtensa/libgcc-glibc.ver, config/xtensa/t-linux: New files.
      	* config.host (*-*-freebsd*): Add t-slibgcc, t-slibgcc-gld,
      	t-slibgcc-elf-ver to tmake_file.
      	Add t-slibgcc-nolc-override to tmake_file for posix threads on
      	*-*-freebsd[34].
      	(*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu,
      	*-*-gnu*, *-*-kopensolaris*-gnu): Add t-slibgcc, t-slibgcc-gld,
      	t-slibgcc-elf-ver, t-linux to tmake_file.
      	(*-*-netbsd*): Add t-slibgcc, t-slibgcc-gld, t-slibgcc-elf-ver to
      	tmake_file.
      	(alpha*-*-linux*): Add alpha/t-linux to tmake_file.
      	(alpha64-dec-*vms*): Add t-slibgcc-vms to tmake_file.
      	(alpha*-dec-*vms*): Likewise.
      	(arm*-*-freebsd*): Append to tmake_file.
      	(arm*-*-netbsdelf*): Add t-slibgcc-gld-nover to tmake_file.
      	(arm*-*-linux*): Add t-slibgcc-libgcc to tmake_file for
      	arm*-*-linux-*eabi.
      	(arm*-*-eabi*, arm*-*-symbianelf*): Add t-slibgcc-nolc-override to
      	tmake_file for arm*-*-symbianelf*.
      	(bfin*-linux-uclibc*): Append to tmake_file, add bfin/t-linux.
      	(cris-*-linux*, crisv32-*-linux*): Append to tmake_file, add
      	cris/t-linux.
      	(frv-*-*linux*): Append to tmake_file, add frv/t-linux.
      	(hppa*-*-linux*): Add t-slibgcc-libgcc, pa/t-slibgcc-sjlj-ver,
      	pa/t-slibgcc-dwarf-ver to tmake_file.
      	(hppa[12]*-*-hpux10*): Add t-slibgcc, pa/t-slibgcc-sjlj-ver,
      	pa/t-slibgcc-dwarf-ver, t-slibgcc-hpux, pa/t-slibgcc-hpux to tmake_file.
      	(hppa*64*-*-hpux11*): Likewise.
      	(hppa[12]*-*-hpux11*): Likewise.
      	(x86_64-*-darwin*): Don't override tmake_file, but only keep
      	i386/t-crtpc, i386/t-crtfm.
      	(i[34567]86-*-cygwin*): Set tmake_eh_file, tmake_dlldir_file.
      	Prepend $tmake_eh_file, $tmake_dlldir_file, i386/t-slibgcc-cygming
      	to tmake_file.
      	Add i386/t-cygwin to tmake_file.
      	Prepent i386/t-mingw-pthread to tmake_file for posix threads.
      	(i[34567]86-*-mingw*): Set tmake_eh_file, tmake_dlldir_file.
      	Prepend $tmake_eh_file, $tmake_dlldir_file, i386/t-slibgcc-cygming
      	to tmake_file.
      	Add i386/t-mingw32 to tmake_file.
      	(x86_64-*-mingw*): Likewise.
      	(ia64*-*-freebsd*): Append to tmake_file.
      	(ia64*-*-linux*): Append to tmake_file.
      	Replace ia64/t-glibc by ia64/t-linux.
      	Replace ia64/t-glibc-libunwind by ia64/t-linux-libunwind if using
      	system libunwind.
      	(ia64*-*-hpux*): Add t-slibgcc, ia64/t-slibgcc-hpux,
      	t-slibgcc-hpux to tmake_file.
      	(ia64-hp-*vms*): Add t-slibgcc-vms to tmake_file.
      	(m32r-*-linux*): Append to tmake_file, add m32r/t-linux.
      	(m32rle-*-linux*): Likewise.
      	(m68k-*-linux*)): Add m68k/t-slibgcc-elf-ver to tmake_file unless
      	sjlj exceptions.
      	(microblaze*-linux*): New case.
      	Append to tmake_file, add t-slibgcc-nolc-override.
      	(powerpc-*-freebsd*): Add t-slibgcc-libgcc to tmake_file.
      	(powerpc-*-linux*, powerpc64-*-linux*): Likewise.
      	Replace rs6000/t-ldbl128 by rs6000/t-linux in tmake_file.
      	(rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*): Add
      	rs6000/t-slibgcc-aix to tmake_file.
      	(rs6000-ibm-aix5.1.*, powerpc-ibm-aix5.1.*): Likewise.
      	(rs6000-ibm-aix[56789].*, powerpc-ibm-aix[56789].*): Likewise.
      	(sh-*-elf*, sh[12346l]*-*-elf*, sh-*-linux*)
      	(sh[2346lbe]*-*-linux*, sh-*-netbsdelf*, shl*-*-netbsdelf*)
      	(sh5-*-netbsd*, sh5l*-*-netbsd*, sh64-*-netbsd*)
      	(sh64l*-*-netbsd*): Add t-slibgcc-libgcc to tmake_file for
      	sh*-*-linux*.
      	(sparc-*-linux*): Append to tmake_file for *-leon*.
      	Add sparc/t-linux to tmake_file for non-Leon targets.
      	(sparc64-*-linux*): Add sparc/t-linux to tmake_file.
      	(tic6x-*-uclinux): New case.
      	Add t-slibgcc, t-slibgcc-gld, t-slibgcc-elf-ver to tmake_file.
      	(tic6x-*-*): Add c6x/t-elf to tmake_file.
      	(xtensa*-*-linux*): Append to tmake_file, add xtensa/t-linux.
      	(am33_2.0-*-linux*): Append to tmake_file.
      	(i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
      	(i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*): Also handle
      	x86_64-*-kfreebsd*-gnu.
      	Add i386/t-linux to tmake_file.
      
      From-SVN: r180767
      Rainer Orth committed
  30. 17 Oct, 2011 1 commit
    • Linemap infrastructure for virtual locations · 46427374
      This is the first instalment of a set which goal is to track locations
      of tokens across macro expansions.  Tom Tromey did the original work
      and attached the patch to PR preprocessor/7263.  This opus is a
      derivative of that original work.
      
      This patch modifies the linemap module of libcpp to add virtual
      locations support.
      
      A virtual location is a mapped location that can resolve to several
      different physical locations.  It can always resolve to the spelling
      location of a token.  For tokens resulting from macro expansion it can
      resolve to:
        - either the location of the expansion point of the macro.
        - or the location of the token in the definition of the
        macro
        - or, if the token is an argument of a function-like macro,
        the location of the use of the matching macro parameter in
        the definition of the macro
      
      The patch creates a new type of line map called a macro map.  For every
      single macro expansion, there is a macro map that generates a virtual
      location for every single resulting token of the expansion.
      
      The good old type of line map we all know is now called an ordinary
      map.  That one still encodes spelling locations as it has always had.
      
      As a result linemap_lookup as been extended to return a macro map when
      given a virtual location resulting from a macro expansion.  The layout
      of structs line_map has changed to support this new type of map.  So
      did the layout of struct line_maps.  Accessor macros have been
      introduced to avoid messing with the implementation details of these
      datastructures directly.  This helped already as we have been testing
      different ways of arranging these datastructure.  Having to constantly
      adjust client code that is too tied with the internals of line_map and
      line_maps would have been even more painful.
      
      Of course, many new public functions have been added to the linemap
      module to handle the resolution of virtual locations.
      
      This patch introduces the infrastructure but no part of the compiler
      uses virtual locations yet.
      
      However the client code of the linemap data structures has been
      adjusted as per the changes.  E.g, it's not anymore reliable for a
      client code to manipulate struct line_map directly if it just wants to
      deal with spelling locations, because struct line_map can now
      represent a macro map as well.  In that case, it's better to use the
      convenient API to resolve the initial (possibly virtual) location to a
      spelling location (or to an ordinary map) and use that.
      
      This is the reason why the patch adjusts the Java, Ada and Fortran
      front ends.
      
      Also, note that virtual locations are not supposed to be ordered for
      relations '<' and '>' anymore.  To test if a virtual location appears
      "before" another one, one has to use a new operator exposed by the
      line map interface.  The patch updates the only spot (in the
      diagnostics module) I have found that was making the assumption that
      locations were ordered for these relations.  This is the only change
      that introduces a use of the new line map API in this patch, so I am
      adding a regression test for it only.
      
      From-SVN: r180081
      Tom Tromey committed
  31. 11 Oct, 2011 1 commit
  32. 24 Aug, 2011 1 commit
    • * Makefile.in (CFLAGS-collect2.o, CFLAGS-c-family/c-opts.o) · c5bc3df6
      	(CFLAGS-c-family/c-pch.o, CFLAGS-prefix.o, CFLAGS-version.o)
      	(CFLAGS-lto-compress.o, CFLAGS-toplev.o, CFLAGS-intl.o)
      	(CFLAGS-cppbuiltin.o, CFLAGS-cppdefault.o): New.
      	(collect2.o, c-family/c-cppbuiltin.o, c-family/c-opts.o)
      	(c-family/c-pch.o, prefix.o, version.o, lto-compress.o, toplev.o)
      	(intl.o, cppbuiltin.o, cppdefault.o): Remove explicit compilation
      	rules.
      	(lto-wrapper$(exeext)): Use $(LINKER) not $(COMPILER).
      
      ada:
      	* gcc-interface/Make-lang.in (CFLAGS-ada/tracebak.o)
      	(CFLAGS-ada/targext.o, CFLAGS-ada/cio.o, CFLAGS-ada/init.o)
      	(CFLAGS-ada/initialize.o, CFLAGS-ada/raise.o): New.
      	(ada/tracebak.o, ada/targext.o, ada/cio.o, ada/init.o)
      	(ada/initialize.o, ada/raise.o): Remove explicit compilation rules.
      
      fortran:
      	* Make-lang.in (fortran/cpp.o): Remove explicit compilation rule.
      
      go:
      	* Make-lang.in (CFLAGS-go/go-lang.o): New.
      	(go/go-lang.o): Remove explicit compilation rule.
      
      java:
      	* Make-lang.in (CFLAGS-java/jcf-io.o, CFLAGS-java/jcf-path.o):
      	New.
      	(java/jcf-io.o, java/jcf-path.o): Remove explicit compilation
      	rules.
      
      From-SVN: r178030
      Joseph Myers committed
  33. 18 Aug, 2011 1 commit
  34. 10 Aug, 2011 1 commit
  35. 08 Aug, 2011 1 commit
    • driver-sparc.c: New file. · e3b3fa45
      	gcc:
      	* config/sparc/driver-sparc.c: New file.
      	* config/sparc/x-sparc: New file.
      	* config.host: Use driver-sparc.o, sparc/x-sparc on
      	sparc*-*-solaris2*.
      	* config/sparc/sparc.opt (native): New value for enum
      	processor_type.
      	* config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare.
      	* config/sparc/sparc.c (sparc_option_override): Abort if
      	PROCESSOR_NATIVE gets here.
      	* config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare.
      	(EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS,
      	DRIVER_SELF_SPECS): Define.
      	* doc/invoke.texi (SPARC Options, -mcpu): Document native.
      	(SPARC Options, -mtune): Likewise.
      	* configure.ac (EXTRA_GCC_LIBS): Check for libkstat.
      	Substitute result.
      	* configure: Regenerate.
      	* Makefile.in (EXTRA_GCC_LIBS): Set.
      	(xgcc$(exeext)): Add $(EXTRA_GCC_LIBS).
      	(cpp$(exeext)): Likewise.
      
      	gcc/cp:
      	* Make-lang.in (g++$(exeext)): Add $(EXTRA_GCC_LIBS).
      
      	gcc/fortran:
      	* Make-lang.in (gfortran$(exeext)): Add $(EXTRA_GCC_LIBS).
      
      	gcc/go:
      	* Make-lang.in (gccgo$(exeext)): Add $(EXTRA_GCC_LIBS).
      
      	gcc/java:
      	* Make-lang.in ($(XGCJ)$(exeext)): Add $(EXTRA_GCC_LIBS).
      
      From-SVN: r177559
      Rainer Orth committed
  36. 19 Jul, 2011 1 commit
    • tree.h (fold_build_pointer_plus_loc): New helper function. · 5d49b6a7
      2011-07-19  Richard Guenther  <rguenther@suse.de>
      
      	* tree.h (fold_build_pointer_plus_loc): New helper function.
      	(fold_build_pointer_plus_hwi_loc): Likewise.
      	(fold_build_pointer_plus): Define.
      	(fold_build_pointer_plus_hwi): Likewise.
      
      	* builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
      	(fold_builtin_memory_op): Likewise.
      	(fold_builtin_stpcpy): Likewise.
      	(fold_builtin_memchr): Likewise.
      	(fold_builtin_strstr): Likewise.
      	(fold_builtin_strchr): Likewise.
      	(fold_builtin_strrchr): Likewise.
      	(fold_builtin_strpbrk): Likewise.
      	(fold_builtin_strcat): Likewise.
      	(expand_builtin_memory_chk): Likewise.
      	(fold_builtin_memory_chk): Likewise.
      	* c-typeck.c (build_unary_op): Likewise.
      	* cgraphunit.c (thunk_adjust): Likewise.
      	* fold-const.c (build_range_check): Likewise.
      	(fold_binary_loc): Likewise.
      	* omp-low.c (extract_omp_for_data): Likewise.
      	(expand_omp_for_generic): Likewise.
      	(expand_omp_for_static_nochunk): Likewise.
      	(expand_omp_for_static_chunk): Likewise.
      	* tree-affine.c (add_elt_to_tree): Likewise.
      	* tree-data-ref.c (split_constant_offset_1): Likewise.
      	* tree-loop-distribution.c (generate_memset_zero): Likewise.
      	* tree-mudflap.c (mf_xform_derefs_1): Likewise.
      	* tree-predcom.c (ref_at_iteration): Likewise.
      	* tree-ssa-address.c (tree_mem_ref_addr): Likewise.
      	(add_to_parts): Likewise.
      	(create_mem_ref): Likewise.
      	* tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
      	* tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
      	(number_of_iterations_le): Likewise.
      	* tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
      	* tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
      	(vect_create_addr_base_for_vector_ref): Likewise.
      	* tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
      	(vect_create_cond_for_alias_checks): Likewise.
      	* tree-vrp.c (extract_range_from_assert): Likewise.
      
      	* config/alpha/alpha.c (alpha_va_start): Likewise.
      	(alpha_gimplify_va_arg_1): Likewise.
      	* config/i386/i386.c (ix86_va_start): Likewise.
      	(ix86_gimplify_va_arg): Likewise.
      	* config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
      	* config/mep/mep.c (mep_expand_va_start): Likewise.
      	(mep_gimplify_va_arg_expr): Likewise.
      	* config/mips/mips.c (mips_va_start): Likewise.
      	(mips_gimplify_va_arg_expr): Likewise.
      	* config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
      	* config/rs6000/rs6000.c (rs6000_va_start): Likewise.
      	(rs6000_gimplify_va_arg): Likewise.
      	* config/s390/s390.c (s390_va_start): Likewise.
      	(s390_gimplify_va_arg): Likewise.
      	* config/sh/sh.c (sh_va_start): Likewise.
      	(sh_gimplify_va_arg_expr): Likewise.
      	* config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
      	* config/spu/spu.c (spu_va_start): Likewise.
      	(spu_gimplify_va_arg_expr): Likewise.
      	* config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
      	Likewise.
      	(xstormy16_gimplify_va_arg_expr): Likewise.
      	* config/xtensa/xtensa.c (xtensa_va_start): Likewise.
      	(xtensa_gimplify_va_arg_expr): Likewise.
      
      	c-family/
      	* c-common.c (pointer_int_sum): Use fold_build_pointer_plus.
      	* c-omp.c (c_finish_omp_for): Likewise.
      
      	cp/
      	* call.c (build_special_member_call): Use fold_build_pointer_plus.
      	* class.c (build_base_path): Likewise.
      	(convert_to_base_statically): Likewise.
      	(dfs_accumulate_vtbl_inits): Likewise.
      	* cp-gimplify.c (cxx_omp_clause_apply_fn): Likewise.
      	* except.c (expand_start_catch_block): Likewise.
      	* init.c (expand_virtual_init): Likewise.
      	(build_new_1): Likewise.
      	(build_vec_delete_1): Likewise.
      	(build_vec_delete): Likewise.
      	* rtti.c (build_headof): Likewise.
      	(tinfo_base_init): Likewise.
      	* typeck.c (get_member_function_from_ptrfunc): Likewise.
      	(cp_build_addr_expr_1): Likewise.
      	* typeck2.c (build_m_component_ref): Likewise.
      
      	fortran/
      	* trans-expr.c (fill_with_spaces): Use fold_build_pointer_plus.
      	(gfc_trans_string_copy): Likewise.
      	* trans-intrinsic.c (gfc_conv_intrinsic_repeat): Likewise.
      	* trans-types.c (gfc_get_array_descr_info): Likewise.
      	* trans.c (gfc_build_array_ref): Likewise.
      
      	java/
      	* builtins.c (static): Use fold_build_pointer_plus.
      	* class.c (make_class_data): Likewise.
      	(build_symbol_entry): Likewise.
      	* except.c (build_exception_object_ref): Likewise.
      	* expr.c (build_java_arrayaccess): Likewise.
      	(build_field_ref): Likewise.
      	(build_known_method_ref): Likewise.
      	(build_invokevirtual): Likewise.
      
      	objc/
      	* objc-next-runtime-abi-02.c (objc_v2_build_ivar_ref):
      	Use fold_build_pointer_plus.
      	(objc2_build_ehtype_initializer): Likewise.
      
      From-SVN: r176461
      Richard Guenther committed
  37. 06 Jul, 2011 1 commit
    • tree.c (build_common_tree_nodes_2): Merge with build_common_tree_nodes. · 1a072294
      2011-07-06  Richard Guenther  <rguenther@suse.de>
      
      	* tree.c (build_common_tree_nodes_2): Merge with
      	build_common_tree_nodes.
      	* tree.h (build_common_tree_nodes): Adjust prototype.
      	(build_common_tree_nodes_2): Remove.
      	* doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
      	* doc/tm.texi (lang_hooks.builtin_function): Regenerate.
      
      	c-family/
      	* c-common.c (c_common_nodes_and_builtins):
      	Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.
      
      	fortran/
      	* f95-lang.c (gfc_init_decl_processing):
      	Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.
      
      	go/
      	* go-lang.c (go_langhook_init):
      	Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.
      
      	java/
      	* decl.c (java_init_decl_processing):
      	Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.
      
      	lto/
      	* lto-lang.c (lto_init):
      	Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.
      
      	ada/
      	* gcc-interface/misc.c (gnat_init):
      	Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.
      	Re-initialize boolean_false_node.
      
      From-SVN: r175906
      Richard Guenther committed