Commit graph

104201 commits

Author SHA1 Message Date
Uros Bizjak
2fe4dc01ed Partially revert:
2010-10-28  Uros Bizjak  <ubizjak@gmail.com>

	PR target/46153
	* config/i386/sse.md (*avx_movhlps): Use ix86_binary_operator_ok
	in insn predicate.
	(sse_movhlps): Ditto.
	(*avx_movlhps): Ditto.
	(sse_movlhps): Ditto.
	(*avx_loadhps): Ditto.
	(sse_loadhps): Ditto.
	(*avx_loadhpd): Ditto.
	(sse_loadhpd): Ditto.
	(*avx_storelps): Prevent both operands in memory.
	(sse_storelps): Ditto.

From-SVN: r166047
2010-10-28 22:49:46 +02:00
Nathan Froyd
05fda84809 * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
From-SVN: r166046
2010-10-28 20:27:30 +00:00
Nathan Froyd
73f3f8411f cris.h (FUNCTION_ARG, [...]): Delete.
* config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
	(FUNCTION_ARG_ADVANCE): Delete.
	* config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
	functions.
	(cris_function_incoming_arg, cris_function_arg_advance): New
	functions.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
	(TARGET_FUNCTION_ARG_ADVANCE): Define.

From-SVN: r166045
2010-10-28 20:19:57 +00:00
Nathan Froyd
3acf034c5a lm32-protos.h (lm32_function_arg): Delete.
* config/lm32/lm32-protos.h (lm32_function_arg): Delete.
	* config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
	* config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
	Take a const_tree and a bool.
	(mcore_function_arg_advance): New function.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

From-SVN: r166044
2010-10-28 20:13:18 +00:00
Nathan Froyd
4665ac1730 mcore-protos.h (mcore_function_arg): Delete.
* config/mcore/mcore-protos.h (mcore_function_arg): Delete.
	* config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
	* config/mcore/mcore.c (mcore_function_arg): Declare.  Make static.
	Take a const_tree and a bool.
	(mcore_function_arg_advance): New function.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

From-SVN: r166043
2010-10-28 20:07:06 +00:00
Nathan Froyd
56f9413b94 h8300-protos.h (function_arg): Delete.
* config/h8300/h8300-protos.h (function_arg): Delete.
	* config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
	* config/h8300/h8300.c (function_arg): Rename to...
	(h8300_function_arg): ...this.  Make static.  Take a const_tree and
	a bool.
	(h8300_function_arg_advance): New function.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

From-SVN: r166042
2010-10-28 20:06:25 +00:00
Nathan Froyd
66d5ee1440 arc.h (FUNCTION_ARG, [...]): Move code to...
* config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
	to...
	* config/arc/arc.c (arc_function_arg): ...here and...
	(arc_function_arg_advance): ...here.  New functions.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

From-SVN: r166041
2010-10-28 20:04:05 +00:00
Nathan Froyd
a6a54b6fd1 crx-protos.h (crx_function_arg): Delete.
* config/crx/crx-protos.h (crx_function_arg): Delete.
	(crx_function_arg_advance): Delete.
	* config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
	* config/crx/crx.c (crx_function_arg): Make static.  Take a
	const_tree and a bool.
	(crx_function_arg_advance): Make static.  Take a const_tree and
	a bool.
	(enough_regs_for_param): Take a const_tree.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

From-SVN: r166040
2010-10-28 20:02:25 +00:00
Nathan Froyd
da15f931e5 m68hc11-protos.h (m68hc11_function_arg): Delete.
* config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
	(m68hc11_function_arg_advance): Delete.
	* config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
	(FUNCTION_ARG_ADVANCE): Delete.
	* config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
	Take a const_tree and a bool.
	(m68hc11_function_arg_advance): Likewise.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

From-SVN: r166039
2010-10-28 20:01:11 +00:00
Nathan Froyd
bf425ddd46 stormy16-protos.h (xstormy16_function_arg): Delete.
* config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
	(xstormy16_function_arg_advance): Delete.
	* config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
	(FUNCTION_ARG_ADVANCE): Delete.
	* config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
	Take a const_tree and a bool.
	(xstormy16_function_arg_advance): Likewise.  Return void, updating
	the CUM parameter instead.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

