1. 21 Jul, 2011 1 commit
  2. 20 Jul, 2011 30 commits
  3. 19 Jul, 2011 9 commits
    • target.def (class_max_nregs): New hook. · a8c44c52
      	* target.def (class_max_nregs): New hook.
      	* doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
      	* doc/tm.texi: Regenerate.
      	* targhooks.c (default_class_max_nregs): New function.
      	* targhooks.h (default_class_max_nregs): Declare.
      	* ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
      	x_ira_reg_class_min_nregs arrays to unsigned char.
      	* ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
      	hook instead of CLASS_MAX_NREGS macro.
      	* reginfo.c (restore_register_info): Ditto.
      	* ira-conflicts.c (process_regs_for_copy): Use
      	ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
      	Change type rclass and aclass vars to reg_class_t.
      	* ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
      	array instead of CLASS_MAX_NREGS macro. Change type rclass var to
      	reg_class_t.
      	* reload.c (combine_reloads, find_reloads, find_reloads_address_1):
      	Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
      
      	* config/i386/i386.h (CLASS_MAX_NREGS): Remove.
      	* config/i386/i386.c (ix86_class_max_nregs): New function.
      	(ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
      	instead of CLASS_MAX_NREGS macro.
      	(TARGET_CLASS_MAX_NREGS): Define.
      	* config/avr/avr.h (CLASS_MAX_NREGS): Remove.
      	* config/avr/avr-protos.h (class_max_nregs): Remove declaration.
      	* config/avr/avr.c (class_max_nregs): Remove function.
      	* config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
      	* config/spu/spu.h (CLASS_MAX_NREGS): Remove.
      	* config/mep/mep.h (CLASS_MAX_NREGS): Remove.
      	* config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
      	* config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
      	* config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
      	* config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
      	* config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
      	* config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
      	* config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
      	* config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
      	* config/score/score.h (CLASS_MAX_NREGS): Remove.
      	* config/vax/vax.h (CLASS_MAX_NREGS): Remove.
      	* config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
      	* config/v850/v850.h (CLASS_MAX_NREGS): Remove.
      
      From-SVN: r176490
      Anatoly Sokolov committed
    • cif-code.def (OVERWRITABLE): Fix typo and move around. · fd811f03
      	* cif-code.def (OVERWRITABLE): Fix typo and move around.
      	(TARGET_OPTIMIZATION_MISMATCH): Delete.
      	(EH_PERSONALITY): Fix typo.
      	(NON_CALL_EXCEPTIONS): Fix message.
      	(OPTIMIZATION_MISMATCH): Adjust message.
      	* ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
      
      From-SVN: r176488
      Eric Botcazou committed
    • safe_unordered_base.h, [...]: New, support for unordered sequence safe local iterators. · 77e0bf4e
      2011-07-19  François Dumont  <francois.cppdevs@free.fr>
      
              * include/debug/safe_unordered_base.h, safe_unordered_sequence.h,
              safe_unordered_sequence.tcc, safe_local_iterator.h,
              safe_local_iterator.tcc: New, support for unordered sequence safe
              local iterators.
              * include/Makefile.am: Add previous files.
              * include/Makefile.in: Regenerate.
              * include/debug/unordered_map, unordered_set: Implement
              _Safe_unordered_sequence and expose _Safe_local_iterator.
              * include/debug/safe_iterator.h, safe_iterator.tcc: Refactor
              _Safe_iterator::_M_get_distance static method to expose it as
              __get_distance function and use it in _Safe_local_iterator type.
              * include/debug/formatter.h: Add __msg_local_iter_compare_bad
              _Debug_msg_id enum entry to notify invalid comparison between local
              iterators from different buckets. Add _Parameter constructor from
              _Safe_local_iterator.
              * include/debug/functions.h: Add __valid_range overload for
              _Safe_local_iterator.
              * src/debug.cc: Add _Safe_unordered_sequence_base and
              _Safe_local_iterator_base methods implementations.
              * config/abi/pre/gnu.ver: Add export of some
              _Safe_unordered_sequence_base and _Safe_local_iterator_base methods.
              * testsuite/util/debug/checks.h: Add use_invalid_iterator function to
              simulate use of a singular iterator.
              * testsuite/util/debug/unordered_checks.h: New, several functions
              to simulate classic invalid usage of unordered sequence local
              iterators.
              * testsuite/23_containers/unordered_map/debug/
              use_erased_local_iterator_neg.cc, invalid_local_iterator_range_neg.cc,
              use_invalid_local_iterator_neg.cc, use_invalid_iterator_neg.cc,
              invalid_local_iterator_compare_neg.cc: New.
              * testsuite/23_containers/unordered_multimap/debug/
              use_erased_local_iterator_neg.cc, invalid_local_iterator_range_neg.cc,
              use_invalid_local_iterator_neg.cc, use_invalid_iterator_neg.cc,
              invalid_local_iterator_compare_neg.cc: New.
              * testsuite/23_containers/unordered_set/debug/
              use_erased_local_iterator_neg.cc, invalid_local_iterator_range_neg.cc,
              use_invalid_local_iterator_neg.cc, use_invalid_iterator_neg.cc,
              invalid_local_iterator_compare_neg.cc: New.
              * testsuite/23_containers/unordered_multiset/debug/
              use_erased_local_iterator_neg.cc, invalid_local_iterator_range_neg.cc,
              use_invalid_local_iterator_neg.cc, use_invalid_iterator_neg.cc,
              invalid_local_iterator_compare_neg.cc: New.
      
      From-SVN: r176487
      François Dumont committed
    • configure.ac: Add --enable-build-poststage1-with-cxx. · 78767fd9
      ./:	* configure.ac: Add --enable-build-poststage1-with-cxx.  If set,
      	make C++ a boot_language.  Set and substitute
      	POSTSTAGE1_CONFIGURE_FLAGS.
      	* Makefile.tpl (POSTSTAGE1_CONFIGURE_FLAGS): New variable.
      	(STAGE[+id+]_CONFIGURE_FLAGS): Add $(POSTSTAGE1_CONFIGURE_FLAGS).
      	* configure, Makefile.in: Rebuild.
      gcc/:
      	* doc/install.texi (Configuration): Document
      	--enable-build-poststage1-with-cxx.
      
      From-SVN: r176480
      Ian Lance Taylor committed
    • gnu-user.h: Copy from linux.h. · 0baeec1b
      gcc/
      2011-07-19  Robert Millan  <rmh@gnu.org>
      
      	* config/mips/gnu-user.h: Copy from linux.h.  Update comments.
      	(GLIBC_DYNAMIC_LINKER): Remove.
      
      	* config/mips/gnu-user64.h: Copy from linux64.h.  Update comments.
      	(GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
      	(GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
      	(BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
      	(LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
      	GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
      
      	* config/mips/linux.h: Remove everything except for ...
      	(GLIBC_DYNAMIC_LINKER): ... this macro.
      
      	* config/mips/linux64.h: Remove everything except for ...
      	(GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
      	(GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
      	(BIONIC_DYNAMIC_LINKERN32): ... these macros.
      	(GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
      	(GNU_USER_LINK_EMULATIONN32): New macros.
      
      	* config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* |
      	mips-*-linux*): Use the new headers.
      
      From-SVN: r176479
      Robert Millan committed
    • rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs. · 754c3d5d
      gcc/
      	* rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
      	Add offset_known_p and size_known_p fields.
      	(MEM_OFFSET_KNOWN_P): Update accordingly.
      	(MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
      	* emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
      	(mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
      	(clear_mem_offset, set_mem_size, clear_mem_size, change_address)
      	(adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
      	(init_emit_regs): Likewise.
      
      From-SVN: r176478
      Richard Sandiford committed
    • rtl.texi (MEM_OFFSET_KNOWN_P): Document. · 527210c4
      gcc/
      	* doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
      	(MEM_OFFSET): Change from returning an rtx to returning a
      	HOST_WIDE_INT.
      	* rtl.h (MEM_OFFSET_KNOWN_P): New macro.
      	(MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
      	* emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
      	(clear_mem_offset): Declare.
      	* alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
      	MEM_OFFSET_KNOWN_P to test whether the offset is known, and
      	MEM_OFFSET to get a HOST_WIDE_INT offset.
      	(nonoverlapping_memrefs_p): Likewise.  Adjust calls to...
      	(adjust_offset_for_component_ref): Take a bool "known_p"
      	parameter and a HOST_WIDE_INT "offset" parameter.
      	* builtins.c (get_memory_rtx): As for ao_ref_from_mem.
      	Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
      	than an rtx.  Use clear_mem_offset to clear the offset.
      	* cfgcleanup.c (merge_memattrs): Likewise.
      	* dwarf2out.c (tls_mem_loc_descriptor): Likewise.
      	* function.c (assign_parm_find_stack_rtl): Likewise.
      	(assign_parm_setup_stack): Likewise.
      	* print-rtl.c (print_rtx): Likewise.
      	* reload.c (find_reloads_subreg_address): Likewise.
      	* simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
      	* var-tracking.c (INT_MEM_OFFSET): Likewise.
      	* emit-rtl.c (set_reg_attrs_from_value): Likewise.
      	(get_mem_align_offset): Likewise.
      	(set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
      	(clear_mem_offset): New function.
      	* config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
      	offset rather than an rtx.  Assume both the expressio and offset
      	are available.
      	(r10k_needs_protection_p_1): Update accordingly, checking the
      	expression and offset availability here instead.
      
      From-SVN: r176477
      Richard Sandiford committed
    • rtl.texi (MEM_SIZE_KNOWN_P): Document. · f5541398
      gcc/
      	* doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
      	(MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
      	* rtl.h (MEM_SIZE_KNOWN_P): New macro.
      	(MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
      	* emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
      	(clear_mem_size): Declare.
      	* emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
      	(clear_mem_size): New function.
      	* alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
      	MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
      	to get a HOST_WIDE_INT size.  Adjust calls to set_mem_size,
      	passing a HOST_WIDE_INT rather than an rtx.  Use clear_mem_size
      	to clear the size.
      	(nonoverlapping_memrefs_p): Likewise.
      	* builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
      	(expand_builtin_init_trampoline): Likewise.
      	* calls.c (compute_argument_addresses): Likewise.
      	* cfgcleanup.c (merge_memattrs): Likewise.
      	* dce.c (find_call_stack_args): Likewise.
      	* dse.c (record_store, scan_insn): Likewise.
      	* dwarf2out.c (dw_sra_loc_expr): Likewise.
      	* expr.c (emit_block_move_hints): Likewise.
      	* function.c (assign_parm_find_stack_rtl): Likewise.
      	* print-rtl.c (print_rtx): Likewise.
      	* reload.c (find_reloads_subreg_address): Likewise.
      	* rtlanal.c (may_trap_p_1): Likewise.
      	* var-tracking.c (track_expr_p): Likewise.
      	* varasm.c (assemble_trampoline_template): Likewise.
      	* config/arm/arm.c (arm_print_operand): Likewise.
      	* config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
      	* config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
      	(expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
      	(expand_constant_setmem_prologue): Likewise.
      	* config/mips/mips.c (mips_get_unaligned_mem): Likewise.
      	* config/rs6000/rs6000.c (expand_block_move): Likewise.
      	(adjacent_mem_locations): Likewise.
      	* config/s390/s390.c (s390_expand_setmem): Likewise.
      	(s390_expand_insv): Likewise.
      	* config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
      	(*extendqi<mode>2_short_displ): Likewise.
      	* config/sh/sh.c (expand_block_move): Likewise.
      	* config/sh/sh.md (extv, extzv): Likewise.
      
      From-SVN: r176476
      Richard Sandiford committed
    • emit-rtl.c (mem_attrs_eq_p): New function, split out from... · f12144dd
      gcc/
      	* emit-rtl.c (mem_attrs_eq_p): New function, split out from...
      	(mem_attrs_htab_eq): ...here.
      	(find_mem_attrs): Replace with...
      	(set_mem_attrs): ...this function.  Take a mem_attrs structure
      	rather than individual fields.
      	(set_mem_attributes_minus_bitpos, set_mem_alias_set)
      	(set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
      	(set_mem_size, change_address, adjust_address_1, offset_address)
      	(widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
      	Update accordingly.
      
      From-SVN: r176475
      Richard Sandiford committed