Commit Graph

110273 Commits

Author SHA1 Message Date
Benjamin Kosnik
bfef3a711a array (array::at, [...]): Mark constexpr.
2011-07-20  Benjamin Kosnik  <bkoz@redhat.com>
	    Daniel Krugler  <daniel.kruegler@googlemail.com>

	* include/std/array (array::at, array::operator[]): Mark constexpr.
	* testsuite/23_containers/array/requirements/
	constexpr_element_access.cc: Add.


Co-Authored-By: Daniel Krugler <daniel.kruegler@googlemail.com>

From-SVN: r176550
2011-07-21 05:48:03 +00:00
Benjamin Kosnik
1b97ec17bc chrono: (system_clock::is_steady): Update to N3291 from is_monotonic.
2011-07-20  Benjamin Kosnik  <bkoz@redhat.com>
	    Daniel Krugler  <daniel.kruegler@googlemail.com>

	* include/std/chrono: (system_clock::is_steady): Update to N3291
	from is_monotonic.
	(time_point): Add constexpr to nonmember arithmetic operators.
	* src/chrono.cc: Modify for above.
	* src/compatibility-c++0x.cc: Same.
	* testsuite/20_util/time_point/nonmember/constexpr.cc: New.
	* testsuite/20_util/time_point/1.cc: Modify.
	* testsuite/20_util/system_clock/constexpr_data.cc: Modify.
	* testsuite/20_util/system_clock/1.cc: Modify.
	* testsuite/20_util/monotonic_clock/constexpr_data.cc: Move to...
	* testsuite/20_util/steady_clock/constexpr_data.cc: ...here.
	* testsuite/30_threads/condition_variable/members/2.cc: Modify.
	* testsuite/30_threads/condition_variable_any/members/2.cc: Modify.

From-SVN: r176549
2011-07-21 03:27:51 +00:00
GCC Administrator
e56925329c Daily bump.
From-SVN: r176548
2011-07-21 00:18:20 +00:00
H.J. Lu
6025b127bc Handle address output and call patterns for x32.
2011-07-20  H.J. Lu  <hongjiu.lu@intel.com>
	    Uros Bizjak  <ubizjak@gmail.com>
	    Richard Henderson  <rth@redhat.com>

	* config/i386/constraints.md (w): New.

	* config/i386/i386.c (ix86_output_addr_vec_elt): Check
	TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.

	* config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
	instead of TARGET_64BIT.

	* config/i386/i386.md (indirect_jump): Replace
	nonimmediate_operand with indirect_branch_operand.
	(*indirect_jump): Likewise.  Replace constraint "m" with "w".
	(tablejump): Replace nonimmediate_operand with
	indirect_branch_operand.  Convert operand 0 to Pmode for x32 if
	not PIC.
	(*tablejump_1): Replace nonimmediate_operand with
	indirect_branch_operand.  Replace constraint "m" with "w".
	(*call_vzeroupper): Replace constraint "m" with "w".
	(*call): Likewise.
	(*call_rex64_ms_sysv_vzeroupper): Likewise.
	(*call_rex64_ms_sysv): Likewise.
	(*call_value_vzeroupper): Likewise.
	(*call_value): Likewise.
	(*call_value_rex64_ms_sysv_vzeroupper): Likewise.
	(*call_value_rex64_ms_sysv): Likewise.
	(set_got_offset_rex64): Check TARGET_LP64 instead of
	TARGET_64BIT.

	* config/i386/predicates.md (indirect_branch_operand): New.
	(call_insn_operand): Support x32.

Co-Authored-By: Richard Henderson <rth@redhat.com>
Co-Authored-By: Uros Bizjak <ubizjak@gmail.com>

From-SVN: r176539
2011-07-20 15:38:47 -07:00
Michael Eager
7f8925a1dd params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
From-SVN: r176538
2011-07-20 22:30:06 +00:00
Richard Henderson
510a442a35 Dump basic_block flags.
From-SVN: r176537
2011-07-20 15:14:36 -07:00
Uros Bizjak
00b40d0da2 i386.c (ix86_decompose_address): Allow only subregs of DImode hard registers in index.
* config/i386/i386.c (ix86_decompose_address): Allow only subregs
	of DImode hard registers in index.
	(ix86_legitimate_address_p): Allow subregs of base and index to span
	more than a word.  Assert that subregs of base and index satisfy
	register_no_elim_operand predicates.  Reject addresses where
	base and index have different modes.

