Commit Graph

95408 Commits

Author SHA1 Message Date
Dave Korn 68ccd57c8c ltmain.sh (removedotparts): Don't use comma as 's' separator.
ChangeLog:

	* ltmain.sh (removedotparts): Don't use comma as 's' separator.
	(collapseslashes): Likewise.

libjava/classpath/ChangeLog:

	* ltmain.sh (removedotparts): Don't use comma as 's' separator.
	(collapseslashes): Likewise.

From-SVN: r151124
2009-08-26 14:52:45 +00:00
Richard Guenther 6b8b9e4262 re PR c/41163 (verify_gimple fails)
2009-08-26  Richard Guenther  <rguenther@suse.de>

	PR middle-end/41163
	* gimplify.c (gimplify_addr_expr): Canonicalize ADDR_EXPRs if
	the types to not match.
	* tree-cfg.c (verify_gimple_assign_single): Adjust ADDR_EXPR
	verification.
	* tree-ssa.c (useless_type_conversion_p): Conversions to
	pointers to unprototyped functions are useless.

	* gcc.c-torture/compile/pr41163.c: New testcase.
	* gcc.dg/pr35899.c: Adjust.

From-SVN: r151122
2009-08-26 13:23:04 +00:00
Michael Matz 5c89ef5a3f Revert accidental commit of tree-cfg.c in r151099.
From-SVN: r151119
2009-08-26 10:47:12 +00:00
Richard Guenther bacd3fb68c tree-ssa-structalias.c (create_variable_info_for): Remove strange whole-program condition, prepare to be called for non-globals.
2009-08-26  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-structalias.c (create_variable_info_for): Remove
	strange whole-program condition, prepare to be called for non-globals.
	(intra_create_variable_infos): For restrict qualified DECL_BY_REFERENCE
	params build a representative with known type and track its fields.

	* gcc.dg/tree-ssa/restrict-4.c: New testcase.

