Commit Graph

108905 Commits

Author SHA1 Message Date
Uros Bizjak 0955cf616c i386.c (option_override_internal): Enable TARGET_CMOVE when TARGET_RDRND is active.
* config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
	when TARGET_RDRND is active.
	(ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
	Generate dummy SImode target register when target is NULL.

From-SVN: r173921
2011-05-19 23:09:25 +02:00
Tobias Burnus 4409de247c re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays])
2011-06-19  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * trans-types.c (gfc_get_element_type): Handle scalar coarrays.
        (gfc_get_nodesc_array_type): Make a variant-type copy for scalar
        coarrays.
        * trans.c (gfc_build_array_ref): Return original type not
        * variant
        copy for scalar coarrays.
        * trans-array.c (gfc_conv_array_ref): Ditto.

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

        PR fortran/18918
        * gfortran.dg/coarray_21.f90: New.

From-SVN: r173920
2011-05-19 22:53:33 +02:00
Paolo Carlini 664e12c126 tuple (tuple_element<__i, [...]): Add.
2011-05-19  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/std/tuple (tuple_element<__i, const _Tp>,
	tuple_element<__i, volatile _Tp>, tuple_element<__i,
	const volatile _Tp>, tuple_size<const _Tp>, tuple_size<volatile _Tp>,
	tuple_size<const volatile _Tp>): Add.
	* include/std/utility (tuple_size<std::pair<_Tp1, _Tp2>>): Tweak.
	* include/std/array (tuple_size<array<_Tp, _Nm>>): Likewise.
	* testsuite/20_util/tuple/cv_tuple_size.cc: New.
	* testsuite/20_util/tuple/cv_tuple_element.cc: Likewise.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Tweak dg-warning
	line number.

From-SVN: r173919
2011-05-19 20:48:39 +00:00
Paolo Carlini 173f26ae56 tuple (tuple<>::operator=(tuple&&)): Specify as noexcept.
2011-05-19  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/std/tuple (tuple<>::operator=(tuple&&)): Specify as
        noexcept.
	(__get_helper): Likewise.
	(_Head_base<>::_M_head, _Tuple_impl<>::_M_head, _M_tail): Likewise.
	* include/bits/move.h (swap): Likewise.
	* include/bits/algorithmfwd.h (swap): Adjust.
	* include/bits/stl_pair.h (pair<>::operator=(pair&&)): Spec noexcept.
	* testsuite/util/testsuite_allocator.h (uneq_allocator): In C++0x
	mode, prefer delete to access control to make the type not copy
	assignable.
	* testsuite/util/testsuite_tr1.h: Add test classes.
	* testsuite/20_util/tuple/noexcept_swap.cc: New.
	* testsuite/20_util/tuple/noexcept_move_assign.cc: Likewise.
	* testsuite/25_algorithms/reverse/moveable.cc: Likewise, prefer
	delete to access control.
	* testsuite/25_algorithms/swap_ranges/moveable.cc: Likewise.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust dg-warning
	line numbers.

From-SVN: r173917
2011-05-19 17:20:22 +00:00
Joseph Myers 12d844c830 gcc_update (gcc/config/arm/arm-tables.opt): Also depend on gcc/config/arm/arm-fpus.def.
contrib:
	* gcc_update (gcc/config/arm/arm-tables.opt): Also depend on
	gcc/config/arm/arm-fpus.def.

gcc:
	* config/arm/arm-fpus.def: New.
	* config/arm/genopt.sh: Generate Enum and EnumValue entries from
	arm-fpus.def.
	* config/arm/arm-tables.opt: Regenerate.
	* config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
	(arm_option_override): Don't decode FPU name to string here.
	* config/arm/arm.opt (mfpu=): Use Enum.
	* config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
	Update dependencies.