From-SVN: r176536
2011-07-20 23:43:38 +02:00
Robert Millan
87f5355496 config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
gcc/
2011-07-20  Robert Millan  <rmh@gnu.org>

	* config.gcc (mips*-*-linux*): Remove redundant tm_file entry.

From-SVN: r176535
2011-07-20 21:02:33 +00:00
Ulrich Weigand
742f29abe4 bb-reorder.c (fix_crossing_conditional_branches): Fix crash by removing now-unnecessary assignment.
* bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
	removing now-unnecessary assignment.

From-SVN: r176533
2011-07-20 18:52:04 +00:00
Jason Merrill
458f8a16a1 parser.c (cp_parser_initializer_list): Handle C99 .id= and [N]= designated initializer syntax.
* parser.c (cp_parser_initializer_list): Handle C99 .id= and [N]=
	designated initializer syntax.
	* decl.c (check_array_designated_initializer): Add index parm.
	(maybe_deduce_size_from_array_init): Pass it.
	(reshape_init_array_1): Likewise.

From-SVN: r176530
2011-07-20 14:18:03 -04:00
Paolo Carlini
cd88bb8c77 system_error: Use noexcept.
2011-07-20  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/std/system_error: Use noexcept.
	* src/system_error.cc: Likewise.
	* testsuite/19_diagnostics/error_condition/modifiers/39881.cc: Adjust.
	* testsuite/19_diagnostics/error_condition/cons/39881.cc: Likewise.
	* testsuite/19_diagnostics/error_code/modifiers/39882.cc: Likewise.
	* testsuite/19_diagnostics/error_code/cons/39882.cc: Likewise.
	* testsuite/util/testsuite_error.h: Likewise.

	* include/std/system_error (error_code::error_code(_ErrorCodeEnum)):
	Use enable_if on template parameter default.
	(error_condition::error_condition(_ErrorConditionEnum)): Likewise.

From-SVN: r176529
2011-07-20 18:17:30 +00:00
Ulrich Weigand
d05f35643b emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting memory address space to the type's address space.
* emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
	memory address space to the type's address space.

From-SVN: r176528
2011-07-20 18:01:48 +00:00
Georg-Johann Lay
8c352fa8ed re PR target/36467 ([avr] Missed optimization with pointer arithmetic and mul*)
PR target/36467
	PR target/49687
	* config/avr/avr.md (mulhi3): Use register_or_s9_operand for
	operand2 and expand appropriately if there is a CONST_INT in
	operand2.
	(usmulqihi3): New insn.
	(*sumulqihi3): New insn.
	(*osmulqihi3): New insn.
	(*oumulqihi3): New insn.
	(*muluqihi3.uconst): New insn_and_split.
	(*muluqihi3.sconst): New insn_and_split.
	(*mulsqihi3.sconst): New insn_and_split.
	(*mulsqihi3.uconst): New insn_and_split.
	(*mulsqihi3.oconst): New insn_and_split.
	(*ashifthi3.signx.const): New insn_and_split.
	(*ashifthi3.signx.const7): New insn_and_split.
	(*ashifthi3.zerox.const): New insn_and_split.
	(mulsqihi3): New insn.
	(muluqihi3): New insn.
	(muloqihi3): New insn.
	* config/avr/predicates.md (const_2_to_7_operand): New.
	(const_2_to_6_operand): New.
	(u8_operand): New.
	(s8_operand): New.
	(o8_operand): New.
	(s9_operand): New.
	(register_or_s9_operand): New.

From-SVN: r176527
2011-07-20 17:23:28 +00:00
Kai Tietz
be31603aad builtins.c (fold_builtin_expect): See through the cast from truthvalue_type_node to long.
2011-07-20  Kai Tietz  <ktietz@redhat.com>

        * builtins.c (fold_builtin_expect): See through the cast
        from truthvalue_type_node to long.

