1. 28 Oct, 2010 19 commits
    • lm32-protos.h (lm32_function_arg): Delete. · 3acf034c
      	* 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
      Nathan Froyd committed
    • mcore-protos.h (mcore_function_arg): Delete. · 4665ac17
      	* 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
      Nathan Froyd committed
    • h8300-protos.h (function_arg): Delete. · 56f9413b
      	* 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
      Nathan Froyd committed
    • arc.h (FUNCTION_ARG, [...]): Move code to... · 66d5ee14
      	* 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
      Nathan Froyd committed
    • crx-protos.h (crx_function_arg): Delete. · a6a54b6f
      	* 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
      Nathan Froyd committed
    • m68hc11-protos.h (m68hc11_function_arg): Delete. · da15f931
      	* 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
      Nathan Froyd committed
    • stormy16-protos.h (xstormy16_function_arg): Delete. · bf425ddd
      	* 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
      Nathan Froyd committed
    • moxie-protos.h (moxie_function_arg): Delete. · 4c05cbb2
      	* 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
      Nathan Froyd committed
    • mn10300-protos.h (function_arg): Delete. · ce236858
      	* 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
      Nathan Froyd committed
    • iq2000-protos.h (function_arg): Delete. · 24ef86d7
      	* 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
      Nathan Froyd committed
    • fr30-protos.h (fr30_num_arg_regs): Delete. · b60613c3
      	* 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
      Nathan Froyd committed
    • frv-protos.h (frv_function_arg): Delete. · 88a1f47f
      	* 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
      Nathan Froyd committed
    • Add ARM VFP ABI support to libffi. · 46e0720d
      From-SVN: r166032
      Chung-Lin Tang committed
    • re PR target/46153 (ICE: in extract_insn, at recog.c:2110 (unrecognizable insn)… · f17aa4ad
      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
      Uros Bizjak committed
    • PR libstdc++/44436 (partial) · fb7342fd
      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
      Paolo Carlini committed
    • arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern constants in thumb2. · d724c8f0
      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
      Andrew Stubbs committed
    • configure.ac: Rewrite DGUX check to use GC_CFLAGS, and -O0 check to remove the need for MY_CFLAGS. · 2a6fa9ae
      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
      Paolo Bonzini committed
    • combine.c (set_nonzero_bits_and_sign_copies): Use unsigned arithmetics in masking operations. · c575a65f
      	* 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
      Eric Botcazou committed
    • Daily bump. · f228e2ae
      From-SVN: r166026
      GCC Administrator committed
  2. 27 Oct, 2010 21 commits
    • checking in Nathan's patch because I accidently checked in part of it with my earlier patch. · eb93b893
      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
      Steve Ellcey committed
    • tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New. · ffa88471
      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
      Steve Ellcey committed
    • c-common.c (c_common_reswords): Add __is_literal_type. · 2b08f2c5
      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
      Jason Merrill committed
    • c-common.c (check_case_value): Remove special C++ code. · 81f0bab2
      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
      Jason Merrill committed
    • re PR fortran/46161 ([OOP] Invalid: Passing non-polymorphic to allocatable polymorphic dummy) · 5ac13b8e
      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
      Janus Weil committed
    • trans.c (gigi): Fix formatting issues. · cfc839a4
      	* 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
      Eric Botcazou committed
    • sol2-unwind.h (sparc64_fallback_frame_state): Adjust for newer Solaris 10 release. · 4a8f6a63
      	* config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
      	for newer Solaris 10 release.
      	(sparc_fallback_frame_state): Likewise.
      
      From-SVN: r166015
      Eric Botcazou committed
    • method.c (synthesized_method_walk): Track constexprness too. · 225a6584
      	* 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
      Gabriel Dos Reis committed
    • parser.c (cp_parser_ctor_initializer_opt_and_function_body): Make sure a… · 91ea6df3
      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
      Gabriel Dos Reis committed
    • class.c (check_bases): Propagate non-literality. · 3b49d762
      	* 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
      Gabriel Dos Reis committed
    • call.c (build_integral_nontype_arg_conv): New. · 61f8d165
      	* call.c (build_integral_nontype_arg_conv): New.
      	* cp-tree.h: Declare it.
      	* pt.c (convert_nontype_argument): Use it.
      
      From-SVN: r166011
      Jason Merrill committed
    • * error.c (dump_simple_decl): Print constexpr. · 2842beb6
      From-SVN: r166010
      Jason Merrill committed
    • * except.c (build_throw): Set EXPR_LOCATION. · 73808ca6
      From-SVN: r166008
      Jason Merrill committed
    • * tree.c (build_cplus_new): Handle CONSTRUCTOR. · 236fd18c
      From-SVN: r166007
      Jason Merrill committed
    • semantics.c (finish_compound_stmt): Avoid creating an unnecessary BIND_EXPR. · e02927a1
      	* semantics.c (finish_compound_stmt): Avoid creating an
      	unnecessary BIND_EXPR.
      
      From-SVN: r166006
      Jason Merrill committed
    • call.c (convert_like_real): Don't check narrowing if the element is also an initializer-list. · bc8a0bd9
      	* call.c (convert_like_real): Don't check narrowing if the element
      	is also an initializer-list.
      
      From-SVN: r166005
      Jason Merrill committed
    • gimplify.c (gimplify_decl_expr): Handle anonymous artificial variables sooner. · 22192559
      	* gimplify.c (gimplify_decl_expr): Handle anonymous artificial
      	variables sooner.
      
      From-SVN: r166004
      Jason Merrill committed
    • haifa-sched.c (ISSUE_POINTS): Remove. · 84fabdde
      	* 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
      Jie Zhang committed
    • Replace UNSPEC_STACK_CHECK with UNSPECV_SPLIT_STACK_RETURN. · 9c042d80
      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
      Ian Lance Taylor committed
    • Add -mvzeroupper to x86. · 2767a7f2
      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
      H.J. Lu committed