From-SVN: r166038
2010-10-28 19:59:07 +00:00
Nathan Froyd
4c05cbb2a7 moxie-protos.h (moxie_function_arg): Delete.
* config/moxie/moxie-protos.h (moxie_function_arg): Delete.
	* config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
	(MOXIE_FUNCTION_ARG_SIZE): Move to...
	* config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
	(moxie_function_arg): Make static.  Take a const_tree and a bool.
	(moxie_function_arg_advance): New function.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

From-SVN: r166037
2010-10-28 19:57:17 +00:00
Nathan Froyd
ce236858e3 mn10300-protos.h (function_arg): Delete.
* config/mn10300/mn10300-protos.h (function_arg): Delete.
	* config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
	(FUNCTION_ARG_ADVANCE): Delete.
	* config/mn10300/mn10300.c (function_arg): Rename to...
	(mn10300_function_arg): ...this.  Make static.  Take a const_tree
	and a bool.
	(mn10300_function_arg_advance): New function.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

From-SVN: r166036
2010-10-28 19:55:43 +00:00
Nathan Froyd
24ef86d7ad iq2000-protos.h (function_arg): Delete.
* config/iq2000/iq2000-protos.h (function_arg): Delete.
	(function_arg_advance): Delete.
	* config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
	* config/iq2000/iq2000.c (function_arg): Rename to...
	(iq2000_function_arg): ...this.  Make static.  Take a const_tree and
	a bool.
	(function_arg_advance): Rename to...
	(iq2000_function_arg_advance): ...this.  Make static.  Take a
	const_tree and a bool.
	(iq2000_expand_prologue): Call iq2000_function_arg_advance and
	iq2000_function_arg.
	(iq2000_pass_by_reference): Call iq2000_function_arg).
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

From-SVN: r166035
2010-10-28 19:52:48 +00:00
Nathan Froyd
b60613c38a fr30-protos.h (fr30_num_arg_regs): Delete.
* config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
	* config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
	* config/fr30/fr30.c (fr30_num_arg_regs): Make static.  Take a
	const_tree.
	(fr30_function_arg): New function.
	(fr30_function_arg_advance): New function.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.