From-SVN: r176526
2011-07-20 19:10:24 +02:00
Michael Meissner
c36193c690 Allow 4 operand FMAs on power7
From-SVN: r176522
2011-07-20 16:16:53 +00:00
David Edelsohn
242f542160 Makefile.tpl (POSTSTAGE1_CONFIGURE_FLAGS): Add libsupc++ to link directories.
* Makefile.tpl (POSTSTAGE1_CONFIGURE_FLAGS): Add libsupc++ to
	link directories.
	* Makefile.in: Rebuild.

From-SVN: r176521
2011-07-20 12:08:11 -04:00
Ed Smith-Rowland
7715bf1b5b stdc++.h: Add scoped_allocator.
2011-07-20  Ed Smith-Rowland  <3dw4rd@verizon.net>

	* include/precompiled/stdc++.h: Add scoped_allocator.

From-SVN: r176520
2011-07-20 15:45:55 +00:00
Benjamin Kosnik
07be61200c bitset (operator[]): Make constexpr.
2011-07-20  Benjamin Kosnik  <bkoz@redhat.com>

	* include/std/bitset (operator[]): Make constexpr.
	* testsuite/23_containers/bitset/operations/constexpr.cc: New.

From-SVN: r176519
2011-07-20 15:44:18 +00:00
Sandra Loosemore
02aec184ce genrecog.c (make_insn_sequence): Correct position numbering when filtering out match_scratch and match_dup.
2011-07-20  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* genrecog.c (make_insn_sequence): Correct position numbering
	when filtering out match_scratch and match_dup.

From-SVN: r176518
2011-07-20 11:26:57 -04:00
Richard Guenther
f8ecf734dd tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify against already removed statements.
2011-07-20  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
	against already removed statements.
	(forward_propagate_into_comparison): Remove dead defining stmts.
	(forward_propagate_into_gimple_cond): Likewise.
	(forward_propagate_into_cond): Simplify.
	(ssa_forward_propagate_and_combine): Handle changed cfg from
	forward_propagate_into_comparison.
	* tree-ssa-phiopt.c (conditional_replacement): Use proper
	locations for newly built statements.

From-SVN: r176517
2011-07-20 15:13:58 +00:00
Georg-Johann Lay
73451ae785 * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
From-SVN: r176516
2011-07-20 15:10:13 +00:00
Jason Merrill
c2919dc87c changelog tweak
From-SVN: r176514
2011-07-20 10:32:56 -04:00
Jason Merrill
3442967514 PR c++/6709 (DR 743)
PR c++/6709 (DR 743)
	PR c++/42603 (DR 950)
gcc/cp/
	* parser.c (token_is_decltype, cp_lexer_next_token_is_decltype): New.
	(cp_parser_nested_name_specifier_opt): Allow decltype.
	(cp_parser_qualifying_entity): Likewise.
	(cp_parser_decltype): Replace source tokens with CPP_DECLTYPE.
	(cp_parser_simple_type_specifier): Handle decltype as scope.
	(cp_parser_base_specifier): Allow decltype.
	(cp_parser_base_clause): Don't crash on null base.
	* parser.h (CPP_KEYWORD, CPP_TEMPLATE_ID): Move to c-common.h.
	(CPP_NESTED_NAME_SPECIFIER, N_CP_TTYPES): Likewise.
gcc/c-family/
	* c-common.h (CPP_KEYWORD, CPP_TEMPLATE_ID): Move from cp/parser.h.
	(CPP_NESTED_NAME_SPECIFIER, N_CP_TTYPES): Likewise.
	(CPP_DECLTYPE): New.
	* c-common.c (c_parse_error): Handle CPP_DECLTYPE.

From-SVN: r176513
2011-07-20 10:21:05 -04:00
Ian Lance Taylor
ff3ac0f471 re PR bootstrap/49787 (--enable-languages=c doesn't work)
PR bootstrap/49787
	* configure.ac: Move --enable-bootstrap handling earlier in file.
	If --enable-bootstrap and either --enable-build-with-cxx or
	--enable-build-poststage1-with-cxx, enable C++ automatically.
	* configure: Rebuild.

From-SVN: r176512
2011-07-20 14:08:42 +00:00
Andreas Krebbel
c4100a35b8 s390.c (s390_class_max_nregs): Fix return type.
2011-07-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_class_max_nregs): Fix return type.
	* config/s390/s390-protos.h (s390_class_max_nregs): Likewise.