From-SVN: r173916
2011-05-19 17:27:59 +01:00
Joseph Myers 9e350e99cb collect2.c: Include diagnostic.h.
* collect2.c: Include diagnostic.h.
	(fatal_perror, fatal, error, fancy_abort): Remove.
	(main): Set progname.  Call xmalloc_set_program_name and
	diagnostic_initialize.
	(maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
	scan_libraries, resolve_lib_name): Call fatal_error instead of
	fatal and fatal_perror.
	* collect2.h (error, fatal, fatal_perror): Don't declare.
	* tlink.c: Include diagnostic-core.h.
	(recompile_files): Call fatal_error instead of fatal_perror.
	* Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
	pretty-print.o and input.o.
	(collect2.o, tlink.o): Update dependencies.

testsuite:
	* lib/prune.exe (prune_gcc_output): Expect "error:" in collect2
	output.

From-SVN: r173915
2011-05-19 17:25:12 +01:00
Rainer Orth 86ff4081df * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
From-SVN: r173914
2011-05-19 14:37:14 +00:00
Rainer Orth 2ca48caa2c re PR target/40483 (gcc 4.x needs to utilize better COMDAT mechanism under Solaris)
PR target/40483
	* configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
	COMDAT group syntax, both SPARC and x86 variants.
	(HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
	* configure: Regenerate.
	* config/sol2.h (TARGET_SOLARIS): Define.
	(PUSHSECTION_FORMAT): Remove.
	(SECTION_NAME_FORMAT): Define.
	* config/sol2.c: Include hashtab.h.
	(solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
	expansion, using SECTION_NAME_FORMAT.
	(solaris_comdat_htab): New variable.
	(struct comdat_entry): Define.
	(comdat_hash): New function.
	(comdat_eq): New function.
	(solaris_elf_asm_comdat_section): New function.
	(solaris_define_comdat_signature): New function.
	(solaris_code_end): New function.
	* config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
	(solaris_code_end): Declare.
	* config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
	* config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
	solaris_code_end.
	(i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
	Remove ATTRIBUTE_UNUSED.
	[!USE_GAS]: Call solaris_elf_asm_comdat_section for
	SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
	* config/sparc/sparc.c (sparc_solaris_elf_asm_named_section):
	Likewise.
	* config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
	* config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
	* config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
	(PUSHSECTION_FORMAT): Remove.
	(SECTION_NAME_FORMAT): Redefine.

From-SVN: r173913
2011-05-19 14:29:05 +00:00
Jakub Jelinek ea93a47bc8 re PR c++/49043 ([OpenMP & C++0x]: Compiler error when lambda-function within OpenMP loop)
PR c++/49043
	* decl.c (check_omp_return): Stop searching on sk_function_parms.

	* testsuite/libgomp.c++/pr49043.C: New test.

From-SVN: r173907
2011-05-19 15:11:56 +02:00
Richard Guenther 5ee093edf0 re PR middle-end/49063 (FAIL: gcc.dg/builtin-object-size-11.c)
2011-05-19  Richard Guenther  <rguenther@suse.de>

	PR testsuite/49063
	* gcc.dg/builtin-object-size-11.c: Use -std=gnu89.

From-SVN: r173906
2011-05-19 13:07:50 +00:00
Kai Tietz da5fb46991 tree-cfg.c (verify_gimple_assign_binary): Barf on TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
2011-05-19  Kai Tietz  <ktietz@redhat.com>

	* tree-cfg.c (verify_gimple_assign_binary): Barf on
	TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
	(gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.

From-SVN: r173903
2011-05-19 13:16:20 +02:00
Anatoly Sokolov 0967b22889 t-sol2 (sol2.o): Add $(TARGET_H) dependency.
2011-05-19  Anatoly Sokolov <aesok@post.ru>
	    Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.

Co-Authored-By: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>

From-SVN: r173902
2011-05-19 11:02:22 +00:00
Richard Guenther e497b9bd88 re PR c/48985 (bogus buffer overflow warning and abort on static flexible array member)
2011-05-19  Richard Guenther  <rguenther@suse.de>

	PR middle-end/48985
	* tree-object-size.c (addr_object_size): If the pointed-to
	variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.

	* gcc.dg/builtin-object-size-11.c: New testcase.

From-SVN: r173901
2011-05-19 10:45:26 +00:00
Richard Guenther 31b3ca64f4 gimple.c (gimple_types_compatible_p_1): Compare names of the types themselves.
2011-05-19  Richard Guenther  <rguenther@suse.de>

	* gimple.c (gimple_types_compatible_p_1): Compare names of
	the types themselves.
	(iterative_hash_gimple_type): And hash them that way.
	(gimple_register_type_1): If we register a main variant properly
	initialize the leader to ourselves.

	lto/
	* lto.c (uniquify_nodes): First register all types before
	fixing up the tree SCC.

From-SVN: r173900
2011-05-19 10:31:23 +00:00
Paolo Carlini f263981ac8 [multiple changes]
2011-05-19  Daniel Krugler  <daniel.kruegler@googlemail.com>

	* testsuite/util/testsuite_tr1.h: Add test classes.
	* testsuite/20_util/is_nothrow_assignable/value.cc: Add.

2011-05-19  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/std/type_traits (is_assignable, is_copy_assignable,
	is_move_assignable, is_nothrow_assignable, is_nothrow_copy_assignable,
	is_nothrow_move_assignable): Add; minor tweaks elsewhere.
	(has_nothrow_copy_assign): Remove.
	* testsuite/util/testsuite_tr1.h: Add test classes.
	* testsuite/20_util/is_assignable/requirements/typedefs.cc: Add.
	* testsuite/20_util/is_assignable/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_nothrow_assignable/value.cc: Likewise.
	* testsuite/20_util/is_nothrow_assignable/requirements/typedefs.cc:
	Likewise.
	* testsuite/20_util/is_nothrow_assignable/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_move_assignable/value.cc: Likewise.
	* testsuite/20_util/is_move_assignable/requirements/typedefs.cc:
	Likewise.
	* testsuite/20_util/is_move_assignable/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_copy_assignable/value.cc: Likewise.
	* testsuite/20_util/is_copy_assignable/requirements/typedefs.cc:
	Likewise.
	* testsuite/20_util/is_copy_assignable/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_nothrow_move_assignable/value.cc: Likewise.
	* testsuite/20_util/is_nothrow_move_assignable/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/is_nothrow_move_assignable/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/is_nothrow_copy_assignable/value.cc: Likewise.
	* testsuite/20_util/is_nothrow_copy_assignable/requirements/
	typedefs.cc: Likewise.
	* testsuite/20_util/is_nothrow_copy_assignable/requirements/
	explicit_instantiation.cc: Likewise.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
	dg-error line numbers.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
	Likewise.
	* testsuite/20_util/declval/requirements/1_neg.cc: Likewise.

From-SVN: r173899
2011-05-19 10:30:20 +00:00
Joseph Myers 5fea7e8b43 * zh_CN.po: Update.
From-SVN: r173897
2011-05-19 10:59:13 +01:00
Tom de Vries e054362c4a re PR middle-end/45098 (Missed induction variable optimization)
2011-05-19  Tom de Vries  <tom@codesourcery.com>

	PR target/45098
	* gcc.target/arm/ivopts.c: New test.
	* gcc.target/arm/ivopts-2.c: New test.

From-SVN: r173896
2011-05-19 09:33:49 +00:00
Tom de Vries e7b705a735 scanasm.exp (object-size): Fix target selector handling.
2011-05-19  Tom de Vries  <tom@codesourcery.com>

	* lib/lib/scanasm.exp (object-size): Fix target selector handling.

From-SVN: r173895
2011-05-19 09:13:16 +00:00
Tom de Vries bb8d292d39 re PR middle-end/45098 (Missed induction variable optimization)
2011-05-19  Tom de Vries  <tom@codesourcery.com>

	PR target/45098
	* tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
	get_loop_invariant_expr_id.
	(get_loop_invariant_expr_id): Use get_expr_id.
	(parm_decl_cost): New function.
	(determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
	Improve bound cost estimation.  Use different inv_expr_id for elim and
	express cases.

From-SVN: r173894
2011-05-19 09:03:12 +00:00
Tom de Vries a53c50249f re PR middle-end/45098 (Missed induction variable optimization)
2011-05-19  Tom de Vries  <tom@codesourcery.com>

	PR target/45098
	* tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
	cost_base.cost == 0.

From-SVN: r173893
2011-05-19 08:49:28 +00:00
Rainer Orth 5bbe9958e0 * gcc.c-torture/execute/960321-1.x: Remove.
From-SVN: r173890
2011-05-19 08:02:26 +00:00
Jakub Jelinek 4577f7309a re PR c++/48869 (OpenMP task construct fails to instantiate copy constructor(same as Bug 36523))
PR c++/48869
	* method.c (get_dtor, get_copy_ctor): Add COMPLAIN argument,
	pass it down to locate_fn_flags.
	* cp-tree.h (get_dtor, get_copy_ctor): Adjust prototypes.
	* semantics.c (cxx_omp_create_clause_info): Adjust callers.
	* cp-gimplify.c: Include splay-tree.h.
	(splay_tree_compare_decl_uid, omp_var_to_track,
	omp_cxx_notice_variable): New functions.
	(struct cp_genericize_omp_taskreg): New type.
	(struct cp_genericize_data): Add omp_ctx field.
	(cp_genericize_r): Attempt to determine implicitly determined
	firstprivate class type variables.
	(cp_genericize): Clear omp_ctx.
	* Make-lang.in (cp/cp-gimplify.o): Depend on $(SPLAY_TREE_H).

	* testsuite/libgomp.c++/pr48869.C: New test.

From-SVN: r173888
2011-05-19 09:44:31 +02:00
GCC Administrator d1e5eb3ef6 Daily bump.
From-SVN: r173887
2011-05-19 00:19:33 +00:00
Jonathan Wakely cf70f97b95 shared_ptr_base.h: Use noexcept.
2011-05-18  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* include/bits/shared_ptr_base.h: Use noexcept. Define special member
	functions as defaulted/deleted.
	* include/bits/shared_ptr.h: Use noexcept.
	* 20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error line numbers.
	* 20_util/weak_ptr/comparison/cmp_neg.cc: Likewise.

From-SVN: r173882
2011-05-18 23:59:17 +01:00
H.J. Lu 31f9eb59e5 Properly handle 256bit load cast.
gcc/

2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/49002
	* config/i386/sse.md (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>):
	Properly handle load cast.

gcc/testsuite/

2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/49002
	* gcc.target/i386/pr49002-1.c: New test.
	* gcc.target/i386/pr49002-2.c: Likewise.

From-SVN: r173880
2011-05-18 15:12:28 -07:00
Jonathan Wakely 137b5a4c68 * doc/xml/manual/bitmap_allocator.xml: Fix typos.
From-SVN: r173879
2011-05-18 22:55:52 +01:00
Jakub Jelinek 681056ae64 re PR c++/49039 (LLVM StringRef miscompilation with -O2)
PR tree-optimization/49039
	* tree-vrp.c (extract_range_from_binary_expr): For
	MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
	return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].

	* gcc.c-torture/execute/pr49039.c: New test.
	* gcc.dg/tree-ssa/pr49039.c: New test.
	* g++.dg/torture/pr49039.C: New test.

From-SVN: r173876
2011-05-18 22:39:05 +02:00
Janus Weil 8199eea14f re PR fortran/48700 (memory leak with MOVE_ALLOC)
2011-05-18  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/48700
	* trans-intrinsic.c (gfc_conv_intrinsic_move_alloc): Deallocate 'TO'
	argument to avoid memory leaks.


2011-05-18  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/48700
	* gfortran.dg/move_alloc_4.f90: New.

From-SVN: r173874
2011-05-18 20:51:08 +02:00
Tom de Vries b5ee675203 re PR middle-end/45098 (Missed induction variable optimization)
2011-05-18  Tom de Vries  <tom@codesourcery.com>

	PR target/45098
	* tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.

From-SVN: r173872
2011-05-18 18:27:11 +00:00
Paolo Carlini 5d861bf2cb initializer_list: Use noexcept specifier.
2011-05-18  Paolo Carlini  <paolo.carlini@oracle.com>

	* libsupc++/initializer_list: Use noexcept specifier.
	(initializer_list<>::size, begin, end): Qualify as const.
	* include/bits/move.h (__addressof, forward, move, addressof): Specify
	as noexcept.
	* include/std/bitset: Use noexcept specifier throughout.
	* include/debug/bitset: Update.
	* include/profile/bitset: Likewise.

From-SVN: r173871
2011-05-18 18:05:17 +00:00
Uros Bizjak 0bda47a37a i386.md (*tls_global_dynamic_32_gnu): Split asm template.
* config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
	(*tls_global_dynamic_64): Ditto.
	(*tls_local_dynamic_base_32_gnu): Ditto.
	(*tls_local_dynamic_base_64): Ditto.
	(tls_initial_exec_64_sun): Ditto.

From-SVN: r173870
2011-05-18 19:32:59 +02:00
Jason Merrill 0515f4d2ba re PR c++/48948 ([C++0x] constexpr friend function cannot be defined in-class)
PR c++/48948
	PR c++/49015
	* class.c (finalize_literal_type_property): Do check
	for constexpr member functions of non-literal class.
	(finish_struct): Don't call check_deferred_constexpr_decls.
	* cp-tree.h: Don't declare it.
	(DECL_DEFERRED_CONSTEXPR_CHECK): Remove.
	* decl.c (grok_special_member_properties): Don't check it
	(grokfnedcl): Don't call validate_constexpr_fundecl.
	(start_preparsed_function): Do call it.
	* pt.c (tsubst_decl): Don't call it.
	(instantiate_class_template_1): Don't call
	check_deferred_constexpr_decls.
	* semantics.c (literal_type_p): Check for any incompleteness.
	(ensure_literal_type_for_constexpr_object): Likewise.
	(is_valid_constexpr_fn): Revert deferral changes.
	(validate_constexpr_fundecl): Likewise.
	(register_constexpr_fundef): Likewise.
	(check_deferred_constexpr_decls): Remove.

From-SVN: r173869
2011-05-18 13:19:15 -04:00
Stuart Henderson 41d471d612 mcpu-bf592.c: New test.
2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>

    * gcc.target/bfin/mcpu-bf592.c: New test.

From-SVN: r173868
2011-05-18 16:36:13 +00:00
Stuart Henderson 033b080523 invoke.texi (Blackfin Options): -mcpu accepts bf592.
2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>

    * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
    * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
    bf592-none.
    * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
    * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
    * config/bfin/bfin.c (bfin_cpus): Add bf592.
    * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
    __ADSPBF592__ and __ADSPBF59x__ for     BFIN_CPU_BF592.
    * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
    * config/bfin/elf.h (LIB_SPEC): Add bf592.

From-SVN: r173867
2011-05-18 16:31:57 +00:00
Joseph Myers ba163417cc arm-opts.h (enum arm_fp16_format_type, [...]): Move from arm.h.
* config/arm/arm-opts.h (enum arm_fp16_format_type, enum
	arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from
	arm.h.
	* config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
	target_thread_pointer, arm_structure_size_boundary, struct
	float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
	struct abi_name, arm_all_abis): Remove.
	(arm_option_override) Don't process most enumerated option values
	here.  Don't process target_fpe_name here.  Work with integer not
	string for structure size boundary; use separate diagnostics for
	each case.
	* config/arm/arm.h (enum float_abi_type, enum
	arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
	to arm-opts.h.
	(arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
	arm_structure_size_boundary): Remove.
	* config/arm/arm.opt (mabi=): Use Enum and Init.
	(arm_abi_type): New Enum and EnumValue entries.
	(mfloat-abi=): Use Enum and Init.
	(float_abi_type): New Enum and EnumValue entries.
	(mfp=, mfpe=): Replace by separate Alias entries for each
	argument.
	(mfp16-format=): Use Enum and Init.
	(arm_fp16_format_type): New Enum and EnumValue entries.
	(mstructure-size-boundary=): Use UInteger and Init.
	(mtp=): Use Enum and Init.
	(arm_tp_type): New Enum and EnumValue entries.

From-SVN: r173864
2011-05-18 15:54:23 +01:00
Richard Guenther 179184e3e5 re PR tree-optimization/49018 (Inline assembly block executed outside conditional check with "-O1 -ftree-vrp")
2011-05-18  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/49018
	* gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
	* tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
	gimple_has_side_effects.

From-SVN: r173861
2011-05-18 13:33:21 +00:00
Richard Guenther 93b2a207a6 gimple.c (gimple_register_type_1): New function, split out from ...
2011-05-18  Richard Guenther  <rguenther@suse.de>

	* gimple.c (gimple_register_type_1): New function, split out from ...
	(gimple_register_type): ... here.  Avoid infinite recursion.

From-SVN: r173857
2011-05-18 11:34:43 +00:00
Ira Rosen b010117a6c re PR tree-optimization/41881 (Complete unrolling (inner) versus vectorization of reduction)
PR tree-optimization/41881
        * tree-vectorizer.h (struct _loop_vec_info): Add new field
        reduction_chains along with a macro for its access.
        * tree-vect-loop.c (new_loop_vec_info): Initialize
        reduction chains.
        (destroy_loop_vec_info): Free reduction chains.
        (vect_analyze_loop_2): Return false if
        vect_analyze_slp() returns false.
        (vect_is_slp_reduction): New function.
        (vect_is_simple_reduction_1): Call
        vect_is_slp_reduction.
        (vect_create_epilog_for_reduction): Support SLP
        reduction chains.
        * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow
        different definition types for reduction chains.
        (vect_supported_load_permutation_p): Don't allow
        permutations for reduction chains.
        (vect_analyze_slp_instance): Support reduction chains.
        (vect_analyze_slp): Try to build SLP instance from
        reduction chains.
        (vect_get_constant_vectors):  Handle reduction chains.
        (vect_schedule_slp_instance): Mark the first statement
        of the reduction chain as reduction.

From-SVN: r173856
2011-05-18 11:27:51 +00:00
Ira Rosen e14c105000 tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new names for group elements access.
* tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
        names for group elements access.
        * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
        reduction chains as well.  Remove data reference and interleaving
        related words from the fields names.
        * tree-vect-loop.c (vect_transform_loop): Use new names for group
        elements access.
        * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
        vect_update_interleaving_chain, vect_same_range_drs,
        vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
        vect_verify_datarefs_alignment, vector_alignment_reachable_p,
        vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
        vect_analyze_group_access, vect_analyze_data_ref_access,
        vect_create_data_ref_ptr, vect_transform_strided_load,
        vect_record_strided_load_vectors): Likewise.
        * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
        vect_model_load_cost, vectorizable_store, vectorizable_load,
        vect_remove_stores, new_stmt_vec_info): Likewise.
        * tree-vect-slp.c (vect_build_slp_tree, 
        vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.

From-SVN: r173855
2011-05-18 11:09:44 +00:00
Richard Guenther 51c213f791 re PR middle-end/48989 (FAIL: gfortran.dg/lto/pr46036 f_lto_pr46036_0.o assemble)
2011-05-18  Richard Guenther  <rguenther@suse.de>

	PR middle-end/48989
	* tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
	operand verification.
	(verify_gimple_assign_binary): Likewise.
	* tree-ssa.c (useless_type_conversion_p): Preserve conversions
	to non-1-precision BOOLEAN_TYPEs.

From-SVN: r173854
2011-05-18 10:36:45 +00:00
Tom de Vries 8f5e543422 re PR middle-end/45098 (Missed induction variable optimization)
2011-05-18  Tom de Vries  <tom@codesourcery.com>

	PR target/45098
	* tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.

From-SVN: r173853
2011-05-18 10:20:55 +00:00
Jakub Jelinek 116bc3a4d8 re PR tree-optimization/49000 (ICE: verify_ssa failed with -O2 -g)
PR tree-optimization/49000
	* tree-ssa.c (execute_update_addresses_taken): Call
	maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
	be rewritten and decl has been marked for renaming, reset
	the debug stmt.

	* gcc.dg/pr49000.c: New test.

From-SVN: r173849
2011-05-18 11:22:41 +02:00
Kai Tietz bf6490b56f trans.c (Exception_Handler_to_gnu_sjlj): Use boolean_false_node instead of integer_zero_node.
2011-05-18  Kai Tietz <ktietz@redhat.com>

	* gcc-interface/trans.c (Exception_Handler_to_gnu_sjlj): Use
	boolean_false_node instead of integer_zero_node.
	(convert_with_check): Likewise.
	* gcc-interface/decl.c (choices_to_gnu): Likewise.

From-SVN: r173846
2011-05-18 10:40:50 +02:00
Joseph Myers 26a8964cbd i386.c (ix86_valid_target_attribute_tree): Use enum_opts_set when testing if attributes have set -mfpmath=.
* config/i386/i386.c (ix86_valid_target_attribute_tree): Use
	enum_opts_set when testing if attributes have set -mfpmath=.

From-SVN: r173845
2011-05-18 02:10:46 +01:00
GCC Administrator 23a0e6535d Daily bump.
From-SVN: r173843
2011-05-18 00:18:15 +00:00
Paolo Carlini 1aa1114b63 tuple: Use noexcept where appropriate.
2011-05-17  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/std/tuple: Use noexcept where appropriate.
	(tuple<>::swap): Rework implementation.
	(_Head_base<>::_M_swap_impl): Remove.
	(get(std::tuple<>&&)): Add.
	* testsuite/20_util/tuple/element_access/get2.cc: New.
	* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust dg-error
	line number.

From-SVN: r173838
2011-05-18 00:12:58 +00:00
Richard Sandiford 82bd45d7f0 mips.c (mips_handle_option): Remove unused variable.
gcc/
	* config/mips/mips.c (mips_handle_option): Remove unused variable.

From-SVN: r173836
2011-05-17 20:02:40 +00:00
Uros Bizjak 267ffce3cb ipa-inline-analysis.c (inline_node_duplication_hook): Initialize info->entry with 0
* ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
	info->entry with 0
	* tree-inline.c (maybe_inline_call_in_expr):  Initialize
	id.transform_lang_insert_block with NULL.

From-SVN: r173834
2011-05-17 20:31:08 +02:00
Uros Bizjak d9403b0dda i386-protos.h (output_fix_trunc): Change arg 3 to bool.
* config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
	(output_fp_compare): Change args 3 and 4 to bool.
	(ix86_expand_call): Change arg 6 to bool.
	(ix86_attr_length_immediate_default): Change arg 2 to bool.
	(ix86_attr_length_vex_default): Change arg 3 to bool.
	* config/i386/i386.md: Update all uses.
	* config/i386/i386.c: Ditto.
	(ix86_flags_dependent): Change return type to bool.

From-SVN: r173833
2011-05-17 20:24:37 +02:00
Richard Guenther 5beaf6643b gimple.c (type_hash_pair_compare): Fix comparison.
2011-05-17  Richard Guenther  <rguenther@suse.de>

	* gimple.c (type_hash_pair_compare): Fix comparison.

From-SVN: r173832
2011-05-17 14:58:18 +00:00