From-SVN: r151117
2009-08-26 09:02:01 +00:00
Uros Bizjak 7b3d1847e6 sync.md: Update comment about unpredictable LL/SC lock clearing by a taken branch.
* config/alpha/sync.md: Update comment about unpredictable LL/SC lock
	clearing by a taken branch.
	(sync_<fetchop_name><mode>): Split when epilogue_completed is set,
	effectively after bbro pass.
	(sync_nand<mode>): Ditto.
	(sync_old_<fetchop_name><mode>): Ditto.
	(sync_old_nand<mode>): Ditto.
	(sync_new_<fetchop_name><mode>): Dito.
	(sync_new_nand<mode>): Ditto.
	(sync_compare_and_swap<mode>_1): Ditto.
	(*sync_compare_and_swap<mode>): Ditto.
	(sync_lock_test_and_set<mode>_1): Ditto.
	("sync_lock_test_and_set<mode>): Ditto.

From-SVN: r151115
2009-08-26 08:19:37 +02:00
Jason Merrill 1dad57e65d call.c (build_builtin_candidate): Don't set LOOKUP_ONLYCONVERTING if we're contextually converting to bool.
* call.c (build_builtin_candidate): Don't set LOOKUP_ONLYCONVERTING
	if we're contextually converting to bool.
	(build_conditional_expr): Likewise.
	* typeck.c (condition_conversion): Likewise.

From-SVN: r151114
2009-08-26 00:35:26 -04:00
Jason Merrill 7919d7b442 call.c (build_conditional_expr): Fix logic errors.
* call.c (build_conditional_expr): Fix logic errors.
	(build_new_op): Remove dead COND_EXPR handling.

From-SVN: r151113
2009-08-26 00:35:17 -04:00
Bud Davis 171fc18dd9 re PR fortran/28039 (Warn when ignoring extra characters in the format specification)
2009-08-22      Bud Davis <bdavis9659@sbcglobal.net>
         
         PR fortran/28093
         * io.c: reverted previous patch

From-SVN: r151112
2009-08-26 02:18:14 +00:00
GCC Administrator 645bf0489c Daily bump.
From-SVN: r151111
2009-08-26 00:16:32 +00:00
Douglas B Rupp edb890249f hwint.h (HOST_LONG_FORMAT): New macro
* hwint.h (HOST_LONG_FORMAT): New macro
	* bitmap.c, c-decl.c, mips-tfile.c, print-rtl.c, print-tree.c:
	Use HOST_PTR_PRINTF.
	* system.h (HOST_PTR_PRINTF): Resurrect old macro
	* doc/hostconfig.texi (HOST_LONG_FORMAT): Document.
	(HOST_PTR_PRINTF): Document.

From-SVN: r151108
2009-08-25 23:19:16 +00:00
Kaz Kojima ff22013ab2 builtin-math-7.c: Add -mieee for sh*-*-* targets.
* gcc.dg/torture/builtin-math-7.c: Add -mieee for sh*-*-* targets.

From-SVN: r151107
2009-08-25 22:59:23 +00:00
Benjamin Kosnik 439a0f5a2a basic_string.h (basic_string): Add cbegin(), cend(), crbegin(), crend() in C++0x mode.
2009-08-25  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/basic_string.h (basic_string): Add cbegin(),
	cend(), crbegin(), crend() in C++0x mode.
	* config/abi/pre/gnu.ver: Add exports.

	* testsuite/util/testsuite_containers.h: New.
	* testsuite/util/testsuite_container_traits.h: New.
	* testsuite/21_strings/basic_string/requirements/citerators.cc: New.
	* testsuite/21_strings/basic_string/requirements/typedefs.cc: New.
	* testsuite/ext/vstring/requirements/citerators.cc: Edit.
	* testsuite/ext/vstring/requirements/typedefs.cc: New.
	* testsuite/23_containers/unordered_map/requirements/
	cliterators.cc: Edit.
	* testsuite/23_containers/unordered_map/requirements/
	citerators.cc: Edit.
	* testsuite/23_containers/unordered_map/requirements/
	explicit_instantiation/1.cc: New.
	* testsuite/23_containers/unordered_map/requirements/
	explicit_instantiation/2.cc: New.
	* testsuite/23_containers/unordered_map/requirements/
	explicit_instantiation/3.cc: New.
	* testsuite/23_containers/unordered_map/requirements/typedefs.cc: Edit.
	* testsuite/23_containers/unordered_map/requirements/
	explicit_instantiation.cc: Move to nested directory.
	* testsuite/23_containers/queue/requirements/typedefs.cc: New.
	* testsuite/23_containers/priority_queue/requirements/typedefs.cc: New.
	* testsuite/23_containers/multimap/requirements/citerators.cc: Edit.
	* testsuite/23_containers/multimap/requirements/typedefs.cc: New.
	* testsuite/23_containers/set/requirements/citerators.cc: Edit.
	* testsuite/23_containers/set/requirements/typedefs.cc: New.
	* testsuite/23_containers/unordered_multimap/requirements/
	cliterators.cc: Edit.
	* testsuite/23_containers/unordered_multimap/requirements/
	citerators.cc: Edit.
	* testsuite/23_containers/unordered_multimap/requirements/
	explicit_instantiation/1.cc: New.
	* testsuite/23_containers/unordered_multimap/requirements/
	explicit_instantiation/2.cc: Edit.: New.
	* testsuite/23_containers/unordered_multimap/requirements/
	explicit_instantiation/3.cc: New.
	* testsuite/23_containers/unordered_multimap/requirements/
	typedefs.cc: Edit.
	* testsuite/23_containers/unordered_multimap/requirements/
	explicit_instantiation.cc: Move to nested.
	* testsuite/23_containers/forward_list/requirements/citerators.cc: New.
	* testsuite/23_containers/forward_list/requirements/1.cc: Remove.
	* testsuite/23_containers/forward_list/requirements/dr438/
	insert_neg.cc: New.
	* testsuite/23_containers/forward_list/requirements/dr438/
	assign_neg.cc: New.
	* testsuite/23_containers/forward_list/requirements/dr438/
	constructor_1_neg.cc: New.
	* testsuite/23_containers/forward_list/requirements/dr438/
	constructor_2_neg.cc: New.
	* testsuite/23_containers/forward_list/requirements/dr438/
	constructor.cc: New.
	* testsuite/23_containers/forward_list/requirements/typedefs.cc: New.
	* testsuite/23_containers/unordered_set/requirements/
	cliterators.cc: Edit.
	* testsuite/23_containers/unordered_set/requirements/
	citerators.cc: Edit.
	* testsuite/23_containers/unordered_set/requirements/
	explicit_instantiation/1.cc: New.
	* testsuite/23_containers/unordered_set/requirements/
	explicit_instantiation/2.cc: New.
	* testsuite/23_containers/unordered_set/requirements/
	explicit_instantiation/3.cc: New.
	* testsuite/23_containers/unordered_set/requirements/typedefs.cc: Edit.
	* testsuite/23_containers/unordered_set/requirements/
	explicit_instantiation.cc: Move to nested.
	* testsuite/23_containers/vector/requirements/citerators.cc: Edit.
	* testsuite/23_containers/vector/requirements/dr438/bool/
	constructor.cc: Move.
	* testsuite/23_containers/vector/requirements/typedefs.cc: New.
	* testsuite/23_containers/vector/bool/requirements/citerators.cc: Edit.
	* testsuite/23_containers/vector/bool/requirements/dr438/
	constructor.cc: New.
	* testsuite/23_containers/deque/requirements/citerators.cc: Edit.
	* testsuite/23_containers/deque/requirements/typedefs.cc
	* testsuite/23_containers/stack/requirements/typedefs.cc
	* testsuite/23_containers/multiset/requirements/citerators.cc: Edit.
	* testsuite/23_containers/multiset/requirements/typedefs.cc: New.
	* testsuite/23_containers/list/requirements/citerators.cc: Edit.
	* testsuite/23_containers/list/requirements/typedefs.cc: New.
	* testsuite/23_containers/unordered_multiset/requirements/
	cliterators.cc: Edit.
	* testsuite/23_containers/unordered_multiset/requirements/
	citerators.cc: Edit.
	* testsuite/23_containers/unordered_multiset/requirements/
	explicit_instantiation.cc: Move.
	* testsuite/23_containers/unordered_multiset/requirements/
	explicit_instantiation/1.cc: New.
	* testsuite/23_containers/unordered_multiset/requirements/
	explicit_instantiation/2.cc: New.
	* testsuite/23_containers/unordered_multiset/requirements/
	explicit_instantiation/3.cc: New.
	* testsuite/23_containers/unordered_multiset/requirements/typedefs.cc
	* testsuite/23_containers/map/requirements/citerators.cc: Edit.
	* testsuite/23_containers/map/requirements/typedefs.cc: New.
	* testsuite/23_containers/array/requirements/citerators.cc: Edit.
	* testsuite/23_containers/array/requirements/explicit_instantiation.cc:
	Move.
	* testsuite/23_containers/array/requirements/
	explicit_instantiation/1.cc: New.
	* testsuite/23_containers/array/requirements/
	explicit_instantiation/2.cc: New.
	* testsuite/23_containers/array/requirements/typedefs.cc: New.

From-SVN: r151106
2009-08-25 22:29:08 +00:00
Jan Hubicka 5c1a2bb1fc bmmintrin.h: Replace by #error.
* config/i386/bmmintrin.h: Replace by #error.

	Revert:
	Michael Meissner  <michael.meissner@amd.com>
	Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
	Tony Linthicum  <tony.linthicum@amd.com>

	* config/i386/i386.h (TARGET_SSE5): New macro for SSE5.
	(TARGET_ROUND): New macro for the round/ptest instructions which
	are shared between SSE4.1 and SSE5.
	(OPTION_MASK_ISA_ROUND): Ditto.
	(OPTION_ISA_ROUND): Ditto.
	(TARGET_FUSED_MADD): New macro for -mfused-madd swtich.
	(TARGET_CPU_CPP_BUILTINS): Add SSE5 support.

	* config/i386/i386.opt (-msse5): New switch for SSE5 support.
	(-mfused-madd): New switch to give users control over whether the
	compiler optimizes to use the multiply/add SSE5 instructions.

	* config/i386/i386.c (enum pta_flags): Add PTA_SSE5.
	(ix86_handle_option): Turn off 3dnow if -msse5.
	(override_options): Add SSE5 support.
	(print_operand): %Y prints comparison codes for SSE5 com/pcom
	instructions.
	(ix86_expand_sse_movcc): Add SSE5 support.
	(ix86_expand_sse5_unpack): New function to use pperm to unpack a
	vector type to the next largest size.
	(ix86_expand_sse5_pack): New function to use pperm to pack a
	vector type to the next smallest size.
	(IX86_BUILTIN_FMADDSS): New for SSE5 intrinsic.
	(IX86_BUILTIN_FMADDSD): Ditto.
	(IX86_BUILTIN_FMADDPS): Ditto.
	(IX86_BUILTIN_FMADDPD): Ditto.
	(IX86_BUILTIN_FMSUBSS): Ditto.
	(IX86_BUILTIN_FMSUBSD): Ditto.
	(IX86_BUILTIN_FMSUBPS): Ditto.
	(IX86_BUILTIN_FMSUBPD): Ditto.
	(IX86_BUILTIN_FNMADDSS): Ditto.
	(IX86_BUILTIN_FNMADDSD): Ditto.
	(IX86_BUILTIN_FNMADDPS): Ditto.
	(IX86_BUILTIN_FNMADDPD): Ditto.
	(IX86_BUILTIN_FNMSUBSS): Ditto.
	(IX86_BUILTIN_FNMSUBSD): Ditto.
	(IX86_BUILTIN_FNMSUBPS): Ditto.
	(IX86_BUILTIN_FNMSUBPD): Ditto.
	(IX86_BUILTIN_PCMOV_V2DI): Ditto.
	(IX86_BUILTIN_PCMOV_V4SI): Ditto.
	(IX86_BUILTIN_PCMOV_V8HI): Ditto.
	(IX86_BUILTIN_PCMOV_V16QI): Ditto.
	(IX86_BUILTIN_PCMOV_V4SF): Ditto.
	(IX86_BUILTIN_PCMOV_V2DF): Ditto.
	(IX86_BUILTIN_PPERM): Ditto.
	(IX86_BUILTIN_PERMPS): Ditto.
	(IX86_BUILTIN_PERMPD): Ditto.
	(IX86_BUILTIN_PMACSSWW): Ditto.
	(IX86_BUILTIN_PMACSWW): Ditto.
	(IX86_BUILTIN_PMACSSWD): Ditto.
	(IX86_BUILTIN_PMACSWD): Ditto.
	(IX86_BUILTIN_PMACSSDD): Ditto.
	(IX86_BUILTIN_PMACSDD): Ditto.
	(IX86_BUILTIN_PMACSSDQL): Ditto.
	(IX86_BUILTIN_PMACSSDQH): Ditto.
	(IX86_BUILTIN_PMACSDQL): Ditto.
	(IX86_BUILTIN_PMACSDQH): Ditto.
	(IX86_BUILTIN_PMADCSSWD): Ditto.
	(IX86_BUILTIN_PMADCSWD): Ditto.
	(IX86_BUILTIN_PHADDBW): Ditto.
	(IX86_BUILTIN_PHADDBD): Ditto.
	(IX86_BUILTIN_PHADDBQ): Ditto.
	(IX86_BUILTIN_PHADDWD): Ditto.
	(IX86_BUILTIN_PHADDWQ): Ditto.
	(IX86_BUILTIN_PHADDDQ): Ditto.
	(IX86_BUILTIN_PHADDUBW): Ditto.
	(IX86_BUILTIN_PHADDUBD): Ditto.
	(IX86_BUILTIN_PHADDUBQ): Ditto.
	(IX86_BUILTIN_PHADDUWD): Ditto.
	(IX86_BUILTIN_PHADDUWQ): Ditto.
	(IX86_BUILTIN_PHADDUDQ): Ditto.
	(IX86_BUILTIN_PHSUBBW): Ditto.
	(IX86_BUILTIN_PHSUBWD): Ditto.
	(IX86_BUILTIN_PHSUBDQ): Ditto.
	(IX86_BUILTIN_PROTB): Ditto.
	(IX86_BUILTIN_PROTW): Ditto.
	(IX86_BUILTIN_PROTD): Ditto.
	(IX86_BUILTIN_PROTQ): Ditto.
	(IX86_BUILTIN_PROTB_IMM): Ditto.
	(IX86_BUILTIN_PROTW_IMM): Ditto.
	(IX86_BUILTIN_PROTD_IMM): Ditto.
	(IX86_BUILTIN_PROTQ_IMM): Ditto.
	(IX86_BUILTIN_PSHLB): Ditto.
	(IX86_BUILTIN_PSHLW): Ditto.
	(IX86_BUILTIN_PSHLD): Ditto.
	(IX86_BUILTIN_PSHLQ): Ditto.
	(IX86_BUILTIN_PSHAB): Ditto.
	(IX86_BUILTIN_PSHAW): Ditto.
	(IX86_BUILTIN_PSHAD): Ditto.
	(IX86_BUILTIN_PSHAQ): Ditto.
	(IX86_BUILTIN_FRCZSS): Ditto.
	(IX86_BUILTIN_FRCZSD): Ditto.
	(IX86_BUILTIN_FRCZPS): Ditto.
	(IX86_BUILTIN_FRCZPD): Ditto.
	(IX86_BUILTIN_CVTPH2PS): Ditto.
	(IX86_BUILTIN_CVTPS2PH): Ditto.
	(IX86_BUILTIN_COMEQSS): Ditto.
	(IX86_BUILTIN_COMNESS): Ditto.
	(IX86_BUILTIN_COMLTSS): Ditto.
	(IX86_BUILTIN_COMLESS): Ditto.
	(IX86_BUILTIN_COMGTSS): Ditto.
	(IX86_BUILTIN_COMGESS): Ditto.
	(IX86_BUILTIN_COMUEQSS): Ditto.
	(IX86_BUILTIN_COMUNESS): Ditto.
	(IX86_BUILTIN_COMULTSS): Ditto.
	(IX86_BUILTIN_COMULESS): Ditto.
	(IX86_BUILTIN_COMUGTSS): Ditto.
	(IX86_BUILTIN_COMUGESS): Ditto.
	(IX86_BUILTIN_COMORDSS): Ditto.
	(IX86_BUILTIN_COMUNORDSS): Ditto.
	(IX86_BUILTIN_COMFALSESS): Ditto.
	(IX86_BUILTIN_COMTRUESS): Ditto.
	(IX86_BUILTIN_COMEQSD): Ditto.
	(IX86_BUILTIN_COMNESD): Ditto.
	(IX86_BUILTIN_COMLTSD): Ditto.
	(IX86_BUILTIN_COMLESD): Ditto.
	(IX86_BUILTIN_COMGTSD): Ditto.
	(IX86_BUILTIN_COMGESD): Ditto.
	(IX86_BUILTIN_COMUEQSD): Ditto.
	(IX86_BUILTIN_COMUNESD): Ditto.
	(IX86_BUILTIN_COMULTSD): Ditto.
	(IX86_BUILTIN_COMULESD): Ditto.
	(IX86_BUILTIN_COMUGTSD): Ditto.
	(IX86_BUILTIN_COMUGESD): Ditto.
	(IX86_BUILTIN_COMORDSD): Ditto.
	(IX86_BUILTIN_COMUNORDSD): Ditto.
	(IX86_BUILTIN_COMFALSESD): Ditto.
	(IX86_BUILTIN_COMTRUESD): Ditto.
	(IX86_BUILTIN_COMEQPS): Ditto.
	(IX86_BUILTIN_COMNEPS): Ditto.
	(IX86_BUILTIN_COMLTPS): Ditto.
	(IX86_BUILTIN_COMLEPS): Ditto.
	(IX86_BUILTIN_COMGTPS): Ditto.
	(IX86_BUILTIN_COMGEPS): Ditto.
	(IX86_BUILTIN_COMUEQPS): Ditto.
	(IX86_BUILTIN_COMUNEPS): Ditto.
	(IX86_BUILTIN_COMULTPS): Ditto.
	(IX86_BUILTIN_COMULEPS): Ditto.
	(IX86_BUILTIN_COMUGTPS): Ditto.
	(IX86_BUILTIN_COMUGEPS): Ditto.
	(IX86_BUILTIN_COMORDPS): Ditto.
	(IX86_BUILTIN_COMUNORDPS): Ditto.
	(IX86_BUILTIN_COMFALSEPS): Ditto.
	(IX86_BUILTIN_COMTRUEPS): Ditto.
	(IX86_BUILTIN_COMEQPD): Ditto.
	(IX86_BUILTIN_COMNEPD): Ditto.
	(IX86_BUILTIN_COMLTPD): Ditto.
	(IX86_BUILTIN_COMLEPD): Ditto.
	(IX86_BUILTIN_COMGTPD): Ditto.
	(IX86_BUILTIN_COMGEPD): Ditto.
	(IX86_BUILTIN_COMUEQPD): Ditto.
	(IX86_BUILTIN_COMUNEPD): Ditto.
	(IX86_BUILTIN_COMULTPD): Ditto.
	(IX86_BUILTIN_COMULEPD): Ditto.
	(IX86_BUILTIN_COMUGTPD): Ditto.
	(IX86_BUILTIN_COMUGEPD): Ditto.
	(IX86_BUILTIN_COMORDPD): Ditto.
	(IX86_BUILTIN_COMUNORDPD): Ditto.
	(IX86_BUILTIN_COMFALSEPD): Ditto.
	(IX86_BUILTIN_COMTRUEPD): Ditto.
	(IX86_BUILTIN_PCOMEQUB): Ditto.
	(IX86_BUILTIN_PCOMNEUB): Ditto.
	(IX86_BUILTIN_PCOMLTUB): Ditto.
	(IX86_BUILTIN_PCOMLEUB): Ditto.
	(IX86_BUILTIN_PCOMGTUB): Ditto.
	(IX86_BUILTIN_PCOMGEUB): Ditto.
	(IX86_BUILTIN_PCOMFALSEUB): Ditto.
	(IX86_BUILTIN_PCOMTRUEUB): Ditto.
	(IX86_BUILTIN_PCOMEQUW): Ditto.
	(IX86_BUILTIN_PCOMNEUW): Ditto.
	(IX86_BUILTIN_PCOMLTUW): Ditto.
	(IX86_BUILTIN_PCOMLEUW): Ditto.
	(IX86_BUILTIN_PCOMGTUW): Ditto.
	(IX86_BUILTIN_PCOMGEUW): Ditto.
	(IX86_BUILTIN_PCOMFALSEUW): Ditto.
	(IX86_BUILTIN_PCOMTRUEUW): Ditto.
	(IX86_BUILTIN_PCOMEQUD): Ditto.
	(IX86_BUILTIN_PCOMNEUD): Ditto.
	(IX86_BUILTIN_PCOMLTUD): Ditto.
	(IX86_BUILTIN_PCOMLEUD): Ditto.
	(IX86_BUILTIN_PCOMGTUD): Ditto.
	(IX86_BUILTIN_PCOMGEUD): Ditto.
	(IX86_BUILTIN_PCOMFALSEUD): Ditto.
	(IX86_BUILTIN_PCOMTRUEUD): Ditto.
	(IX86_BUILTIN_PCOMEQUQ): Ditto.
	(IX86_BUILTIN_PCOMNEUQ): Ditto.
	(IX86_BUILTIN_PCOMLTUQ): Ditto.
	(IX86_BUILTIN_PCOMLEUQ): Ditto.
	(IX86_BUILTIN_PCOMGTUQ): Ditto.
	(IX86_BUILTIN_PCOMGEUQ): Ditto.
	(IX86_BUILTIN_PCOMFALSEUQ): Ditto.
	(IX86_BUILTIN_PCOMTRUEUQ): Ditto.
	(IX86_BUILTIN_PCOMEQB): Ditto.
	(IX86_BUILTIN_PCOMNEB): Ditto.
	(IX86_BUILTIN_PCOMLTB): Ditto.
	(IX86_BUILTIN_PCOMLEB): Ditto.
	(IX86_BUILTIN_PCOMGTB): Ditto.
	(IX86_BUILTIN_PCOMGEB): Ditto.
	(IX86_BUILTIN_PCOMFALSEB): Ditto.
	(IX86_BUILTIN_PCOMTRUEB): Ditto.
	(IX86_BUILTIN_PCOMEQW): Ditto.
	(IX86_BUILTIN_PCOMNEW): Ditto.
	(IX86_BUILTIN_PCOMLTW): Ditto.
	(IX86_BUILTIN_PCOMLEW): Ditto.
	(IX86_BUILTIN_PCOMGTW): Ditto.
	(IX86_BUILTIN_PCOMGEW): Ditto.
	(IX86_BUILTIN_PCOMFALSEW): Ditto.
	(IX86_BUILTIN_PCOMTRUEW): Ditto.
	(IX86_BUILTIN_PCOMEQD): Ditto.
	(IX86_BUILTIN_PCOMNED): Ditto.
	(IX86_BUILTIN_PCOMLTD): Ditto.
	(IX86_BUILTIN_PCOMLED): Ditto.
	(IX86_BUILTIN_PCOMGTD): Ditto.
	(IX86_BUILTIN_PCOMGED): Ditto.
	(IX86_BUILTIN_PCOMFALSED): Ditto.
	(IX86_BUILTIN_PCOMTRUED): Ditto.
	(IX86_BUILTIN_PCOMEQQ): Ditto.
	(IX86_BUILTIN_PCOMNEQ): Ditto.
	(IX86_BUILTIN_PCOMLTQ): Ditto.
	(IX86_BUILTIN_PCOMLEQ): Ditto.
	(IX86_BUILTIN_PCOMGTQ): Ditto.
	(IX86_BUILTIN_PCOMGEQ): Ditto.
	(IX86_BUILTIN_PCOMFALSEQ): Ditto.
	(IX86_BUILTIN_PCOMTRUEQ): Ditto.
	(enum multi_arg_type): New enum for describing the various SSE5
	intrinsic argument types.
	(bdesc_multi_arg): New table for SSE5 intrinsics.
	(ix86_init_mmx_sse_builtins): Add SSE5 intrinsic support.
	(ix86_expand_multi_arg_builtin): New function for creating SSE5
	intrinsics.
	(ix86_expand_builtin): Add SSE5 intrinsic support.
	(ix86_sse5_valid_op_p): New function to validate SSE5 3 and 4
	operand instructions.
	(ix86_expand_sse5_multiple_memory): New function to split the
	second memory reference from SSE5 instructions.
	(type_has_variadic_args_p): Delete in favor of stdarg_p.
	(ix86_return_pops_args): Use stdarg_p to determine if the function
	has variable arguments.
	(ix86_setup_incoming_varargs): Ditto.
	(x86_this_parameter): Ditto.

	* config/i386/i386-protos.h (ix86_expand_sse5_unpack): Add
	declaration.
	(ix86_expand_sse5_pack): Ditto.
	(ix86_sse5_valid_op_p): Ditto.
	(ix86_expand_sse5_multiple_memory): Ditto.

	* config/i386/i386.md (UNSPEC_SSE5_INTRINSIC): Add new UNSPEC
	constant for SSE5 support.
	(UNSPEC_SSE5_UNSIGNED_CMP): Ditto.
	(UNSPEC_SSE5_TRUEFALSE): Ditto.
	(UNSPEC_SSE5_PERMUTE): Ditto.
	(UNSPEC_SSE5_ASHIFT): Ditto.
	(UNSPEC_SSE5_LSHIFT): Ditto.
	(UNSPEC_FRCZ): Ditto.
	(UNSPEC_CVTPH2PS): Ditto.
	(UNSPEC_CVTPS2PH): Ditto.
	(PCOM_FALSE): Add new constant for true/false SSE5 comparisons.
	(PCOM_TRUE): Ditto.
	(COM_FALSE_S): Ditto.
	(COM_FALSE_P): Ditto.
	(COM_TRUE_S): Ditto.
	(COM_TRUE_P): Ditto.
	(type attribute): Add ssemuladd, sseiadd1, ssecvt1, sse4arg types.
	(unit attribute): Add support for ssemuladd, ssecvt1, sseiadd1 sse4arg
	types.
	(memory attribute): Ditto.
	(sse4_1_round<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1.
	Use SSE4_1_ROUND_* constants instead of hard coded numbers.
	(rint<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1.
	(floor<mode>2): Ditto.
	(ceil<mode>2): Ditto.
	(btrunc<mode>2): Ditto.
	(nearbyintdf2): Ditto.
	(nearbyintsf2): Ditto.
	(sse_setccsf): Disable if SSE5.
	(sse_setccdf): Ditto.
	(sse5_setcc<mode>): New support for SSE5 conditional move.
	(sse5_pcmov_<mode>): Ditto.

	* config/i386/sse.md (SSEMODE1248): New mode iterator for SSE5.
	(SSEMODEF4): Ditto.
	(SSEMODEF2P): Ditto.
	(ssemodesuffixf4): New mode attribute for SSE5.
	(ssemodesuffixf2s): Ditto.
	(ssemodesuffixf2c): Ditto.
	(sserotatemax): Ditto.
	(ssescalarmode): Ditto.
	(sse_maskcmpv4sf3): Disable if SSE5.
	(sse_maskcmpv2df3): Ditto.
	(sse_vmmaskcmpv4sf3): Ditto.
	(sse5_fmadd<mode>4): Add SSE5 floating point multiply/add
	instructions.
	(sse5_vmfmadd<mode>4): Ditto.
	(sse5_fmsub<mode>4): Ditto.
	(sse5_vmfmsub<mode>4): Ditto.
	(sse5_fnmadd<mode>4): Ditto.
	(sse5_vmfnmadd<mode>4): Ditto.
	(sse5_fnmsub<mode>4): Ditto.
	(sse5_vmfnmsub<mode>4): Ditto.
	(sse5i_fmadd<mode>4): Ditto.
	(sse5i_fmsub<mode>4): Ditto.
	(sse5i_fnmadd<mode>4): Ditto.
	(sse5i_fnmsub<mode>4): Ditto.
	(sse5i_vmfmadd<mode>4): Ditto.
	(sse5i_vmfmsub<mode>4): Ditto.
	(sse5i_vmfnmadd<mode>4): Ditto.
	(sse5i_vmfnmsub<mode>4): Ditto.
	(mulv16qi3): Add SSE5 support.
	(mulv4si3): Ditto.
	(sse5_mulv4si3): New insn for 32-bit multiply support on SSE5.
	(sse2_mulv4si3): Disable if SSE5.
	(sse4_1_roundpd): Use TARGET_ROUND instead of TARGET_SSE4_1.
	(sse4_1_roundps): Ditto.
	(sse4_1_roundsd): Ditto.
	(sse4_1_roundss): Ditto.
	(sse_maskcmpv4sf3): Disable if SSE5 so the SSE5 instruction will
	be generated.
	(sse_maskcmpsf3): Ditto.
	(sse_vmmaskcmpv4sf3): Ditto.
	(sse2_maskcmpv2df3): Ditto.
	(sse2_maskcmpdf3): Ditto.
	(sse2_vmmaskcmpv2df3): Ditto.
	(sse2_eq<mode>3): Ditto.
	(sse2_gt<mode>3): Ditto.
	(sse5_pcmov_<mode>): Add SSE5 support.
	(vec_unpacku_hi_v16qi): Ditto.
	(vec_unpacks_hi_v16qi): Ditto.
	(vec_unpacku_lo_v16qi): Ditto.
	(vec_unpacks_lo_v16qi): Ditto.
	(vec_unpacku_hi_v8hi): Ditto.
	(vec_unpacks_hi_v8hi): Ditto.
	(vec_unpacku_lo_v8hi): Ditto.
	(vec_unpacks_lo_v8hi): Ditto.
	(vec_unpacku_hi_v4si): Ditto.
	(vec_unpacks_hi_v4si): Ditto.
	(vec_unpacku_lo_v4si): Ditto.
	(vec_unpacks_lo_v4si): Ditto.
	(sse5_pmacsww): New SSE5 intrinsic insn.
	(sse5_pmacssww): Ditto.
	(sse5_pmacsdd): Ditto.
	(sse5_pmacssdd): Ditto.
	(sse5_pmacssdql): Ditto.
	(sse5_pmacssdqh): Ditto.
	(sse5_pmacsdqh): Ditto.
	(sse5_pmacsswd): Ditto.
	(sse5_pmacswd): Ditto.
	(sse5_pmadcsswd): Ditto.
	(sse5_pmadcswd): Ditto.
	(sse5_pcmov_<move>): Conditional move support on SSE5.
	(sse5_phaddbw): New SSE5 intrinsic insn.
	(sse5_phaddbd): Ditto.
	(sse5_phaddbq): Ditto.
	(sse5_phaddwd): Ditto.
	(sse5_phaddwq): Ditto.
	(sse5_phadddq): Ditto.
	(sse5_phaddubw): Ditto.
	(sse5_phaddubd): Ditto.
	(sse5_phaddubq): Ditto.
	(sse5_phadduwd): Ditto.
	(sse5_phadduwq): Ditto.
	(sse5_phaddudq): Ditto.
	(sse5_phsubbw): Ditto.
	(sse5_phsubwd): Ditto.
	(sse5_phsubdq): Ditto.
	(sse5_pperm): Ditto.
	(sse5_pperm_sign_v16qi_v8hi): New insns for pack/unpack with SSE5.
	(sse5_pperm_zero_v16qi_v8hi): Ditto.
	(sse5_pperm_sign_v8hi_v4si): Ditto.
	(sse5_pperm_zero_v8hi_v4si): Ditto.
	(sse5_pperm_sign_v4si_v2di): Ditto.
	(sse5_pperm_sign_v4si_v2di): Ditto.
	(sse5_pperm_pack_v2di_v4si): Ditto.
	(sse5_pperm_pack_v4si_v8hi): Ditto.
	(sse5_pperm_pack_v8hi_v16qi): Ditto.
	(sse5_perm<mode>): New SSE5 intrinsic insn.
	(rotl<mode>3): Ditto.
	(sse5_rotl<mode>3): Ditto.
	(sse5_ashl<mode>3): Ditto.
	(sse5_lshl<mode>3): Ditto.
	(sse5_frcz<mode>2): Ditto.
	(sse5s_frcz<mode>2): Ditto.
	(sse5_cvtph2ps): Ditto.
	(sse5_cvtps2ph): Ditto.
	(sse5_vmmaskcmp<mode>3): Ditto.
	(sse5_com_tf<mode>3): Ditto.
	(sse5_maskcmp<mode>3): Ditto.
	(sse5_maskcmp_uns<mode>3): Ditto.
	(sse5_maskcmp_uns2<mode>3): Ditto.
	(sse5_pcom_tf<mode>3): Ditto.
	
	* config/i386/predicates.md (sse5_comparison_float_operator): New predicate to match the
	comparison operators supported by the SSE5 com instruction.
	(ix86_comparison_int_operator): New predicate to match just the
	signed int comparisons.
	(ix86_comparison_uns_operator): New predicate to match just the
	unsigned int comparisons.

	* doc/invoke.texi (-msse5): Add documentation.
	(-mfused-madd): Ditto.

	* doc/extend.texi (x86 intrinsics): Document new SSE5 intrinsics.

	* config.gcc (i[34567]86-*-*): Include bmmintrin.h and
	mmintrin-common.h.
	(x86_64-*-*): Ditto.

	* config/i386/cpuid.h (bit_SSE5): Define SSE5 bit.

	* config/i386/bmmintrin.h: New file, provide common x86 compiler
	intrinisics for SSE5.

	* config/i386/smmintrin.h: Move instructions shared with SSE5 to
	mmintrin-common.h.

	* config/i386/mmintrin-common.h: New file, to contain common
	instructions between SSE4.1 and SSE5.

	* config/i386/netware.c (gen_stdcall_or_fastcall_decoration): Use
	FOREACH_FUNCTION_ARGS to iterate over the argument list.
	(gen_regparm_prefix): Ditto.

	* config/i386/winnt.c (gen_stdcall_or_fastcall_suffix): Use
	FOREACH_FUNCTION_ARGS to iterate over the argument list.  Use
	prototype_p to determine if a function is prototyped.

	* gcc.target/i386/sse5-shift1-vector.c
	* gcc.target/i386/isa-12.c
	* gcc.target/i386/isa-12.cgcc.target/i386/isa-12.c
	* gcc.target/i386/sse5-pcmov2.c
	* gcc.target/i386/isa-3.c
	* gcc.target/i386/sse5-shift2-vector.c
	* gcc.target/i386/isa-7.c
	* gcc.target/i386/funcspec-2.c
	* gcc.target/i386/sse5-haddX.c
	* gcc.target/i386/sse5-hadduX.c
	* gcc.target/i386/isa-9.c
	* gcc.target/i386/sse5-maccXX.c
	* gcc.target/i386/sse5-shift3-vector.c
	* gcc.target/i386/sse5-msubXX.c
	* gcc.target/i386/sse5-permpX.c
	* gcc.target/i386/sse5-check.h
	* gcc.target/i386/sse-12.c
	* gcc.target/i386/sse-11.c
	* gcc.target/i386/sse-10.c
	* gcc.target/i386/sse-13.c
	* gcc.target/i386/sse-14.c
	* gcc.target/i386/sse-22.c
	* gcc.target/i386/sse-2.c
	* gcc.target/i386/sse-13.c
	* gcc.target/i386/avx-2.c
	* gcc.target/i386/sse5-rotate1-vector.c
	* gcc.target/i386/isa-4.c
	* gcc.target/i386/sse5-hsubX.c
	* gcc.target/i386/sse5-pcmov.c
	* gcc.target/i386/sse5-fma.c
	* gcc.target/i386/isa-8.c
	* gcc.target/i386/sse5-rotate2-vector.c
	* gcc.target/i386/sse5-nmaccXX.c
	* gcc.target/i386/sse5-imul64-vector.c
	* gcc.target/i386/sse5-nmsubXX.c
	* gcc.target/i386/sse5-rotate3-vector.c
	* gcc.target/i386/sse5-fma-vector.c
	* gcc.target/i386/sse5-imul32widen-vector.c: Remove SSE5 related testcases
	* gcc.target/i386/sse5-ima-vector.c

	* gcc.target/i386/funcspec-8.c: Replace SSE5 by SSE4.
	* gcc.target/i386/funcspec-5.c: Remove SSE5.
	* gcc.target/i386/funcspec-6.c: Remove fused-add test.
	* gcc.target/i386/avx-1.c: Remove SSE5.
	* gcc.target/i386/avx-2.c: Remove SSE5.
	* g++.dg/other/i386-2.C: Replace SSE5 by SSE4A.
	* g++.dg/other/i386-3.C: Replace SSE5 by SSE4A.
	* g++.dg/other/i386-6.C: Replace SSE5 by SSE4A.
	* g++.dg/other/i386-5.C: Replace SSE5 by SSE4A.

From-SVN: r151099
2009-08-25 21:44:20 +00:00
Uros Bizjak 027c625ced limits-fndefn.c: Add dg-timeout-factor.
* gcc.c-torture/compile/limits-fndefn.c: Add dg-timeout-factor.

From-SVN: r151098
2009-08-25 23:38:33 +02:00
Ville Voutilainen f4e8a9430d * c-common.c (c_common_reswords) add the alignof keyword,
with same RID as __alignof and __alignof__

From-SVN: r151097
2009-08-25 17:21:25 -04:00
Anatoly Sokolov 7b5cbb5703 hooks.h (hook_bool_const_int_const_int_true): Declare.
* hooks.h (hook_bool_const_int_const_int_true): Declare.
	* hooks.c (hook_bool_const_int_const_int_true): New function.
	* target.h (struct gcc_target): Add can_eliminate field.
	* target-def.h (TARGET_CAN_ELIMINATE): Define.
	(TARGET_INITIALIZER): Use TARGET_CAN_ELIMINATE.
	* ira.c (setup_eliminable_regset): Use can_eliminate target hook.
	* reload1.c (update_eliminables, init_elim_table): (Ditto.).
	(elim_table): Revise comment.
	* system.h (CAN_ELIMINATE): Poison.
	* defaults.h (CAN_ELIMINATE): Remove.
	* doc/tm.texi (CAN_ELIMINATE): Revise documentation.

	* config/alpha/vms.h (CAN_ELIMINATE): Remove macro.
	* config/alpha/alpha.c (TARGET_CAN_ELIMINATE) [TARGET_ABI_OPEN_VMS]:
	Define macro.
	(alpha_vms_can_eliminate): Declare as static, change return type to
	bool.
	* config/alpha/alpha-protos.h (alpha_vms_can_eliminate): Remove.

	* config/arm/arm.h (CAN_ELIMINATE): Remove macro.
	* config/arm/arm.c (TARGET_CAN_ELIMINATE): Define macro.
	(arm_can_eliminate): New function.

	* config/avr/avr.h (CAN_ELIMINATE): Remove macro.
	* config/avr/avr.c (TARGET_CAN_ELIMINATE): Define macro.
	(avr_can_eliminate): Declare as static.
	* config/avr/avr-protos.h (avr_can_eliminate): Remove.

	* config/bfin/bfin.h (CAN_ELIMINATE): Remove macro.
	* config/bfin/bfin.c (TARGET_CAN_ELIMINATE): Define macro.
	(bfin_can_eliminate): New function.

	* config/crx/crx.h (CAN_ELIMINATE): Remove macro.
	* config/crx/crx.c (TARGET_CAN_ELIMINATE): Define macro.
	(crx_can_eliminate): New function.
	
	* config/fr30/fr30.h (CAN_ELIMINATE): Remove macro.
	* config/fr30/fr30.c (TARGET_CAN_ELIMINATE): Define macro.
	(fr30_can_eliminate): New function.

	* config/frv/frv.h (CAN_ELIMINATE): Remove macro.
	* config/frv/frv.c (TARGET_CAN_ELIMINATE): Define macro.
	(frv_can_eliminate): New function.

	* config/h8300/h8300.h (CAN_ELIMINATE): Remove macro.
	* config/h8300/h8300.c (TARGET_CAN_ELIMINATE): Define macro.
	(h8300_can_eliminate): New function.

	* config/i386/i386.h (CAN_ELIMINATE): Remove macro.
	* config/i386/i386.c (TARGET_CAN_ELIMINATE): Define macro.
	(i386_can_eliminate): Declare as static, change return type to bool.
	* config/i386/i386-protos.h (i386_can_eliminate): Remove.

	* config/ia64/ia64.h (CAN_ELIMINATE): Remove macro.
	* config/ia64/ia64.c (TARGET_CAN_ELIMINATE): Define macro.
	(ia64_can_eliminate): New function.

	* config/iq2000/iq2000.h (CAN_ELIMINATE): Remove macro.
	* config/iq2000/iq2000.c (TARGET_CAN_ELIMINATE): Define macro.
	(iq2000_can_eliminate): New function.

	* config/m32r/m32r.h (CAN_ELIMINATE): Remove macro.
	* config/m32r/m32r.c (TARGET_CAN_ELIMINATE): Define macro.
	(m32r_can_eliminate): New function.

	* config/m68hc11/m68hc11.h (CAN_ELIMINATE): Remove macro.
	* config/m68hc11/m68hc11.c (TARGET_CAN_ELIMINATE): Define macro.
	(m68hc11_can_eliminate): New function.

	* config/m68k/m68k.h (CAN_ELIMINATE): Remove macro.
	* config/m68k/m68k.c (TARGET_CAN_ELIMINATE): Define macro.
	(m68k_can_eliminate): New function.

	* config/mep/mep.h (CAN_ELIMINATE): Remove macro.
	* config/mep/mep.c (TARGET_CAN_ELIMINATE): Define macro.
	(mep_can_eliminate): New function.

	* config/mips/mips.h (CAN_ELIMINATE): Remove macro.
	* config/mips/mips.c (TARGET_CAN_ELIMINATE): Define macro.
	(mips_can_eliminate): New function.

	* config/rs6000/rs6000.h (CAN_ELIMINATE): Remove macro.
	* config/rs6000/rs6000.c (TARGET_CAN_ELIMINATE): Define macro.
	(rs6000_can_eliminate): New function.

	* config/s390/s390.h (CAN_ELIMINATE): Remove macro.
	* config/s390/s390.c (TARGET_CAN_ELIMINATE): Define macro.
	(s390_can_eliminate): Declare as static.
	* config/s390/s390-protos.h (sparc_can_eliminate): Remove.

	* config/score/score.h (CAN_ELIMINATE): Remove macro.
	* config/score/score.c (TARGET_CAN_ELIMINATE): Define macro.
	(score_can_eliminate): New function.

	* config/sparc/sparc.h (CAN_ELIMINATE): Remove macro.
	* config/sparc/sparc.c (TARGET_CAN_ELIMINATE): Define macro.
	(sparc_can_eliminate): Declare as static.
	* config/sparc/sparc-protos.h (sparc_can_eliminate): Remove.

	* config/stormy16/stormy16.h (CAN_ELIMINATE): Remove macro.
	* config/stormy16/stormy16.c (TARGET_CAN_ELIMINATE): Define macro.
	(xstormy16_can_eliminate): New function.

	* config/v850/v850.h (CAN_ELIMINATE): Remove macro.
	* config/v850/v850.c (TARGET_CAN_ELIMINATE): Define macro.
	(v850_can_eliminate): New function.

From-SVN: r151096
2009-08-26 01:09:00 +04:00
Michael Meissner 79232baaf8 Remove svn merge marker
From-SVN: r151095
2009-08-25 20:42:47 +00:00
Uros Bizjak e7f8fba9c3 alpha.md (*cmpdf_ieee_ext[123]): Remove.
* config/alpha/alpha.md (*cmpdf_ieee_ext[123]): Remove.
	(*cmpdf_internal): Enable for all ALPHA_FPTM levels.
	(*movdfcc_ext[1234]): Disable for IEEE mode.

From-SVN: r151093
2009-08-25 20:58:11 +02:00
Janne Blomqvist 3fe9e1ff8c Fix ENCODE example in gfortran manual
From-SVN: r151091
2009-08-25 21:24:25 +03:00
Thomas Koenig 8c39b98796 re PR libfortran/34670 (bounds checking for array intrinsics)
2009-08-25  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR libfortran/34670
	* runtime/bounds.c (count_0):  New function.
	* intrinsics/unpack_generic (unpack_bounds):  New function.
	(unpack_internal):  Remove zero stride checks.
	(unpack1):  Use unpack_bounds.
	(unpack1_char):  Likeweise.
	(unpack1_char4):  Likewise
	(unpack0):  Likewise.
	(unpack0_char):  Likewise.
	(unpack0_char4):  Likewise.

2009-08-25  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR libfortran/34670
	* gfortran.dg/unpack_bounds_1.f90:  New test.
	* gfortran.dg/unpack_bounds_2.f90:  New test.
	* gfortran.dg/unpack_bounds_3.f90:  New test.

From-SVN: r151085
2009-08-25 17:05:10 +00:00
Eric Botcazou f76d6e6f37 gimplify.c (prepare_gimple_addressable): New static function.
* gimplify.c (prepare_gimple_addressable): New static function.
	(gimplify_modify_expr_to_memcpy): Invoke it on the RHS before marking
	it addressable.
	(gimplify_addr_expr): Invoke it similarly on the operand instead of
	manually fiddling with it.
ada/
	* gcc-interface/trans.c (call_to_gnu): Tidy.
	(gnat_to_gnu) <N_Slice>: Set TYPE_ARRAY_MAX_SIZE if the slice has
	non-constant size but the array itself has constant size.
	* gcc-interface/utils.c (convert_vms_descriptor64): Fix type
	consistency error.
	(convert_vms_descriptor32): Likewise.

From-SVN: r151082
2009-08-25 15:02:19 +00:00
Janus Weil 23878536a6 re PR fortran/41139 (a procedure pointer call as actual argument)
2009-08-25  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/41139
	* primary.c (gfc_match_varspec): Make sure EXPR_PPC is only used for
	calls to procedure pointer components, other references to procedure
	pointer components are EXPR_VARIABLE.
	* resolve.c (resolve_actual_arglist): Bugfix (there can be calls without
	actual arglist).
	* trans-expr.c (gfc_get_proc_ptr_comp): Renamed to 'get_proc_ptr_comp',
	removed argument 'se' and made static. Avoid inserting a temporary
	variable for calling the PPC.
	(conv_function_val): Renamed gfc_get_proc_ptr_comp.
	(gfc_conv_procedure_call): Distinguish functions returning a procedure
	pointer from calls to a procedure pointer. Distinguish calls to
	procedure pointer components from procedure pointer components as
	actual arguments.
	* trans-stmt.h (gfc_get_proc_ptr_comp): Make it static.


2009-08-25  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/41139
	* gfortran.dg/proc_ptr_25.f90: New.
	* gfortran.dg/proc_ptr_comp_18.f90: New.
	* gfortran.dg/proc_ptr_comp_19.f90: New.

From-SVN: r151081
2009-08-25 16:26:44 +02:00
Michael Matz 4df62c77fe expr.h (jumpifnot_1, [...]): Declare.
* expr.h (jumpifnot_1, jumpif_1, do_jump_1): Declare.
        * dojump.c (do_jump_by_parts_greater): Take two operands instead of
        full expression.
        (do_jump_by_parts_equality, do_compare_and_jump): Ditto.
        (jumpifnot_1, jumpif_1): New wrappers for do_jump_1.
        (do_jump): Split out code for simple binary comparisons into ...
        (do_jump_1): ... this, taking the individual operands and code.
        Change callers to helper function above accordingly.
        * expr.c (expand_expr_real_1): Use jumpifnot_1 for simple binary
        comparisons.

From-SVN: r151080
2009-08-25 13:35:39 +00:00
Michael Matz 8e7aa1f9a3 expr.h (struct separate_ops, sepops): New type for passing around an exploded simple expression.
* expr.h (struct separate_ops, sepops): New type for passing
        around an exploded simple expression.
        * optabs.c (expand_widen_pattern_expr, expand_vec_shift_expr):
        Use this structure instead of expression tree.
        (get_vcond_icode, expand_vec_cond_expr_p): Don't take whole
        expression, only its type.
        (expand_vec_cond_expr): Take type and individual operands instead
        of full expression.
        * optabs.h (expand_widen_pattern_expr, expand_vec_cond_expr,
        expand_vec_shift_expr): Change prototype accordingly.
        * tree-vect-stmts.c (vectorizable_condition): Change call of
        expand_vec_cond_expr_p to pass only type.
        * expr.c (do_store_flags): Change prototype and implementation
        to take an exploded expression.
        (expand_expr_real_1): New local ops initialized with details
        of the full expression.  Use it instead of full
        expression in calls to do_store_flags, expand_vec_cond_expr,
        expand_widen_pattern_expr and expand_vec_shift_expr.

From-SVN: r151079
2009-08-25 13:33:54 +00:00
Michael Matz b32e7cdb5d expr.c (expand_expr_real_1): New local treeop0...
* expr.c (expand_expr_real_1): New local treeop0, treeop1,
        treeop2 initialized with first three operands of the full expression.
        Substitute all TREE_OPERAND (exp, [012]) calls with them.

From-SVN: r151078
2009-08-25 13:31:56 +00:00
Kai Tietz ce4a9de3a4 gthr-win32.h (__UNUSED_PARAM): Define, if not already present.
2009-08-25  Kai Tietz  <kai.tietz@onevision.com>

        * gcc/gthr-win32.h (__UNUSED_PARAM): Define, if not already present.
        (__gthread_objc_condition_allocate): Mark arguments as unused.
        (__gthread_objc_condition_deallocate): Likewise.
        (__gthread_objc_condition_wait): Likewise.
        (__gthread_objc_condition_broadcast): Likewise.
        (__gthread_objc_condition_signal): Likewise.
        (__gthread_objc_thread_detach): Cast via INT_PTR to pointer.
        (__gthread_objc_thread_id): Likewise.

From-SVN: r151077
2009-08-25 12:32:38 +02:00
Janus Weil d69b8a03d7 re PR middle-end/41149 (-fdump-tree-original and procedure pointer components)
2009-08-25  Janus Weil  <janus@gcc.gnu.org>

	PR middle-end/41149
	* tree-pretty-print.c (print_call_name): Print the correct call name
	for procedure pointer components.

From-SVN: r151075
2009-08-25 11:35:41 +02:00
Jerry DeLisle c50d968717 re PR fortran/41162 (416.gamess in SPEC CPU 2006 failed to build)
2009-08-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/41162
	* io.c (check_format): Fix to not error on slash after P. Fix some
	error loci.

From-SVN: r151074
2009-08-25 05:22:14 +00:00
Steven G. Kargl 4551438c75 re PR libfortran/41157 (dtime not consistent in times reported)
2009-08-24  Steven G. Kargl  <kargl@gcc.gnu.org>

    PR fortran/41157
    * dtime.c (dtime_sub): Fix computing time increment.
    * time_1.h: Add <sys/types.h> header.  Use RUSAGE_SELF macro instead
    of a hardcoded 0.

From-SVN: r151072
2009-08-25 01:47:23 +00:00
Jerry DeLisle 1ed659c18d re PR fortran/41154 (Comma required after P descriptor)
2009-08-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/41154
	* gfortran.dg/fmt_error_8.f: New test.

From-SVN: r151071
2009-08-25 01:14:13 +00:00
Jerry DeLisle 72acf7207b re PR fortran/41154 (Comma required after P descriptor)
2009-08-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/41154
	* io.c (check_format): Fix to not error on right paren after P.

From-SVN: r151070
2009-08-25 01:05:11 +00:00
Aldy Hernandez 033e7d21e5 re PR debug/40660 (Weird break points with 4.5, works with 4.4)
fortran/
        PR fortran/40660
        * trans-io.c (build_dt): Pass UNKNOWN_LOCATION to build_call_expr_loc.
        (transfer_array_desc): Same.

From-SVN: r151069
2009-08-25 00:27:52 +00:00
GCC Administrator 48bab68295 Daily bump.
From-SVN: r151068
2009-08-25 00:16:47 +00:00
Kaveh R. Ghazi bf866c2021 builtin-math-6.c (link_error): Accept a value number, update all callers and synchronize results for latest MPC.
* gcc.dg/torture/builtin-math-6.c (link_error): Accept a value
	number, update all callers and synchronize results for latest MPC.

From-SVN: r151065
2009-08-24 22:54:25 +00:00
Steve Ellcey c331341273 ia64.c (ia64_promote_function_mode): Call default_promote_function_mode when not VMS.
2009-08-24  Steve Ellcey  <sje@cup.hp.com>

	* config/ia64/ia64.c (ia64_promote_function_mode): Call
	default_promote_function_mode when not VMS.

From-SVN: r151064
2009-08-24 21:35:16 +00:00
Jason Merrill 783a452cce cp-tree.h (DECL_DEFERRED_FN): Remove.
* cp-tree.h (DECL_DEFERRED_FN): Remove.
	(struct lang_decl_fn): Remove deferred flag.
	* class.c (build_clone): Don't set it.
	* decl2.c (note_vague_linkage_fn): Don't check or set it.
	(mark_used): Don't check it.
	* method.c (make_thunk, make_alias_for): Don't set it.

From-SVN: r151063
2009-08-24 17:32:24 -04:00
Jason Merrill d9fbd03b21 * decl2.c (mark_used): Streamline logic.
From-SVN: r151062
2009-08-24 17:32:12 -04:00
Jason Merrill 3146f36f93 re PR c++/41109 (Argument flagged as unused despite use in sizeof())
PR c++/41109
	PR c++/41110
	PR c++/41134
	* cp-tree.h (DECL_ODR_USED): New macro.
	(struct lang_decl_base): Add odr_used flag.
	* decl.c (duplicate_decls): Propagate it.  Use it for error.
	* pt.c (register_specialization): Use it for error.
	* decl2.c (mark_used): Use it as gating flag rather than TREE_USED.
	(cp_write_global_declarations): Use it for error.
	(tree_used_ok): Remove.
	* cp-tree.h: Remove tree_used_ok.
	* call.c (build_call_a): Don't call it.
	* init.c (build_offset_ref): Likewise.

From-SVN: r151061
2009-08-24 17:31:54 -04:00
Olivier Hainque c767899ef2 convert.c (convert_to_integer): Don't assume an input pointer is POINTER_SIZE wide.
* convert.c (convert_to_integer): Don't assume an input pointer is
        POINTER_SIZE wide.  Fetch from the type instead.

From-SVN: r151060
2009-08-24 21:23:22 +00:00
Ralf Wildenhues df58e64872 Update AC_PREREQ entries to 2.64
/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

intl/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

libdecnumber/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

libiberty/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

libjava/classpath/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

libjava/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

libjava/libltdl/:
	* configure.ac (AC_PREREQ): Bump to 2.64.  Remove FIXME.

libssp/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

libobjc/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

libstdc++-v3/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

libada/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

libgcc/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

libgfortran/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

boehm-gc/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

gnattools/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

gcc/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

fixincludes/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

libmudflap/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

zlib/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

libffi/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

libcpp/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

libgomp/:
	* configure.ac (AC_PREREQ): Bump to 2.64.

From-SVN: r151059
2009-08-24 19:08:51 +00:00
Chris Jefferson f9590eae5f stl_algo.h (__unguarded_partition_pivot, [...]): New.
2009-08-24  Chris Jefferson  <chris@bubblescope.net>

	* include/stl_algo.h (__unguarded_partition_pivot,
	__move_median_first): New.
	(__insertion_sort, __unguarded_insertion_sort): Adjust for move-only
	types.
	(__unguarded_linear_insert): Assume always inserting value at __last.
	(__unguarded_partition): Take pivot by reference.
	(__introsort_loop, __introselect) : Use __unguarded_partition_pivot.
	* testsuite/25_algorithms/nth_element/moveable.cc : Enable.

From-SVN: r151055
2009-08-24 14:07:34 +00:00
Rafael Avila de Espindola 2ef4a8e14a gcc.c (standard_exec_prefix_1,standard_exec_prefix_2): Remove.
2009-08-24  Rafael Avila de Espindola  <espindola@google.com>

	* gcc.c (standard_exec_prefix_1,standard_exec_prefix_2): Remove.
	(process_command): Don't search standard_exec_prefix_1 and
	standard_exec_prefix_2.

From-SVN: r151054
2009-08-24 14:02:21 +00:00
Ramana Radhakrishnan c7e9ab97be Unified syntax fixes.
2009-08-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

       * config/arm/arm.c (output_return_instruction): Handle for
       unified syntax.

From-SVN: r151053
2009-08-24 10:00:09 +00:00
Ramana Radhakrishnan 3e2d9dcfa8 combine cmps with shifts
2009-08-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

       * gcc.target/arm/combine-cmp-shift.c: New test.

2009-08-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

       * config/arm/arm.c (arm_select_cc_mode): Handle subreg.

From-SVN: r151050
2009-08-24 09:03:35 +00:00
Ramana Radhakrishnan 54f52b8164 set predicable attributes.
2009-08-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

        * config/arm/vfp.md (*arm_movdi_vfp): Mark as predicable. 
        (*arm_movdf_vfp): Likewise.

From-SVN: r151049
2009-08-24 08:59:38 +00:00
Ramana Radhakrishnan d44463a93d Fix Neon ICE.
2009-08-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

        * config/arm/neon.md (vashl<mode>3): Rename from ashl<mode>3.
        (vashr<mode>3): Rename from ashr<mode>3.
        (vlshr<mode>3): Rename from lshr<mode>3.

From-SVN: r151048
2009-08-24 08:52:50 +00:00
Kai Tietz b241b4757b Changelog gcc/
2009-08-24  Kai Tietz  <kai.tietz@onevision.com>

	PR/40786
	* c-format.c (format_wanted_type):  Add new member scalar_identity_flag.
	(check_format_info_main): Use scalar_identify_flag.
	(check_format_types): Check for scalar size identity if
	scalar_identify_flag is set.
	(printf_length_specs): Extend by new field.
	(asm_fprintf_length_specs): Likewise.
	(gcc_diag_length_specs): Likewise.
	(scanf_length_specs): Likewise.
	(strfmon_length_specs): Likewise.
	(gcc_gfc_length_specs): Likewise.
	* config/i386/msformat-c.c (ms_printf_length_specs): Likewise.
	(ms_printf_flag_specs): Likewise.
	* c-format.h (format_length_info): Add new member scalar_identity_flag.

Changelog gcc/testsuite

2009-08-24  Kai Tietz  <kai.tietz@onevision.com>

	*gcc.dg/format/ms-format1.c: Add new cases for I32
	width specifier.
	*gcc.dg/format/ms-format2.c: New test about illegal
	use of I32/I64 width specifier.

From-SVN: r151047
2009-08-24 08:17:33 +02:00
Jerry DeLisle e523d8bcf7 re PR fortran/35754 (-std=f95: Reject "1P2E12.4" w/o a comma after the "P")
2009-08-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/35754
	* io.c (check_format): Add checks for comma and the allowed
	format specifiers after the 'P' specifier. Fix typo in error message
	and adjust locus.

From-SVN: r151045
2009-08-24 04:41:51 +00:00
Jerry DeLisle a14e5b7e0e fmt_error_7.f: New test.
2009-08-23  Jerry DeLisle   <jvdelisle@gcc.gnu.org>

	* gfortran.dg/fmt_error_7.f: New test.

From-SVN: r151044
2009-08-24 03:46:18 +00:00
Jerry DeLisle de1ee8e1ee re PR fortran/37446 (Diagnostic of edit descriptors, esp. EN)
2009-08-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/37446
	* io.c (enum format_token): Change FMT_EXT to FMT_EN and FMT_ES.
	(format_lex): Likewise.
	(token_to_string): New function.
	(check_format): Use the new tokens and the new function. Add
	check for positive width.

From-SVN: r151043
2009-08-24 03:41:56 +00:00