From-SVN: r176511
2011-07-20 13:37:56 +00:00
Richard Biener
c56db10056 re PR middle-end/18908 (Missed folding opportunities with bools)
2011-07-20  Richard Guenther  <rguenther@suse.de>

	PR middle-end/18908
	* tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
	* tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
	ADDR_EXPR folding.  Canonicalize X ^ ~0 as ~X.

	* gcc.dg/tree-ssa/pr18908.c: New testcase.
	* gcc.dg/tree-ssa/bitwise-sink.c: Adjust.

From-SVN: r176510
2011-07-20 13:36:30 +00:00
Richard Guenther
dca412a1dd re PR middle-end/18908 (Missed folding opportunities with bools)
2011-07-20  Richard Guenther  <rguenther@suse.de>

	PR middle-end/18908
	* tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
	* tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
	ADDR_EXPR folding.  Canonicalize X ^ ~0 as ~X.

	* gcc.dg/tree-ssa/pr18908.c: New testcase.
	* gcc.dg/tree-ssa/bitwise-sink.c: Adjust.

From-SVN: r176508
2011-07-20 13:35:20 +00:00
Vladimir Makarov
73d7e2662e frv.c (frv_register_move_cost): Define explicitly costs for subclasses of GR_REGS.
2011-07-20  Vladimir Makarov  <vmakarov@redhat.com>

	* config/frv/frv.c (frv_register_move_cost): Define explicitly
	costs for subclasses of GR_REGS.

From-SVN: r176507
2011-07-20 13:06:02 +00:00
Uros Bizjak
5e27a6d4ff re PR target/49780 ([x32] internal compiler error: in create_mem_ref, at tree-ssa-address.c:806)
PR target/49780
	* config/i386/predicates.md (no_seg_addres_operand): No more special.
	* config/i386/i386.c (ix86_decompose_address): Allow only subregs
	of DImode hard registers in base.
	(ix86_legitimate_address_p): Allow SImode and DImode base and index
	registers.

From-SVN: r176506
2011-07-20 14:58:28 +02:00
Richard Guenther
74d8fa4446 tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
2011-07-20  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (new_var_info): Allocate oldsolution
	lazily.
	(unify_nodes): Deal with that.
	(solve_graph): Likewise.

From-SVN: r176505
2011-07-20 12:12:26 +00:00
Paolo Carlini
d28d43815b safe_local_iterator.h (_Safe_local_iterator<>:: _Safe_local_iterator(const _Iterator&, size_type, const _Sequence*)): Fix typo.
2011-07-20  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/debug/safe_local_iterator.h (_Safe_local_iterator<>::
	_Safe_local_iterator(const _Iterator&, size_type, const _Sequence*)):
	Fix typo.

From-SVN: r176500
2011-07-20 09:40:11 +00:00
Chung-Lin Tang
b0e43da8fb arm.c (arm_canonicalize_comparison): Add case to canonicalize left operand from ZERO_EXTEND to AND.
2011-07-20  Chung-Lin Tang  <cltang@codesourcery.com>

	* config/arm/arm.c (arm_canonicalize_comparison): Add case to
	canonicalize left operand from ZERO_EXTEND to AND.

	testsuite/
	* gcc.target/arm/combine-movs.c: New.
	* gcc.target/arm/unsigned-extend-2.c: New.

