1. 18 Nov, 2012 12 commits
    • Makefile.in (recog.o): Add insn-codes.h. · fcdd52b7
      gcc/
      	* Makefile.in (recog.o): Add insn-codes.h.
      	* expr.h (extraction_pattern): Move to optabs.h.
      	(mode_for_extraction): Delete.
      	* optabs.h (extraction_insn): New structure.
      	(extraction_pattern): Moved from expr.h.
      	(get_best_reg_extraction_insn, get_best_mem_extraction_insn): Declare.
      	* optabs.c (HAVE_insv, CODE_FOR_insv, HAVE_extv, CODE_FOR_extv)
      	(HAVE_extzv, CODE_FOR_extzv): Provide defaults.
      	(extraction_type): New enum.
      	(get_traditional_extraction_insn, get_extraction_insn)
      	(get_best_reg_extraction_insn, get_best_mem_extraction_insn):
      	New functions.
      	* combine.c (make_extraction): Use get_best_reg_extraction_insn
      	instead of mode_for_extraction.
      	* expmed.c (HAVE_insv, CODE_FOR_insv, gen_insv, HAVE_extv)
      	(CODE_FOR_extv, gen_extv, HAVE_extzv, CODE_FOR_extzv, gen_extzv):
      	Remove fallback definitions.
      	(mode_for_extraction): Delete.
      	(adjust_bit_field_mem_for_reg): New function.
      	(store_bit_field_using_insv): Replace OP_MODE parameter with
      	an extraction_insn.  Pass struct_mode to narrow_bit_field_mem.
      	(extract_bit_field_using_extv): Likewise EXT_MODE.
      	(store_bit_field_1): Use get_best_reg_extraction_insn and
      	get_best_mem_extraction_insn instead of mode_for_extraction.
      	Use adjust_bit_field_mem_for_reg when forcing memory to a
      	register and doing a register insertion.  Update calls to
      	store_bit_field_using_insv.
      	(extract_bit_field_1): Likewise extractions and calls to
      	extract_bit_field_using_extv.
      	(store_Bit_field): When narrowing to a bitregion, don't use the
      	insv mode as a limit.
      	* recog.c: (HAVE_extv, CODE_FOR_extv, HAVE_extzv, CODE_FOR_extzv):
      	Provide defaults.
      	(simplify_while_replacing): Use insn_data instead of
      	mode_for_extraction.
      
      From-SVN: r193605
      Richard Sandiford committed
    • stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator): Set up a… · 8b7d5dab
      stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator): Set up a default value of bitregion_end_.
      
      gcc/
      	* stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
      	Set up a default value of bitregion_end_.
      	(bit_field_mode_iterator::next_mode): Always apply bitregion_end_
      	check.  Include SLOW_UNALIGNED_ACCESS in the alignment check.
      	(get_best_mode): Ignore modes that are wider than the alignment.
      
      From-SVN: r193604
      Richard Sandiford committed
    • machmode.h (bit_field_mode_iterator): New class. · 073a544d
      gcc/
      	* machmode.h (bit_field_mode_iterator): New class.
      	(get_best_mode): Change final parameter to bool.
      	* stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator)
      	(bit_field_mode_iterator::next_mode): New functions, split out from...
      	(get_best_mode): ...here.  Change final parameter to bool.
      	Use bit_field_mode_iterator.
      
      From-SVN: r193603
      Richard Sandiford committed
    • expmed.c (narrow_bit_field_mem): New function. · 26f8b976
      gcc/
      	* expmed.c (narrow_bit_field_mem): New function.
      	(store_bit_field_using_insv, store_bit_field_1, store_fixed_bit_field)
      	(extract_bit_field_1): Use it.
      
      From-SVN: r193602
      Richard Sandiford committed
    • expr.h (adjust_address_1): Add a size parameter. · 5f2cbd0d
      gcc/
      	* expr.h (adjust_address_1): Add a size parameter.
      	(adjust_address, adjust_address_nv, adjust_bitfield_address)
      	(adjust_bitfield_address_nv): Adjust accordingly.
      	(adjust_bitfield_address_size): Define.
      	* emit-rtl.c (adjust_address_1): Add a size parameter.
      	Use it to set the size if MODE has no size.  Check whether
      	the size matches before returning the original memref.
      	Require the size to be known for adjust_object.
      	(adjust_automodify_address_1, widen_memory_access): Update calls
      	to adjust_address_1.
      
      From-SVN: r193601
      Richard Sandiford committed
    • combine.c (make_extraction): Handle TRUNCATEd INNERs. · 6cf99649
      gcc/
      	* combine.c (make_extraction): Handle TRUNCATEd INNERs.
      
      From-SVN: r193600
      Richard Sandiford committed
    • expr.c (expand_assignment): Don't set MEM_KEEP_ALIAS_SET_P here. · a787ccc3
      gcc/
      	* expr.c (expand_assignment): Don't set MEM_KEEP_ALIAS_SET_P here.
      	* emit-rtl.c (set_mem_attributes_minus_bitpos): Handle DECL_BIT_FIELDs,
      	using their size instead of the COMPONENT_REF's.
      
      From-SVN: r193599
      Richard Sandiford committed
    • t-linux64: Add multiarch names in MULTILIB_OSDIRNAMES. · 3808f68e
      2012-11-17  Matthias Klose  <doko@ubuntu.com>
      
              * config/mips/t-linux64: Add multiarch names in MULTILIB_OSDIRNAMES.
      
      From-SVN: r193598
      Matthias Klose committed
    • decl.c: Remove trailing spaces. · b16b6cc9
      	* gcc-interface/decl.c: Remove trailing spaces.
      	* gcc-interface/trans.c: Remove trailing spaces.
      
      From-SVN: r193597
      Eric Botcazou committed
    • compiler: Adjust for vec changes. · 4efdbe5a
      From-SVN: r193596
      Ian Lance Taylor committed
    • 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
    • Daily bump. · 0f411915
      From-SVN: r193594
      GCC Administrator committed
  2. 17 Nov, 2012 11 commits
  3. 16 Nov, 2012 17 commits
    • re PR tree-optimization/55329 (ICE: internal compiler error: in operator[], at… · 1ce296cf
      re PR tree-optimization/55329 (ICE: internal compiler error: in operator[], at vec.h:487 with -O -fno-guess-branch-probability -fnon-call-exceptions --param=early-inlining-insns=111)
      
      	PR tree-optimization/55329
      	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Never clear
      	bits in needed_eh_cleanup while iterating over the bitmap.
      	Look through all forwarder blocks at once.
      
      	* g++.dg/opt/pr55329.C: New test.
      
      From-SVN: r193577
      Jakub Jelinek committed
    • hashtable_policy.h (_Prime_rehash_policy): Remove automatic shrink. · d4a7f7a1
      2012-11-16  François Dumont  <fdumont@gcc.gnu.org>
      
      	* include/bits/hashtable_policy.h (_Prime_rehash_policy): Remove
      	automatic shrink.
      	(_Prime_rehash_policy::_M_bkt_for_elements): Do not call
      	_M_next_bkt anymore.
      	(_Prime_rehash_policy::_M_next_bkt): Move usage of
      	_S_growth_factor ...
      	(_Prime_rehash_policy::_M_need_rehash): ... here.
      	* include/bits/hashtable.h (_Hashtable<>): Adapt.
      	* testsuite/performance/23_containers/insert_erase/41975.cc: Add
      	_USE_TR1 to force build using std::tr1 container.
      	* testsuite/performance/23_containers/insert/unordered_set.cc:
      	Likewise.
      	* testsuite/performance/23_containers/insert/54075.cc: New.
      
      From-SVN: r193576
      François Dumont committed
    • 2012-11-16 Matthias Klose <doko@ubuntu.com> · 9acb8ddf
              * Imported zlib 1.2.7; merged local changes.
      
      From-SVN: r193574
      Matthias Klose committed
    • whatis.cc: New file. · 50605a7f
      	* testsuite/libstdc++-prettyprinters/whatis.cc: New file.
      	* testsuite/lib/gdb-test.exp (whatis-test): New proc.
      	(gdb-test): Handle 'whatis' tests.
      	(gdb_batch_check): New proc.
      	(gdb_version_check): Rewrite to use gdb_batch_check.
      	* python/libstdcxx/v6/printers.py: Import gdb.types.
      	(FilteringTypePrinter): New class.
      	(add_one_type_printer, register_type_printers): New functions.
      	(register_libstdcxx_printers): Call register_type_printers.
      
      From-SVN: r193573
      Tom Tromey committed
    • Fix commit of testcase which got truncated somehow. · 9bec80b0
      From-SVN: r193571
      Ian Bolton committed
    • cpplib.h (struct cpp_options): Add canonical_system_headers. · 5dc99c46
      
          * include/cpplib.h (struct cpp_options): Add canonical_system_headers.
          * files.c (find_file_in_dir): Call maybe_shorter_path() only if
          canonical_system_headers is set.
          * init.c (cpp_create_reader): Initialize canonical_system_headers.
          * configure.ac: Add new --enable-canonical-system-headers.
          * configure: Regenerate.
          * config.in: Regenerate.
      
          * doc/cppopts.texi: Document -f[no-]canonical-system-headers.
          * doc/install.texi: Document --enable-canonical-system-headers.
      
          * c.opt: Add f[no-]canonical-system-headers.
          * c-opts.c (c_common_handle_option): Handle
          OPT_fcanonical_system_headers.
      
      From-SVN: r193569
      Simon Baldwin committed
    • re PR fortran/55297 ([OOP] type-bound operator clashes with abstract interface) · b185792f
      2012-11-16  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/55297
      	* resolve.c (resolve_typebound_intrinsic_op): Only add typebound
      	operators to the operator list in the namespace of the derived type.
      
      2012-11-16  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/55297
      	* gfortran.dg/typebound_operator_18.f90: New.
      
      From-SVN: r193568
      Janus Weil committed
    • re PR rtl-optimization/55330 (ICE: Maximum number of LRA constraint passes is… · e731262b
      re PR rtl-optimization/55330 (ICE: Maximum number of LRA constraint passes is achieved (15) on gfortran.dg/actual_array_constructor_1.f90)
      
      2012-11-16  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR rtl-optimization/55330
      	* lra-constraints.c (MAX_INHERITANCE_PASSES): New macro.
      	(lra_inheritance, lra_undo_inheritance): Use it to limit number of
      	the passes.
      
      2012-11-16  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR rtl-optimization/55330
      	* gfortran.dg/pr55330.f90: New test.
      
      From-SVN: r193567
      Vladimir Makarov committed
    • Make-lang.in (gccgo$(exeext)): Add + at start of command. · d761f9e6
      	* Make-lang.in (gccgo$(exeext)): Add + at start of command.
      	(go1$(exeext)): Likewise.
      
      From-SVN: r193564
      Ian Lance Taylor committed
    • gcc-dg.exp (cleanup-saved-temps): Add .mii to suffixes. · 3f43b9e7
      	* lib/gcc-dg.exp (cleanup-saved-temps): Add .mii to suffixes.
      	* gcc.dg/hoist-register-pressure-1.c: Cleanup hoist rtl dump.
      	* gcc.dg/hoist-register-pressure-2.c: Ditto.
      	* gcc.dg/hoist-register-pressure-3.c: Ditto.
      	* gcc.dg/tree-prof/peel-1.c: Cleanup loop2_unroll rtl dump.
      	* gcc.dg/tree-prof/unroll-1.c: Ditto.
      
      From-SVN: r193563
      Uros Bizjak committed
    • PR c++/54875 - Error with alias template that resolves to an enum · 26f2269f
      Consider this short example:
      
           1	template<typename T>
           2	using AddConst = T const;
           3
           4	enum FwdEnum : int;
           5
           6	int main() {
           7	  AddConst<FwdEnum> *ptr = nullptr;
           8	}
      
      At line 7, when we build the type for AddConst<FwdEnum> in
      lookup_template_class_1, the resulting type is the enum FwdEnum.  This
      confuses lookup_template_class_1 near the if below, wrongly making it
      taking the branch and thus calling tsubst_enum while it shouldn't:
      
            if (TREE_CODE (t) == ENUMERAL_TYPE && !is_dependent_type)
      	/* Now that the type has been registered on the instantiations
      	   list, we set up the enumerators.  Because the enumeration
      	   constants may involve the enumeration type itself, we make
      	   sure to register the type first, and then create the
      	   constants.  That way, doing tsubst_expr for the enumeration
      	   constants won't result in recursive calls here; we'll find
      	   the instantiation and exit above.  */
      	tsubst_enum (template_type, t, arglist);
      
      Before the alias template feature, the only reason why TREE_CODE (t)
      == ENUMERAL_TYPE would be true is when lookup_template_class_1 is
      called for an enum that is a member of a class template.  But that
      condition can be also true for an alias template instantiation.
      
      So I guess that condition should be changed to TREE_CODE
      (template_type) == ENUMERAL_TYPE, to specifically detect the member
      enum of a class template case.  Note that for the alias template
      instantiation case above, template_type points to a TEMPLATE_TYPE_PARM
      which name is AddConst.
      
      This is what the patchlet below does.
      
      Bootstrapped and tested on x86_64-unknown-linux-gnu against trunk.
      
      gcc/cp/
      
      	* pt.c (lookup_template_class_1): Look at the type of the
      	potential member enum of class template to determine if we are
      	actually substituting into a member enum of class template.
      
      gcc/testsuite/
      
      	* g++.dg/cpp0x/alias-decl-27.C: New test.
      
      From-SVN: r193562
      Dodji Seketeli committed
    • configure.ac: Invoke AM_MAINTAINER_MODE. · 2b723e21
      	* configure.ac: Invoke AM_MAINTAINER_MODE.
      	* aclocal.m4, configure, Makefile.in, asan/Makefile.in,
      	interception/Makefile.in, sanitizer_common/Makefile.in: Rebuild.
      
      From-SVN: r193561
      Tom Tromey committed
    • t-linux: New file; define MULTIARCH_DIRNAME. · 26841e45
      2012-11-16  Matthias Klose  <doko@ubuntu.com>
      
              * config/pa/t-linux: New file; define MULTIARCH_DIRNAME.
              * config.gcc <hppa*64*-*-linux*, hppa*-*-linux*> (tmake_file):
              Include pa/t-linux.
      
      From-SVN: r193560
      Matthias Klose committed
    • * lib/target-supports.exp · f8cc9a48
      	(check_effective_target_has_w_floating_suffix): Use options for c++ only.
      	(check_effective_target_has_q_floating_suffix): Ditto.
      
      From-SVN: r193559
      Uros Bizjak committed
    • re PR c++/55337 (ICE tree check: expected sizeof_expr, have alignof_expr in… · ba29e5c2
      re PR c++/55337 (ICE tree check: expected sizeof_expr, have alignof_expr in cp_tree_equal, at cp/tree.c:2608)
      
      	PR c++/55337
      	* tree.c (cp_tree_equal) <case ALIGNOF_EXPR>: Use SIZEOF_EXPR_TYPE_P
      	only on SIZEOF_EXPR.
      
      	* g++.dg/template/alignof2.C: New test.
      
      From-SVN: r193558
      Jakub Jelinek committed