From-SVN: r166034
2010-10-28 19:51:34 +00:00
Nathan Froyd
88a1f47fae frv-protos.h (frv_function_arg): Delete.
* config/frv/frv-protos.h (frv_function_arg): Delete.
	(frv_function_arg_advance): Delete.
	* config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
	* config/frv/frv.c (frv_function_arg): Rename to...
	(frv_function_arg_1): Make static.  Take const_tree and bool
	arguments.
	(frv_function_arg, frv_function_incoming_arg): New functions.
	(frv_function_arg_advance): Make static.  Take a const_tree and
	a bool.
	(TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
	(TARGET_FUNCTION_ARG_ADVANCE): Define.

From-SVN: r166033
2010-10-28 19:45:32 +00:00
Chung-Lin Tang
46e0720d66 Add ARM VFP ABI support to libffi.
From-SVN: r166032
2010-10-28 18:11:11 +00:00
Uros Bizjak
f17aa4adf8 re PR target/46153 (ICE: in extract_insn, at recog.c:2110 (unrecognizable insn) with -ffloat-store and __builtin_ia32_movlhps)
PR target/46153
	* config/i386/sse.md (sse_movhlps_exp): Use destination
	returned from ix86_fixup_binary_operands to expand insn.
	(sse_movlhps_exp): Ditto.
	(sse_loadhps_exp): Ditto.
	(sse_loadlps_exp): Ditto.
	(sse2_loadhpd_exp): Ditto.
	(sse2_loadlpd_exp): Ditto.
	(*avx_movhlps): Use ix86_binary_operator_ok in insn predicate.
	(sse_movhlps): Ditto.
	(*avx_movlhps): Ditto.
	(sse_movlhps): Ditto.
	(*avx_loadhps): Ditto.
	(sse_loadhps): Ditto.
	(*avx_loadhpd): Ditto.
	(sse_loadhpd): Ditto.
	(*avx_storelps): Prevent both operands in memory.
	(sse_storelps): Ditto.

testsuite/ChangeLog:

	PR target/46153
	* gcc.target/i386/pr46153.c: New test.

From-SVN: r166031
2010-10-28 19:45:52 +02:00
Paolo Carlini
fb7342fd6f PR libstdc++/44436 (partial)
2010-10-28  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/44436 (partial)
	* include/bits/hashtable.h (_Hashtable<>::insert(value_type&&),
	insert(_Pair&&), insert(const_iterator, value_type&&),
	insert(const_iterator, _Pair&&)): Add.
	(_M_allocate_node, _M_insert, _M_insert_bucket): Templatize.
	* include/bits/hashtable_policy.h (__detail::_Select1st): Add; use
	it throughout.
	(_Map_base<>::operator[](_Key&&)): Add.
	* include/bits/unordered_map.h: Use __detail::_Select1st throughout.
	* include/debug/unordered_map: Update.
	* include/debug/unordered_set: Likewise.
	* include/profile/unordered_map: Likewise.
	* include/profile/unordered_set: Likewise.
	* testsuite/util/testsuite_rvalref.h (struct hash<rvalstruct>): Add;
	minor tweaks throughout, use deleted special members.
	* testsuite/23_containers/unordered_map/insert/map_single_move-1.cc:
	New.
	* testsuite/23_containers/unordered_map/insert/map_single_move-2.cc:
	Likewise.
	* testsuite/23_containers/unordered_map/insert/array_syntax_move.cc:
	Likewise.
	* testsuite/23_containers/unordered_multimap/insert/
	multimap_single_move-1.cc: Likewise.
	* testsuite/23_containers/unordered_multimap/insert/
	multimap_single_move-2.cc: Likewise.
	* testsuite/23_containers/unordered_set/insert/set_single_move.cc:
	Likewise.
	* testsuite/23_containers/unordered_multiset/insert/
	multiset_single_move.cc: Likewise.

	* testsuite/23_containers/unordered_map/insert/array_syntax.cc:
	Minor cosmetic changes.

From-SVN: r166030
2010-10-28 16:01:05 +00:00
Andrew Stubbs
d724c8f0a9 arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern constants in thumb2.
2010-10-28  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
	constants in thumb2.

From-SVN: r166029
2010-10-28 12:36:14 +00:00
Paolo Bonzini
2a6fa9aeed configure.ac: Rewrite DGUX check to use GC_CFLAGS, and -O0 check to remove the need for MY_CFLAGS.
2010-10-28  Paolo Bonzini  <bonzini@gnu.org>

	* configure.ac: Rewrite DGUX check to use GC_CFLAGS, and -O0 check
	to remove the need for MY_CFLAGS.
	* Makefile.am: Do not use @...@ substitutions.  Use AM_CXXFLAGS,
	AM_CFLAGS and AM_LDFLAGS instead of redefining LTCOMPILE and LINK.
	Use "override" to disable -O2 when required.
	* configure: Regenerate.
	* Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.

From-SVN: r166028
2010-10-28 10:58:48 +00:00
Eric Botcazou
c575a65f66 combine.c (set_nonzero_bits_and_sign_copies): Use unsigned arithmetics in masking operations.
* combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
	arithmetics in masking operations.
	(contains_muldiv): Likewise.
	(try_combine): Likewise.
	(find_split_point): Likewise.
	(combine_simplify_rtx): Likewise.
	(simplify_if_then_else): Likewise.
	(simplify_set): Likewise.
	(expand_compound_operation): Likewise.
	(expand_field_assignment): Likewise.
	(make_extraction): Likewise.
	(extract_left_shift): Likewise.
	(make_compound_operation): Likewise.
	(force_to_mode): Likewise.
	(make_field_assignment): Likewise.
	(reg_nonzero_bits_for_combine): Likewise.
	(simplify_shift_const_1): Likewise.
	(simplify_comparison): Likewise.

From-SVN: r166027
2010-10-28 10:32:03 +00:00
GCC Administrator
f228e2ae59 Daily bump.
From-SVN: r166026
2010-10-28 00:18:38 +00:00
Steve Ellcey
eb93b893ff checking in Nathan's patch because I accidently checked in part of it with my earlier patch.
checking in Nathan's patch because I accidently checked in part of it
with my earlier patch.  Also adding ChangeLog entry I forgot.

2010-10-27  Nathan Froyd  <froydnj@codesourcery.com>

        * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
        (ia64_function_arg_advance): Delete.
        * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
        (FUNCTION_ARG_ADVANCE): Delete.
        * config/ia64/ia64.c (ia64_function_arg): Rename to...
        (ia64_function_arg_1): ...this.  Make static.  Take const_tree and
        bool arguments.
        (ia64_function_arg, ia64_function_incoming_arg): New functions.
        (ia64_function_arg_advance): Make static.  Take a const_tree and
        a bool.
        (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
        (TARGET_FUNCTION_ARG_ADVANCE): Define.

From-SVN: r166022
2010-10-27 22:51:18 +00:00
Steve Ellcey
ffa88471b5 tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
2010-10-27  Steve Ellcey  <sje@cup.hp.com>

	* doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
	(TARGET_GET_RAW_ARG_MODE): New.
	* doc/tm.texi: Regenerate.
	* target.def (get_raw_result_mode): New.
	(get_raw_arg_mode): New.
	* targhooks.c (default_get_reg_raw_mode): New.
	* targhooks.h (default_get_reg_raw_mode): New.
	* builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
	(apply_result_size): Ditto.
	* config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
	(TARGET_GET_RAW_RESULT_MODE): Define.
	(TARGET_GET_RAW_ARG_MODE): Ditto.

From-SVN: r166021
2010-10-27 22:44:31 +00:00
Jason Merrill
2b08f2c561 c-common.c (c_common_reswords): Add __is_literal_type.
gcc/c-family/
	* c-common.c (c_common_reswords): Add __is_literal_type.
	* c-common.h (enum rid): Add RID_IS_LITERAL_TYPE.
gcc/cp/
	* cp-tree.h (cp_trait_kind): Add CPTK_IS_LITERAL_TYPE.
	* cxx-pretty-print.c (pp_cxx_trait_expression): Handle it.
	* semantics.c (trait_expr_value, finish_trait_expr): Likewise.
	* parser.c (cp_parser_primary_expression): Handle RID_IS_LITERAL_TYPE.
	(cp_parser_trait_expr): Likewise.
libstdc++-v3/
	* include/std/type_traits (is_literal_type): New.

From-SVN: r166020
2010-10-27 17:43:33 -04:00
Jason Merrill
81f0bab25e c-common.c (check_case_value): Remove special C++ code.
c-family/
	* c-common.c (check_case_value): Remove special C++ code.
cp/
	* decl.c (finish_case_label): Use decl_constant_value.

From-SVN: r166019
2010-10-27 17:42:36 -04:00
Janus Weil
5ac13b8e0c re PR fortran/46161 ([OOP] Invalid: Passing non-polymorphic to allocatable polymorphic dummy)
2010-10-27  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/46161
	* interface.c (compare_allocatable): Handle polymorphic allocatables.
	(compare_parameter): Add two error messages for polymorphic dummies.

2010-10-27  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/46161
	* gfortran.dg/class_dummy_3.f03: New.

From-SVN: r166018
2010-10-27 23:41:52 +02:00
Eric Botcazou
cfc839a4b2 trans.c (gigi): Fix formatting issues.
* gcc-interface/trans.c (gigi): Fix formatting issues.
	(build_raise_check): Likewise.
	(gnat_to_gnu): Likewise.
	* gcc-interface/utils2.c (build_call_raise_range): Likewise.
	(build_call_raise_column): Likewise.

From-SVN: r166017
2010-10-27 21:15:06 +00:00
Eric Botcazou
4a8f6a635a sol2-unwind.h (sparc64_fallback_frame_state): Adjust for newer Solaris 10 release.
* config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
	for newer Solaris 10 release.
	(sparc_fallback_frame_state): Likewise.

From-SVN: r166015
2010-10-27 20:34:36 +00:00
Gabriel Dos Reis
225a658415 method.c (synthesized_method_walk): Track constexprness too.
* method.c (synthesized_method_walk): Track constexprness too.
	(process_subob_fn, walk_field_subobs): Likewise.
	(implicitly_declare_fn): Set DECL_DECLARED_CONSTEXPR_P.
	(defaulted_late_check): Handle DECL_DECLARED_CONSTEXPR_P.
	* class.c (add_implicitly_declared_members): Handle
	constexpr default ctor.

Co-Authored-By: Jason Merrill <jason@redhat.com>

From-SVN: r166014
2010-10-27 16:11:29 -04:00
Gabriel Dos Reis
91ea6df357 parser.c (cp_parser_ctor_initializer_opt_and_function_body): Make sure a constexpr ctor has an empty body.
* parser.c (cp_parser_ctor_initializer_opt_and_function_body):
	Make sure a constexpr ctor has an empty body.
	* class.c (type_has_constexpr_default_constructor): New.
	* cp-tree.h: Declare it.
	* init.c (perform_member_init): Complain about uninitialized
	member in constexpr ctor.
	(emit_mem_initializers): And uninitialized base.
	* decl.c (check_tag_decl): Fix typo.

	* semantics.c (valid_type_in_constexpr_fundecl_p): New fn.
	(is_valid_constexpr_fn): New fn.
	(validate_constexpr_fundecl): Use it.
	* decl.c (validate_constexpr_redeclaration): New.
	(duplicate_decls): Use it.
	(cp_finish_decl): Call validate_constexpr_fundecl and
	ensure_literal_type_for_constexpr_object here.
	(start_decl): Not here.  Don't ICE on constexpr reference.
	(check_for_uninitialized_const_var): Don't handle constexpr specially.
	(grokfndecl): Set DECL_DECLARED_CONSTEXPR_P.
	(check_static_variable_definition): Give friendly message about
	missing constexpr.
	(grokdeclarator): Complain about typedef and volatile with constexpr.
	Reorganize.  Give sorry about non-static data members in C++0x mode.
	(start_preparsed_function): Check validate_constexpr_fundecl here.
	(check_function_type): Not here.
	* decl2.c (finish_static_data_member_decl): Don't complain about
	in-class init.
	* parser.c (CP_PARSER_FLAGS_ONLY_TYPE_OR_CONSTEXPR): New.
	(cp_parser_condition): Pass it to cp_parser_decl_specifier_seq.
	(cp_parser_decl_specifier_seq): Handle it.
	(cp_parser_explicit_instantiation): Diagnose inline and constexpr.

Co-Authored-By: Jason Merrill <jason@redhat.com>

From-SVN: r166013
2010-10-27 15:31:33 -04:00
Gabriel Dos Reis
3b49d762b5 class.c (check_bases): Propagate non-literality.
* class.c (check_bases): Propagate non-literality.
	(check_field_decls): Likewise.
	(finalize_literal_type_property): New.
	(check_bases_and_members): Call it.
	* cp-tree.h (TYPE_HAS_CONSTEXPR_CTOR): New.
	(lang_type_class): Add has_constexpr_ctor field.
	(DECL_DECLARED_CONSTEXPR_P): Strip template.
	* decl.c (grok_special_member_properties): Set
	TYPE_HAS_CONSTEXPR_CTOR.

Co-Authored-By: Jason Merrill <jason@redhat.com>

From-SVN: r166012
2010-10-27 15:04:06 -04:00
Jason Merrill
61f8d16512 call.c (build_integral_nontype_arg_conv): New.
* call.c (build_integral_nontype_arg_conv): New.
	* cp-tree.h: Declare it.
	* pt.c (convert_nontype_argument): Use it.

From-SVN: r166011
2010-10-27 11:59:54 -04:00
Jason Merrill
2842beb62d * error.c (dump_simple_decl): Print constexpr.
From-SVN: r166010
2010-10-27 11:54:45 -04:00
Jason Merrill
efd7ad5c5e * cvt.c (build_up_reference): Use target_type for the temporary var.
From-SVN: r166009
2010-10-27 11:54:35 -04:00
Jason Merrill
73808ca6a4 * except.c (build_throw): Set EXPR_LOCATION.
From-SVN: r166008
2010-10-27 11:48:26 -04:00
Jason Merrill
236fd18cba * tree.c (build_cplus_new): Handle CONSTRUCTOR.
From-SVN: r166007
2010-10-27 11:48:16 -04:00
Jason Merrill
e02927a11a semantics.c (finish_compound_stmt): Avoid creating an unnecessary BIND_EXPR.
* semantics.c (finish_compound_stmt): Avoid creating an
	unnecessary BIND_EXPR.

From-SVN: r166006
2010-10-27 11:48:09 -04:00
Jason Merrill
bc8a0bd9fc call.c (convert_like_real): Don't check narrowing if the element is also an initializer-list.
* call.c (convert_like_real): Don't check narrowing if the element
	is also an initializer-list.

From-SVN: r166005
2010-10-27 11:48:01 -04:00
Jason Merrill
221925596f gimplify.c (gimplify_decl_expr): Handle anonymous artificial variables sooner.
* gimplify.c (gimplify_decl_expr): Handle anonymous artificial
	variables sooner.

From-SVN: r166004
2010-10-27 11:47:52 -04:00
Jie Zhang
84fabdde09 haifa-sched.c (ISSUE_POINTS): Remove.
* haifa-sched.c (ISSUE_POINTS): Remove.
	(max_issue): Don't issue more than issue_rate instructions.

Co-Authored-By: Maxim Kuvyrkov <maxim@codesourcery.com>

From-SVN: r166002
2010-10-27 14:30:17 +00:00
Ian Lance Taylor
9c042d80ae Replace UNSPEC_STACK_CHECK with UNSPECV_SPLIT_STACK_RETURN.
2010-10-27  Ian Lance Taylor  <iant@google.com>

	PR target/46197
	* config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
	(split_stack_return): Replace UNSPEC_STACK_CHECK with
	UNSPECV_SPLIT_STACK_RETURN.

From-SVN: r166001
2010-10-27 06:32:54 -07:00
H.J. Lu
2767a7f210 Add -mvzeroupper to x86.
gcc/

2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386-protos.h (init_cumulative_args): Add an int.

	* config/i386/i386.c (block_info): New.
	(BLOCK_INFO): Likewise.
	(call_avx256_state): Likewise.
	(check_avx256_stores): Likewise.
	(move_or_delete_vzeroupper_2): Likewise.
	(move_or_delete_vzeroupper_1): Likewise.
	(move_or_delete_vzeroupper): Likewise.
	(use_avx256_p): Likewise.
	(function_pass_avx256_p): Likewise.
	(flag_opts): Add -mvzeroupper.
	(ix86_option_override_internal): Turn on MASK_VZEROUPPER by
	default for TARGET_AVX.  Turn off MASK_VZEROUPPER if TARGET_AVX
	is disabled.
	(ix86_function_ok_for_sibcall): Disable sibcall if we need to
	generate vzeroupper.
	(init_cumulative_args): Add an int to indicate caller.  Set
	use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
	based on return type.
	(ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
	caller_pass_avx256_p based on argument type.
	(ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
	is used, but not returned by caller.
	(ix86_expand_call): Emit vzeroupper if 256bit AVX register is
	used.
	(ix86_local_alignment): Set use_avx256_p if 256bit AVX register
	is used.
	(ix86_minimum_alignment): Likewise.
	(ix86_expand_special_args_builtin): Set target to
	GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
	(ix86_reorg): Run the vzeroupper optimization if needed.

	* config/i386/i386.h (ix86_args): Add caller.
	(INIT_CUMULATIVE_ARGS): Updated.
	(machine_function): Add use_vzeroupper_p, use_avx256_p,
	caller_pass_avx256_p, caller_return_avx256_p,
	callee_pass_avx256_p and callee_return_avx256_p.

	* config/i386/i386.opt (-mvzeroupper): New.

	* config/i386/predicates.md (vzeroupper_operation): Removed.

	* config/i386/sse.md (avx_vzeroupper): Removed.
	(*avx_vzeroupper): Removed.
	(avx_vzeroupper): New.

	* doc/invoke.texi: Document -mvzeroupper.

gcc/testsuite/

2010-10-27  H.J. Lu  <hongjiu.lu@intel.com>

	* gcc.target/i386/avx-vzeroupper-1.c: Add -mtune=generic.
	* gcc.target/i386/avx-vzeroupper-2.c: Likewise.

	* gcc.target/i386/avx-vzeroupper-3.c: New.
	* gcc.target/i386/avx-vzeroupper-4.c: Likewise.
	* gcc.target/i386/avx-vzeroupper-5.c: Likewise.
	* gcc.target/i386/avx-vzeroupper-6.c: Likewise.
	* gcc.target/i386/avx-vzeroupper-7.c: Likewise.
	* gcc.target/i386/avx-vzeroupper-8.c: Likewise.
	* gcc.target/i386/avx-vzeroupper-9.c: Likewise.
	* gcc.target/i386/avx-vzeroupper-10.c: Likewise.
	* gcc.target/i386/avx-vzeroupper-11.c: Likewise.
	* gcc.target/i386/avx-vzeroupper-12.c: Likewise.
	* gcc.target/i386/avx-vzeroupper-13.c: Likewise.
	* gcc.target/i386/avx-vzeroupper-14.c: Likewise.

From-SVN: r166000
2010-10-27 05:36:15 -07:00
Eric Botcazou
22bc122eca t-mingw32 (SHLIB_LC): Add -lmingwthrd.
* config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
	* config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
	* config/i386/t-mingw-w64 (SHLIB_LC): Likewise.

From-SVN: r165999
2010-10-27 11:21:00 +00:00
Eric Botcazou
5d0d156482 w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum of EBP.
* config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
	of EBP.  Do not restore reg #9.  Remove +1 adjustment to EIP and set
	fs->signal_frame instead.

Co-Authored-By: Olivier Hainque <hainque@adacore.com>

From-SVN: r165998
2010-10-27 11:18:45 +00:00
Nicola Pero
200290f239 In gcc/: 2010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/:
2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>

        * c-parser.c (c_parser_objc_at_property_declaration): Recognize
        RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
        Do not use objc_set_property_attr, but use local variables
        instead.  Detect repeated usage of setter, getter and ivar
        attributes.  Improved error processing when a setter name does not
        end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
        that the token is a keyword.  Updated call to
        objc_add_property_declaration.

In gcc/cp/:
2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>

        * parser.c (cp_parser_objc_at_property_declaration): Recognize
        RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
        Do not use objc_set_property_attr, but use local variables
        instead.  Detect repeated usage of setter, getter and ivar
        attributes.  Improved error processing when a setter name does not
        end in ':'.  Do not check for CPP_CLOSE_PAREN after we determined
        that the token is a keyword.  Updated call to
        objc_add_property_declaration.

In gcc/c-family/:
2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>

        * c-common.h (enum rid): Added RID_READWRITE, RID_ASSIGN,
        RID_RETAIN, RID_COPY and RID_NONATOMIC.  Updated RID_FIRST_PATTR
        and RID_LAST_PATTR.
        (objc_add_property_declaration): Added additional arguments.
        (objc_property_attribute_kind): Removed.
        (objc_set_property_attr): Removed.
        * c-common.c (c_common_reswords): Added readwrite, assign, retain,
        copy and nonatomic.
        * stub-objc.c (objc_add_property_declaration): Added additional
        arguments.
        (objc_set_property_attr): Removed.
        
In gcc/objc/:
2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>

        * objc-act.c (objc_add_property_declaration): Added arguments to
        pass the various property attributes that were parsed with the
        property declaration.  Process arguments to determine the final
        property attributes and produce error messages as appropriate.
        Added temporary code to keep the compiler silent about variables
        set but not used - for new attributes that are only checked but
        have no effect yet.
        (property_readonly): Removed.
        (property_setter): Removed.
        (property_getter): Removed.
        (property_ivar): Removed.
        (property_copies): Removed.     
        (objc_set_property_attr): Removed.
        * objc-act.h (enum property_assign_semantics): New.
        
In gcc/testsuite/:
2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>

        * obj-c.dg/property/at-property-4.m: New.
        * obj-c++.dg/property/at-property-4.mm: New.
        * obj-c++.dg/property/property-neg-5.m: Updated testcase for
        updates in warning.
        * obj-c++.dg/property/property-neg-5.mm: Updated testcase for
        updates in warning.

From-SVN: r165997
2010-10-27 05:23:08 +00:00
Nicola Pero
f614132bc7 In gcc/: 2010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/:
2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>

        * c-parser.c (c_parser_objc_at_property): Renamed to
        c_parser_objc_at_property_declaration.  Updated calls to
        objc_add_property_variable, now objc_add_property_declaration.
        Code rewritten to be much more robust in recovering from syntax
        errors.  Added comments.
        (c_parser_objc_property_attrlist): Removed.
        (c_parser_external_declaration): Updated calls to
        c_parser_objc_at_property, now
        c_parser_objc_at_property_declaration.
        (c_parser_objc_methodprotolist): Same change.

In gcc/c-family/:
2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>

        * c-common.h (objc_add_property_variable): Renamed to
        objc_add_property_declaration.  Added location argument.
        * stub-objc.c (objc_add_property_variable): Same change.

In gcc/cp/:
2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>

        * parser.c (cp_parser_objc_property_decl): Renamed to
        cp_parser_objc_struct_declaration.  Return the parsed trees
        instead of calling objc_add_property_variable directly.  Detect
        missing or invalid declspecs.  Implemented attributes.  Do not eat
        the ';' at the end.  Exit loop whenever a non-comma is parsed, not
        just EOF.
        (cp_parser_objc_at_property): Renamed to
        cp_parser_objc_at_property_declaration.  Updated calls to
        objc_add_property_variable, now objc_add_property_declaration, and
        to cp_parser_objc_property_decl, now
        cp_parser_objc_struct_declaration.  Rewritten all code to be more
        robust in dealing with syntax errors, and almost identical to the
        one in c_parser_objc_at_property_declaration.
        (cp_parser_objc_property_attrlist): Removed.
        (cp_parser_objc_method_prototype_list): Updated call to
        cp_parser_objc_at_property.
        (cp_parser_objc_method_definition_list): Same change.
        (cp_parser_objc_class_ivars): Detect a number of invalid
        declarations of instance variables and produce errors when they
        are found.

In gcc/objc/:
2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>

        * objc-act.c (objc_add_property_variable): Renamed to
        objc_add_property_declaration.  Added location argument.  Updated
        warnings and errors to use it.  Use error, not fatal_error, if a
        property declaration is found outside an interface or
        implementation context.

In gcc/testsuite/:
2010-10-27  Nicola Pero  <nicola.pero@meta-innovation.com>

        * objc.dg/property/at-property-1.m: New.
        * objc.dg/property/at-property-2.m: New.
        * objc.dg/property/at-property-3.m: New.
        * objc.dg/ivar-invalid-type-1.m: New.
        * obj-c++.dg/property/at-property-1.mm: New.
        * obj-c++.dg/property/at-property-2.mm: New.
        * obj-c++.dg/property/at-property-3.mm: New.
        * obj-c++.dg/ivar-invalid-type-1.mm: New.
        * objc.dg/property/property-neg-6.m: Updated testcase for updates
        in error reporting.

From-SVN: r165996
2010-10-27 04:37:47 +00:00
H.J. Lu
3e1484c9ee Put back unspec_volatile on split_stack_return.
2010-10-26  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.md (split_stack_return): Put back
	unspec_volatile.

From-SVN: r165995
2010-10-26 19:48:42 -07:00
GCC Administrator
78b9aee5d7 Daily bump.
From-SVN: r165994
2010-10-27 00:18:01 +00:00
Jan Hubicka
ed62e0d9b7 ipa.c (process_references): Enqueue all referenced nodes; mark as reachable only non-external nodes.
* ipa.c (process_references): Enqueue all referenced nodes;
	mark as reachable only non-external nodes.
	(cgraph_remove_unreachable_nodes): All referenced nodes should
	be enqueued; remove bogues node->needed check.

From-SVN: r165990
2010-10-26 22:42:53 +00:00