From-SVN: r176495
2011-07-20 06:21:36 +00:00
GCC Administrator
e7b6c2cb75 Daily bump.
From-SVN: r176494
2011-07-20 00:18:31 +00:00
Anatoly Sokolov
a8c44c522d target.def (class_max_nregs): New hook.
* 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
2011-07-20 02:34:31 +04:00
Eric Botcazou
fd811f0342 cif-code.def (OVERWRITABLE): Fix typo and move around.
* 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
2011-07-19 20:20:27 +00:00
François Dumont
77e0bf4e07 safe_unordered_base.h, [...]: New, support for unordered sequence safe local iterators.
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
2011-07-19 19:39:45 +00:00
Ian Lance Taylor
78767fd9cf configure.ac: Add --enable-build-poststage1-with-cxx.
./:	* 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
2011-07-19 18:33:25 +00:00
Robert Millan
0baeec1b09 gnu-user.h: Copy from linux.h.
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
2011-07-19 18:00:27 +00:00
Richard Sandiford
754c3d5de8 rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
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
2011-07-19 17:44:58 +00:00
Richard Sandiford
527210c448 rtl.texi (MEM_OFFSET_KNOWN_P): Document.
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
2011-07-19 17:43:27 +00:00
Richard Sandiford
f5541398ef rtl.texi (MEM_SIZE_KNOWN_P): Document.
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
2011-07-19 17:43:15 +00:00
Richard Sandiford
f12144ddd5 emit-rtl.c (mem_attrs_eq_p): New function, split out from...
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
2011-07-19 17:42:58 +00:00
Richard Sandiford
1c3f523e1c gcc/
* rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
	(MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
	Provide a dummy definition of MEM_ADDR_SPACE for generators.
	(target_rtl): Add x_mode_mem_attrs.
	(mode_mem_attrs): New macro.
	(get_mem_attrs): New function.
	* emit-rtl.c (get_mem_attrs): Rename to...
	(find_mem_attrs): ...this.
	(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.
	(init_emit_regs): Initialize mode_mem_attrs.

From-SVN: r176474
2011-07-19 17:42:48 +00:00
Jason Merrill
3745786667 re PR c++/49785 ([C++0x] ICE in coerce_template_parms)
PR c++/49785
	* pt.c (coerce_template_parms): Handle non-pack after pack.

From-SVN: r176472
2011-07-19 13:28:13 -04:00
Tobias Burnus
394d3a2e8d expr.c (gfc_is_coarray): New function.
2011-07-19  Tobias Burnus  <burnus@net-b.de>

        * expr.c (gfc_is_coarray): New function.
        * gfortran.h (gfc_is_coarray): New prototype.
        * interface.c (compare_parameter): Use it.

2011-07-19  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/coarray_args_1.f90: New.
        * gfortran.dg/coarray_args_2.f90: New.

From-SVN: r176467
2011-07-19 18:46:02 +02:00
Vladimir Makarov
9dafd06325 MAINTAINERS (Register Allocation): Move myself from reviewers to maintainers.
2011-07-19  Vladimir Makarov  <vmakarov@redhat.com>

	* MAINTAINERS (Register Allocation): Move myself from reviewers to
	maintainers.

From-SVN: r176464
2011-07-19 15:17:52 +00:00
Richard Guenther
3046b1a95c tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove TRUTH_*_EXPR handling.
2011-07-19  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
	TRUTH_*_EXPR handling.
	* tree-ssa-operands.c (get_expr_operands): Likewise.
	* tree-ssa-pre.c (fully_constant_expression): Likewise.
	* tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
	Likewise.
	(is_and_or_or): Likewise.
	(is_norm_cond_subset_of): Likewise.

From-SVN: r176463
2011-07-19 15:16:23 +00:00
Richard Guenther
5d49b6a7b2 tree.h (fold_build_pointer_plus_loc): New helper function.
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
2011-07-19 14:01:59 +00:00
Richard Guenther
d906fd7fec re PR middle-end/18908 (Missed folding opportunities with bools)
2011-07-19  Richard Guenther  <rguenther@suse.de>

	* expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
	(expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
	handling.

	PR middle-end/18908
	* expr.c (expand_expr_real_2): Do not unnecessarily truncate the
	result of BIT_*_EXPR to bitfield precision.

From-SVN: r176460
2011-07-19 13:28:15 +00:00
Janus Weil
b21a544bb1 re PR fortran/49708 (ICE with allocate and no dimensions)
2011-07-19  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/49708
	* resolve.c (resolve_allocate_expr): Fix diagnostics for pointers.


2011-07-19  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/49708
	* gfortran.dg/allocate_error_3.f90: New.

From-SVN: r176447
2011-07-19 14:38:59 +02:00