Commit Graph

112778 Commits

Author SHA1 Message Date
Andrew Stubbs
6d3f1a1349 driver-arm.c (host_detect_local_cpu): Close the file before exiting.
2011-10-18  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* config/arm/driver-arm.c (host_detect_local_cpu): Close the file
	before exiting.

From-SVN: r180167
2011-10-18 20:33:00 +00:00
Andrew Stubbs
3d71881d2d re PR tree-optimization/50717 (Silent code gen fault with incorrect widening of multiply)
2011-10-18  Andrew Stubbs  <ams@codesourcery.com>

	PR tree-optimization/50717

	gcc/
	* tree-ssa-math-opts.c (is_widening_mult_p): Remove the 'type'
	parameter.  Calculate 'type' from stmt.
	(convert_mult_to_widen): Update call the is_widening_mult_p.
	(convert_plusminus_to_widen): Likewise.

	gcc/testsuite/
	* gcc.dg/pr50717-1.c: New file.
	* gcc.target/arm/wmul-12.c: Correct types.
	* gcc.target/arm/wmul-8.c: Correct types.

From-SVN: r180164
2011-10-18 19:57:15 +00:00
Jason Merrill
15e0646fde re PR c++/50531 ([C++0x] ICE on defaulted template destructor)
PR c++/50531
	* pt.c (instantiate_decl): Recognize when a function defaulted
	outside the class is already instantiated.

From-SVN: r180162
2011-10-18 15:36:28 -04:00
Jason Merrill
d2f706418a re PR c++/50742 (tree check fail in check_previous_goto_1)
PR c++/50742
	* decl.c (check_previous_goto_1): Handle using-decl.

From-SVN: r180160
2011-10-18 13:39:31 -04:00
Jason Merrill
a2e70335e2 re PR c++/50500 ([C++0x] [DR 1082] move constructor should cause copy constructor to be deleted, but still declared)
PR c++/50500
	DR 1082
	* class.c (type_has_user_declared_move_constructor): New.
	(type_has_user_declared_move_assign): New.
	(add_implicitly_declared_members): Add lazy copy ops
	even if there's a move.
	* method.c (lazily_declare_fn): Delete implicit copies
	if there's a move.
	(maybe_explain_implicit_delete): Explain this.  Use inform rather
	than error.
	* cp-tree.h: Declare new fns.

From-SVN: r180159
2011-10-18 13:39:15 -04:00
Ulrich Weigand
c5d942188b spu.c (struct machine_function): New data structure.
* config/spu/spu.c (struct machine_function): New data structure.
	(spu_init_machine_status): New function.
	(spu_option_override): Install it.
	(get_pic_reg): Set and use cfun->machine->pic_reg.
	(spu_split_immediate): Do not set crtl->uses_pic_offset_table.
	(need_to_save_reg): Use cfun->machine->pic_reg instead of
	checking crtl->uses_pic_offset_table.
	(spu_expand_prologue): Likewise.

From-SVN: r180156
2011-10-18 15:48:49 +00:00
Kirill Yukhin
d8381c04c3 Add some tests for AVX2 vectorizer.
2011-10-18  Kirill Yukhin  <kirill.yukhin@intel.com>

	* gcc.target/i386/avx2-vpop-check.h: New header.
	* gcc.target/i386/avx2-vpaddd-3.c: New test.
	* gcc.target/i386/avx2-vpaddw-3.c: Ditto.
	* gcc.target/i386/avx2-vpaddb-3.c: Ditto.
	* gcc.target/i386/avx2-vpaddq-3.c: Ditto.
	* gcc.target/i386/avx2-vpand-3.c: Ditto.
	* gcc.target/i386/avx2-vpmulld-3.c: Ditto.
	* gcc.target/i386/avx2-vpmullw-3.c: Ditto.
	* gcc.target/i386/avx2-vpsrad-3.c: Ditto.
	* gcc.target/i386/avx2-vpsraw-3.c: Ditto.
	* gcc.target/i386/avx2-vpsrld-3.c: Ditto.
	* gcc.target/i386/avx2-vpsrlw-3.c: Ditto.
	* gcc.target/i386/avx2-vpsubb-3.c: Ditto.
	* gcc.target/i386/avx2-vpsubd-3.c: Ditto.
	* gcc.target/i386/avx2-vpsubq-3.c: Ditto.
	* gcc.target/i386/avx2-vpsubw-3.c: Ditto.

From-SVN: r180155
2011-10-18 08:41:27 -07:00
Jakub Jelinek
5dac1dae25 re PR tree-optimization/50735 (gcc.dg/torture/vector-2.c:52:1: ICE: verify_ssa failed at -O1 and above)
PR tree-optimization/50735
	* function.c (gimplify_parameters): Use create_tmp_var instead of
	create_tmp_reg.  If parm is not TREE_ADDRESSABLE and type is complex
	or vector type, set DECL_GIMPLE_REG_P.

From-SVN: r180154
2011-10-18 17:33:12 +02:00
Mikael Morin
1b688c0e01 re PR fortran/50420 ([Coarray] lcobound doesn't accept coarray subcomponents)
PR fortran/50420
	* gfortran.dg/coarray_subobject_1.f90: New test.
	* gfortran.dg/coarray/subobject_1.f90: New test.

From-SVN: r180153
2011-10-18 15:23:04 +00:00
Mikael Morin
fef8962802 re PR fortran/50420 ([Coarray] lcobound doesn't accept coarray subcomponents)
PR fortran/50420
	* trans.c (gfc_build_array_ref): If type is not an array, check that
	there is nothing to do, and do nothing.

From-SVN: r180152
2011-10-18 15:17:29 +00:00
Mikael Morin
49b804d0ea re PR fortran/50420 ([Coarray] lcobound doesn't accept coarray subcomponents)
PR fortran/50420
	* trans-types.c (gfc_build_array_type): Don't force lower bound to one
	in the deferred case.

From-SVN: r180151
2011-10-18 15:13:45 +00:00
Mikael Morin
dbeebc56bd re PR fortran/50420 ([Coarray] lcobound doesn't accept coarray subcomponents)
PR fortran/50420
	* simplify.c (simplify_cobound): Accept non-last-in-ref-chain coarrays.
	Don't set already set array ref.

From-SVN: r180150
2011-10-18 15:11:21 +00:00
Mikael Morin
db171167f4 array.c (gfc_find_array_ref): Remove coarray-specific handling.
* array.c (gfc_find_array_ref): Remove coarray-specific handling.

From-SVN: r180149
2011-10-18 15:08:08 +00:00
Mikael Morin
66b23e9399 re PR fortran/50420 ([Coarray] lcobound doesn't accept coarray subcomponents)
PR fortran/50420
	* check.c (dim_corank_check): Use gfc_get_corank to get corank.

From-SVN: r180148
2011-10-18 15:05:30 +00:00
Mikael Morin
6cab5e07b0 re PR fortran/50420 ([Coarray] lcobound doesn't accept coarray subcomponents)
PR fortran/50420
	* trans-intrinsic.c (walk_coarray): Change AR_ELEMENT to AR_SECTION.

	PR fortran/50420
	* trans-intrinsic.c (walk_coarray): Use gfc_walk_array_ref for
	the scalarization chain initialization.

From-SVN: r180147
2011-10-18 15:02:38 +00:00
Mikael Morin
411e1a0f53 re PR fortran/50420 ([Coarray] lcobound doesn't accept coarray subcomponents)
PR fortran/50420
	* trans-intrinsic.c (walk_coarray): Allow subreferences after a
	coarray object reference.

From-SVN: r180146
2011-10-18 14:59:07 +00:00
Mikael Morin
6b81e94de1 re PR fortran/50420 ([Coarray] lcobound doesn't accept coarray subcomponents)
PR fortran/50420
	* trans-array.c (gfc_walk_array_ref): Allow zero rank arrays
	if they are coarrays.

From-SVN: r180145
2011-10-18 14:55:48 +00:00
Mikael Morin
42ac5ee128 trans-array.h (gfc_walk_array_ref): New prototype.
* trans-array.h (gfc_walk_array_ref): New prototype.
	* trans-array.c (gfc_walk_array_ref): New function, containing
	all but the beginning of gfc_walk_variable_expr's code.
	(gfc_walk_variable_expr): Use gfc_walk_array_ref.

From-SVN: r180144
2011-10-18 14:53:43 +00:00
Mikael Morin
700535b75f re PR fortran/50420 ([Coarray] lcobound doesn't accept coarray subcomponents)
PR fortran/50420
	* trans-array.c (gfc_conv_expr_descriptor): Use loop.dimen instead of
	ndim for the descriptor's rank.

From-SVN: r180143
2011-10-18 14:45:46 +00:00
Mikael Morin
a04b23d8a4 re PR fortran/50420 ([Coarray] lcobound doesn't accept coarray subcomponents)
PR fortran/50420
	* trans-array.c (gfc_conv_expr_descriptor): Count codimensions starting
	from zero, and add then the relevant offset (either ndim or loop.dimen)
	depending on context.

From-SVN: r180142
2011-10-18 14:42:21 +00:00
Mikael Morin
7c5950bd7f trans-array.c (gfc_conv_expr_descriptor): Save some horizontal space.
* trans-array.c (gfc_conv_expr_descriptor): Save some horizontal space.

From-SVN: r180141
2011-10-18 14:37:39 +00:00
Mikael Morin
c2558afc97 trans-array.c (gfc_conv_expr_descriptor): Move ndim initialization earlier.
* trans-array.c (gfc_conv_expr_descriptor): Move ndim initialization
	earlier.

From-SVN: r180140
2011-10-18 14:32:03 +00:00
Andrew Stubbs
33aa08b35b config.host (arm*-*-linux*): Add driver-arm.o and x-arm.
2011-10-18  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* config.host (arm*-*-linux*): Add driver-arm.o and x-arm.
	* config/arm/arm.opt: Add 'native' processor_type and
	arm_arch enum values.
	* config/arm/arm.h (host_detect_local_cpu): New prototype.
	(EXTRA_SPEC_FUNCTIONS): New define.
	(MCPU_MTUNE_NATIVE_SPECS): New define.
	(DRIVER_SELF_SPECS): New define.
	* config/arm/driver-arm.c: New file.
	* config/arm/x-arm: New file.
	* doc/invoke.texi (ARM Options): Document -mcpu=native,
	-mtune=native and -march=native.

From-SVN: r180139
2011-10-18 14:14:14 +00:00
Diego Novillo
aa6e723726 parser.c: Remove ENABLE_CHECKING markers around debugging routines.
* parser.c: Remove ENABLE_CHECKING markers around debugging
	routines.
	(cp_lexer_dump_tokens): Add arguments START_TOKEN and CURR_TOKEN.
	Make static
	When printing CURR_TOKEN surround it in [[ ]].
	Start printing at START_TOKEN.
	Update all users.
	(cp_debug_print_tree_if_set): New.
	(cp_debug_print_context): New.
	(cp_debug_print_context_stack): New.
	(cp_debug_print_flag): New.
	(cp_debug_print_unparsed_function): New.
	(cp_debug_print_unparsed_queues): New.
	(cp_debug_parser_tokens): New.
	(cp_debug_parser): New.
	(cp_lexer_start_debugging): Set cp_lexer_debug_stream to stderr.
	(cp_lexer_stop_debugging): Set cp_lexer_debug_stream to NULL.
	* parser.h (cp_lexer_dump_tokens): Remove declaration.
	(cp_debug_parser): Declare.

From-SVN: r180136
2011-10-18 08:36:46 -04:00
Alexander Monakov
ea3f6aa862 re PR rtl-optimization/50205 (ICE: in code_motion_path_driver, at sel-sched.c:6581 with -fselective-scheduling2 and custom flags)
PR rtl-optimization/50205
	* sel-sched.c (count_occurrences_1): Simplify on the assumption that
	p->x is a register.  Forbid substitution when the same register is
	found in a different mode.
	(count_occurrences_equiv): Assert that 'what' is a register.

	* gcc.dg/pr50205.c: New.

From-SVN: r180135
2011-10-18 16:36:16 +04:00
Richard Guenther
748c511454 re PR tree-optimization/50767 (ICE: in refs_may_alias_p_1, at tree-ssa-alias.c:1004 with -O2 -fno-tree-copy-prop -fno-tree-dominator-opts)
2011-10-18  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/50767
	* tree-ssa-pre.c (create_expression_by_pieces): Update the
	folded statement.

	* gcc.dg/torture/pr50767.c: New testcase.

From-SVN: r180134
2011-10-18 11:44:15 +00:00
Mikael Pettersson
5b6b2942cd In gcc/objc/: 2011-10-18 Mikael Pettersson <mikpe@it.uu.se>
In gcc/objc/:
2011-10-18  Mikael Pettersson  <mikpe@it.uu.se>

	PR objc/50743
	* objc-act.c (check_duplicates): Cast TREE_VEC_LENGTH result to
	size_t to avoid signed/unsigned
	comparison.
	(insert_method_into_method_map): Likewise.

From-SVN: r180132
2011-10-18 11:31:45 +00:00
Julian Brown
6cc4833a49 gcc/
* config/arm/arm.c (arm_block_move_unaligned_straight)
    (arm_adjust_block_mem, arm_block_move_unaligned_loop)
    (arm_movmemqi_unaligned): New.
    (arm_gen_movmemqi): Support unaligned block copies.

    gcc/testsuite/
    * lib/target-supports.exp (check_effective_target_arm_unaligned):
    New.
    * gcc.target/arm/unaligned-memcpy-1.c: New.
    * gcc.target/arm/unaligned-memcpy-2.c: New.
    * gcc.target/arm/unaligned-memcpy-3.c: New.
    * gcc.target/arm/unaligned-memcpy-4.c: New.

From-SVN: r180131
2011-10-18 10:49:44 +00:00
Janus Weil
00820a2a60 re PR fortran/47023 (C_Sizeof: Rejects valid code)
2011-10-18  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/47023
	* decl.c (verify_c_interop_param): Renamed to
	'gfc_verify_c_interop_param'. Add error message for polymorphic
	arguments.
	(verify_c_interop): Renamed to 'gfc_verify_c_interop'. Reject
	polymorphic variables.
	(verify_bind_c_sym): Renamed 'verify_c_interop'.
	* gfortran.h (verify_c_interop,verify_c_interop_param): Renamed.
	* check.c (gfc_check_sizeof): Ditto.
	* resolve.c (gfc_iso_c_func_interface,resolve_fl_procedure): Ditto.
	* symbol.c (verify_bind_c_derived_type): Ditto.


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

	PR fortran/47023
	* gfortran.dg/iso_c_binding_class.f03: New.

From-SVN: r180130
2011-10-18 12:48:12 +02:00
Paolo Carlini
fc8396e961 2011-10-18 Paolo Carlini <paolo.carlini@oracle.com>
* Fix ChangeLogs.

From-SVN: r180129
2011-10-18 09:50:47 +00:00
Ira Rosen
36ba4aaedc md.texi (vec_widen_ushiftl_hi, [...]): Document.
* doc/md.texi (vec_widen_ushiftl_hi, vec_widen_ushiftl_lo,
	vec_widen_sshiftl_hi, vec_widen_sshiftl_lo): Document.
	* tree-pretty-print.c (dump_generic_node): Handle WIDEN_LSHIFT_EXPR,
	VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR.
	(op_code_prio): Likewise.
	(op_symbol_code): Handle WIDEN_LSHIFT_EXPR.
	* optabs.c (optab_for_tree_code): Handle
	VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR.
	(init-optabs): Initialize optab codes for vec_widen_u/sshiftl_hi/lo.
	* optabs.h (enum optab_index): Add OTI_vec_widen_u/sshiftl_hi/lo.
	* genopinit.c (optabs): Initialize the new optabs.
	* expr.c (expand_expr_real_2): Handle
	VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR.
	* gimple-pretty-print.c (dump_binary_rhs): Likewise.
	* tree-vectorizer.h (NUM_PATTERNS): Increase to 8.
	* tree.def (WIDEN_LSHIFT_EXPR, VEC_WIDEN_LSHIFT_HI_EXPR,
	VEC_WIDEN_LSHIFT_LO_EXPR): New.
	* cfgexpand.c (expand_debug_expr): Handle new tree codes.
	* tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
	vect_recog_widen_shift_pattern.
	(vect_handle_widen_mult_by_const): Rename...
	(vect_handle_widen_op_by_const): ...to this.  Handle shifts.
	Add a new argument, update documentation.
	(vect_recog_widen_mult_pattern): Assume that only second
	operand can be constant.  Update call to
	vect_handle_widen_op_by_const.
	(vect_recog_over_widening_pattern): Fix typo.
	(vect_recog_widen_shift_pattern): New.
	* tree-vect-stmts.c (vectorizable_type_promotion): Handle
	widening shifts.
	(supportable_widening_operation): Likewise.
	* tree-inline.c (estimate_operator_cost): Handle new tree codes.
	* tree-vect-generic.c (expand_vector_operations_1): Likewise.
	* tree-cfg.c (verify_gimple_assign_binary): Likewise.
	* config/arm/neon.md (neon_vec_<US>shiftl_<mode>): New.
	(vec_widen_<US>shiftl_lo_<mode>, neon_vec_<US>shiftl_hi_<mode>,
	vec_widen_<US>shiftl_hi_<mode>, neon_vec_<US>shift_left_<mode>):
	Likewise.
	* config/arm/predicates.md (const_neon_scalar_shift_amount_operand):
	New.
	* config/arm/iterators.md (V_innermode): New.
	* tree-vect-slp.c (vect_build_slp_tree): Require same shift operand
	for widening shift.

From-SVN: r180128
2011-10-18 09:39:04 +00:00
Richard Guenther
d355361573 tree-ssa-alias.h (struct pt_solution): Remove vars_contains_restrict member.
2011-10-18  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-alias.h (struct pt_solution): Remove
	vars_contains_restrict member.
	(pt_solutions_same_restrict_base): Remove.
	(pt_solution_set): Adjust.
	* tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Remove
	vars_contains_restrict handling.
	(dump_points_to_solution): Likewise.
	(ptr_derefs_may_alias_p): Do not call pt_solutions_same_restrict_base.
	* tree-ssa-structalias.c (struct variable_info): Remove is_restrict_var
	field.
	(new_var_info): Do not initialize it.
	(ipa_escaped_pt): Adjust.
	(make_constraint_from_restrict): Make the tag global.
	(make_constraint_from_global_restrict): New function.
	(make_constraint_from_heapvar): Remove.
	(create_variable_info_for): Do not make restrict vars point
	to NONLOCAL.
	(intra_create_variable_infos): Likewise.
	(find_what_var_points_to): Remove vars_contains_restrict handling.
	(pt_solution_set): Adjust.
	(pt_solution_ior_into): Likewise.
	(pt_solutions_same_restrict_base): Remove.
	(compute_points_to_sets): Do not test is_restrict_var.
	* cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
	* gimple-pretty-print.c (pp_points_to_solution): Likewise.

	* gcc.dg/torture/restrict-1.c: New testcase.

From-SVN: r180127
2011-10-18 09:04:54 +00:00
Tom de Vries
266fbb7971 re PR tree-optimization/50672 (ice: verify_ssa failed: no immediate_use list)
2011-10-18  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/50672
	* tree-ssa-dce.c (mark_virtual_operand_for_renaming): New function,
	factored out of ...
	(mark_virtual_phi_result_for_renaming): Use
	mark_virtual_operand_for_renaming.
	* tree-flow.h (mark_virtual_operand_for_renaming): Declare.
	* tree-ssa-tail-merge.c (release_last_vdef): New function.
	(purge_bbs): Add update_vops parameter.  Call release_last_vdef for each
	deleted basic block.
	(tail_merge_optimize): Add argument to call to purge_bbs.

From-SVN: r180126
2011-10-18 08:57:39 +00:00
Richard Guenther
cab3579442 re PR middle-end/50716 (Segmentation fault caused by misaligned vector access)
2011-10-18  Richard Guenther  <rguenther@suse.de>

	PR middle-end/50716
	* expr.c (get_object_or_type_alignment): New function.
	(expand_assignment): Use it.
	(expand_expr_real_1): Likewise.

From-SVN: r180125
2011-10-18 08:46:00 +00:00
Dodji Seketeli
d17687f6f0 Fix bootstrap on !NO_IMPLICIT_EXTERN_C and ia32 targets
libcpp/

	* include/line-map.h (struct linemap_stats): Change the type of
	the members from size_t to long.
	* macro.c (macro_arg_token_iter_init): Unconditionally initialize
	iter->location_ptr.

gcc/c-family/

	* c-lex.c (fe_file_change): Use LINEMAP_SYSP when
	!NO_IMPLICIT_EXTERN_C.

gcc/
	* input.c (dump_line_table_statistics): Use long, not size_t.

From-SVN: r180124
2011-10-18 10:44:49 +02:00
Eric Botcazou
d5899fb5d3 Remove bogus line
From-SVN: r180123
2011-10-18 07:24:51 +00:00
Eric Botcazou
b75eeb3754 * config/sparc/sparc.md (in_call_delay): Fix formatting issues.
From-SVN: r180122
2011-10-18 07:20:38 +00:00
Benjamin Kosnik
4daba88481 [multiple changes]
2011-10-17  Michael Spertus  <mike_spertus@symantec.com>

	* gcc/c-family/c-common.c (c_common_reswords): Add __bases,
	__direct_bases.
	* gcc/c-family/c-common.h: Add RID_BASES and RID_DIRECT_BASES.

2011-10-17  Michael Spertus  <mike_spertus@symantec.com>

	* cp-tree.def: Add BASES as a new tree code.
	* cp-tree.h (enum cp_trait_kind): Add CPTK_BASES, CPTK_DIRECT_BASES.
	(BASES_TYPE, BASES_DIRECT): Define.
	(calculate_bases, finish_bases, calculate_direct_bases): Declare.
	* parser.c (cp_parser_trait_expr, cp_parser_template_argument_list,
	(cp_parser_simple_type_specifier, cp_parser_save_nsdmi): Use them.
	* pt.c (find_parameter_packs_r, tsubst_pack_expansion): Likewise.
	* semantics.c (calculate_bases, finish_bases, calculate_direct_bases,
	dfs_calculate_bases_pre, dfs_calculate_bases_post,
	calculate_bases_helper): Define.

2011-10-17  Michael Spertus  <mike_spertus@symantec.com>

	* g++.dg/ext/bases.C: New test.

2011-10-17  Michael Spertus  <mike_spertus@symantec.com>

	* include/tr2/type_traits (bases, direct_bases, typelist): New.

2011-10-17  Benjamin Kosnik  <bkoz@redhat.com>

	* libstdc++-v3/include/Makefile.am: Add tr2 directory and includes.
	* libstdc++-v3/include/Makefile.in: Regenerate.

	* scripts/create_testsuite_files: Search tr2 directory.
	* testsuite/libstdc++-dg/conformance.exp: Same.

	* testsuite/tr2/bases/requirements/explicit_instantiation.cc: New.
	* testsuite/tr2/bases/requirements/typedefs.cc: New.
	* testsuite/tr2/bases/value.cc: New.
	* testsuite/tr2/direct_bases/requirements/
	explicit_instantiation.cc: New.
	* testsuite/tr2/direct_bases/requirements/typedefs.cc: New.
	* testsuite/tr2/direct_bases/value.cc: New.

From-SVN: r180121
2011-10-18 02:58:06 +00:00
Richard Henderson
9d4dedaa7b Add sparc vec_perm patterns when VIS2.
* config/sparc/sparc.md (vec_perm_constv8qi, vec_perm<mode>): New
	patterns.
	* config/sparc/sparc.c (sparc_expand_vec_perm_bmask): New function.
	* config/sparc/sparc-protos.h (sparc_expand_vec_perm_bmask): Declare.

From-SVN: r180119
2011-10-17 17:25:30 -07:00
GCC Administrator
d62fc6ed20 Daily bump.
From-SVN: r180118
2011-10-18 00:18:39 +00:00
Simon Baldwin
08b2bad275 configure.ac: Add --with-native-system-header-dir.
* configure.ac: Add --with-native-system-header-dir.  Set and
	substitute NATIVE_SYSTEM_HEADER_DIR.  Use native_system_header
	when setting target_header_dir.
	* config.gcc: Always set native_system_header_dir.
	(*-*-gnu*): Set native_system_header_dir.  Don't use t-gnu.
	(i[34567]86-pc-msdosdjgpp*): Set native_system_header_dir.  Don't
	use i386/t-djgpp.
	(i[34567]86-*-mingw* | x86_64-*-mingw*): Set
	native_system_header_dir.
	(spu-*-elf*): Set native_system_header_dir.
	* Makefile.in (NATIVE_SYSTEM_HEADER_DIR): Set to
	@NATIVE_SYSTEM_HEADER_DIR@.
	(PREPROCESSOR_DEFINES): Define NATIVE_SYSTEM_HEADER_DIR.
	* cppdefault.c (STANDARD_INCLUDE_DIR): Don't define.
	(NATIVE_SYSTEM_HEADER_COMPONENT): Rename from
	STANDARD_INCLUDE_COMPONENT.
	(cpp_include_defaults): Don't use SYSTEM_INCLUDE_DIR.  Rename
	STANDARD_INCLUDE_DIR to NATIVE_SYSTEM_HEADER_DIR.
	* system.h: Poison SYSTEM_INCLUDE_DIR, STANDARD_INCLUDE_DIR, and
	STANDARD_INCLUDE_COMPONENT.
	* config/i386/t-mingw32 (NATIVE_SYSTEM_HEADER_DIR): Remove.
	* config/i386/t-mingw-w32: Likewise.
	* config/i386/t-mingw-w64: Likewise.
	* config/spu/t-spu-elf: Likewise.
	* config/i386/t-djgpp: Remove.
	* config/t-gnu: Remove.
	* config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Don't define.
	(NATIVE_SYSTEM_HEADER_COMPONENT): Rename from
	STANDARD_INCLUDE_COMPONENT.
	* config/i386/djgpp.h (STANDARD_INCLUDE_DIR): Don't define.
	* config/spu/spu-elf.h: Likewise.
	* config/vms/xm-vms.h: Likewise.
	* config/gnu.h: Likewise.
	* config/openbsd.h (INCLUDE_DEFAULTS): Change STANDARD_INCLUDE_DIR
	and STANDARD_INCLUDE_COMPONENT to NATIVE_SYSTEM_HEADER_DIR and
	NATIVE_SYSTME_HEADER_COMPONENT.
	* doc/install.texi (Configuration): Document
	--with-native-system-header-dir.  Mention it in the documentation
	for --with-sysroot and --with-build-sysroot.
	* doc/tm.texi.in (Driver): Don't document SYSTEM_INCLUDE_DIR or
	STANDARD_INCLUDE_DIR.  Rename STANDARD_INCLUDE_COMPONENT to
	NATIVE_SYSTEM_HEADER_COMPONENT.  Rename uses of
	STANDARD_INCLUDE_DIR to NATIVE_SYSTEM_HEADER_DIR.
	* doc/fragments.texi (Target Fragment): Don't document
	NATIVE_SYSTEM_HEADER_DIR.
	* configure, doc/tm.texi: Rebuild.

Co-Authored-By: Ian Lance Taylor <iant@google.com>

From-SVN: r180114
2011-10-17 23:31:25 +00:00
Richard Henderson
d1947945f5 Fix predicates used in sparc VIS edge instructions.
* config/sparc/sparc.md: Use register_or_zero_operand where rJ
	is the constraint.

From-SVN: r180113
2011-10-17 16:04:48 -07:00
David S. Miller
e00560c290 Segregate sparc's handling of vector vs. non-vector modes.
gcc/
	* config/sparc/sparc-modes.def: Add single entry vector modes for
	DImode and SImode.
	* config/sparc/sparc/sparc.md (V32, V32I, V64, V64I, V64N8): Delete
	mode iterators.
	(mov<V32:mode>): Revert back to plain SFmode pattern.
	(*movsf_insn): Likewise.
	(mov<V64:mode>): Revert back to plain DFmode pattern.
	(*movdf_insn_sp32): Likewise.
	(*movdf_insn_sp32_v9): Likewise.
	(*movdf_insn_sp64): Likewise.
	(V64 mode splitters) Likewise.
	(addsi3): Remove VIS alternatives.
	(subsi3): Likewise.
	(and<V64I:mode>3): Revert to DImode only pattern.
	(and<V64I:mode>3_sp32): Likewise.
	(*and<V64I:mode>3_sp64): Likewise.
	(and<V32I:mode>3): Likewise.
	(*and_not_<V64I:mode>_sp32): Likewise.
	(*and_not_<V64I:mode>_sp64): Likewise.
	(*and_not_<V32I:mode>): Likewise.
	(ior<V64I:mode>3): Likewise.
	(*ior<V64I:mode>3_sp32): Likewise.
	(*ior<V64I:mode>3_sp64): Likewise.
	(ior<V32I:mode>3): Likewise.
	(*or_not_<V64I:mode>_sp32): Likewise.
	(*or_not_<V64I:mode>_sp64): Likewise.
	(*or_not_<V32I:mode>): Likewise.
	(xor<V64I:mode>3): Likewise.
	(*xor<V64I:mode>3_sp32): Likewise.
	(*xor<V64I:mode>3_sp64): Likewise.
	(xor<V32I:mode>3): Likewise.
	(V64I mode splitters): Likewise.
	(*xor_not_<V64I:mode>_sp32): Likewise.
	(*xor_not_<V64I:mode>_sp64): Likewise.
	(*xor_not_<V32I:mode>): Likewise.
	(one_cmpl<V64I:mode>2): Likewise.
	(*one_cmpl<V64I:mode>2_sp32): Likewise.
	(*one_cmpl<V64I:mode>2_sp64): Likewise.
	(one_cmpl<V32I:mode>2): Likewise.
	(VM32, VM64, VMALL): New mode iterators.
	(vbits, vconstr, vfptype): New mode attributes.
	(mov<VMALL:mode>): New expander.
	(*mov<VM32:mode>_insn): New insn.
	(*mov<VM64:mode>_insn_sp64): New insn.
	(*mov<VM64:mode>_insn_sp32): New insn, and associated splitter
	specifically for the register to memory case.
	(vec_init<mode>): New expander.
	(VADDSUB): New mode iterator.
	(<plusminus_insn>v2si3, <plusminus_insn>v2hi3): Remove and replace
	with...
	(<plusminus_insn><mode>3): New consolidated pattern.
	(VL): New mode iterator for logical operations.
	(vlsuf): New more attribute.
	(vlop): New code iterator.
	(vlinsn, vlninsn): New code attributes.
	(<code><mode>3): New insn to non-negated vector logical ops.
	(*not_<code><mode>3): Likewise for negated variants.
	(*nand<mode>_vis): New insn.
	(vlnotop): New code iterator.
	(*<code>_not1<mode>_vis, *<code>_not2<mode>_vis): New insns.
	(one_cmpl<mode>2): New insn.
	(faligndata<V64I:mode>_vis): Rewrite to use VM64 iterator.
	(bshuffle<VM64:mode>_vis): Likewise.
	(v<vis3_shift_patname><mode>3): Use GCM mode iterator.
	(fp<plusminus_insn>64_vis): Use V1DI mode.
	(VASS mode iterator): Use V1SI not SI mode.
	* config/sparc/sparc.c (sparc_vis_init_builtins): Account for
	single-entry vector mode changes.
	(sparc_expand_builtin): Likewise.
	(sparc_expand_vector_init): New function.
	* config/sparc/sparc-protos.h (sparc_expand_vector_init): Declare.

gcc/testsuite/

	* gcc.target/sparc/fand.c: Remove __LP64__ ifdefs and expect
	all operations to emit VIS instructions.
	* gcc.target/sparc/fandnot.c: Likewise.
	* gcc.target/sparc/fnot.c: Likewise.
	* gcc.target/sparc/for.c: Likewise.
	* gcc.target/sparc/fornot.c: Likewise.
	* gcc.target/sparc/fxnor.c: Likewise.
	* gcc.target/sparc/fxor.c: Likewise.
	* gcc.target/sparc/combined-1.c: Revert change to use -O2, no longer
	needed.

From-SVN: r180112
2011-10-17 15:50:29 -07:00
Jakub Jelinek
b2c4e3157f vshuf-v16hi.c: New test.
* gcc.c-torture/execute/vshuf-v16hi.c: New test.
	* gcc.dg/torture/vshuf-16.inc: New file.
	* gcc.dg/torture/vshuf-2.inc: New file.
	* gcc.dg/torture/vshuf-32.inc: New file.
	* gcc.dg/torture/vshuf-4.inc: New file.
	* gcc.dg/torture/vshuf-8.inc: New file.
	* gcc.dg/torture/vshuf-main.inc: New file.
	* gcc.dg/torture/vshuf-v16hi.c: New test.
	* gcc.dg/torture/vshuf-v16qi.c: New test.
	* gcc.dg/torture/vshuf-v2df.c: New test.
	* gcc.dg/torture/vshuf-v2di.c: New test.
	* gcc.dg/torture/vshuf-v2sf.c: New test.
	* gcc.dg/torture/vshuf-v2si.c: New test.
	* gcc.dg/torture/vshuf-v32qi.c: New test.
	* gcc.dg/torture/vshuf-v4df.c: New test.
	* gcc.dg/torture/vshuf-v4di.c: New test.
	* gcc.dg/torture/vshuf-v4hi.c: New test.
	* gcc.dg/torture/vshuf-v4sf.c: New test.
	* gcc.dg/torture/vshuf-v4si.c: New test.
	* gcc.dg/torture/vshuf-v8hi.c: New test.
	* gcc.dg/torture/vshuf-v8qi.c: New test.
	* gcc.dg/torture/vshuf-v8sf.c: New test.
	* gcc.dg/torture/vshuf-v8si.c: New test.

From-SVN: r180110
2011-10-17 22:22:39 +02:00
Kai Tietz
6e796a8374 fold-const.c (simple_operand_p_2): New function.
* fold-const.c (simple_operand_p_2): New function.
	(fold_truthop): Rename to
	(fold_truth_andor_1): function name.
	Additionally remove branching creation for logical and/or.
	(fold_truth_andor): Handle branching creation for logical and/or here.

From-SVN: r180109
2011-10-17 22:18:31 +02:00
Andi Kleen
1eca213e3f ggc-page.c (USING_MADVISE): Adjust ifdef to check for USING_MMAP.
2011-10-17  Andi Kleen  <ak@linux.intel.com>

       * ggc-page.c (USING_MADVISE): Adjust ifdef to check for
       USING_MMAP.

From-SVN: r180107
2011-10-17 19:47:12 +00:00
Ira Rosen
44729eb72b re PR tree-optimization/50746 (FAIL: gcc.dg/vect/pr37482.c (internal compiler error) on powerpc-apple-darwin9)
PR tree-optimization/50746
        * gcc.dg/vect/vect-114.c: Remove vect_hw_misalign.

From-SVN: r180106
2011-10-17 19:03:02 +00:00
Jason Merrill
c6334ca906 re PR c++/50736 ([C++0x] ISO_IEC_14882-2011-5.1.2/10 - bug)
PR c++/50736
	* parser.c (cp_parser_lambda_introducer): Check for more
	invalid captures.

From-SVN: r180105
2011-10-17 14:59:41 -04:00
Georg-Johann Lay
7c3297ce40 avr.h (ASSEMBLER_DIALECT): Remove.
* config/avr/avr.h (ASSEMBLER_DIALECT): Remove.
	* config/avr/avr.md (mcu_have_movw, mcu_mega): Remove attributes.
	(adjust_len): Add alternative "call".
	(isa, enabled): New insn attributes.
	(length): Use match_test with AVR_HAVE_JMP_CALL instead of
	mcu_mega attribute.
	(*sbrx_branch<mode>): Ditto.
	(*sbrx_and_branch<mode>): Ditto.
	(*sbix_branch): Ditto.
	(*sbix_branch_bit7): Ditto.
	(*sbix_branch_tmp): Ditto.
	(*sbix_branch_tmp_bit7): Ditto.
	(jump): Ditto.
	(negsi2): Use attribute "isa" instead of assembler dialect.
	(extendhisi2): Ditto.
	(call_insn, call_value_insn): Set adjust_len attribute.
	(indirect_jump): Indent to coding rules.
	(call_prologue_saves): Use isa attribute instead of mcu_mega.
	(epilogue_restores): Ditto.  Fix setting of SP as described in the
	RTX pattern.
	(*indirect_jump): Fusion of *jcindirect_jump, *njcindirect_jump
	and *indirect_jump_avr6.
	(*tablejump): Fusion of *tablejump_rjmp and *tablejump_lib.
	(*jcindirect_jump, *njcindirect_jump, *indirect_jump_avr6): Remove.
	(*tablejump_rjmp, *tablejump_lib): Remove.
	* config/avr/avr.c (adjust_insn_length): Handle ADJUST_LEN_CALL.

From-SVN: r180104
2011-10-17 17:53:07 +00:00
Paolo Carlini
a7248d5fe3 re PR c++/44524 (improve diagnostic for . vs -> typo)
/cp
2011-10-17  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/44524
	* typeck.c (build_class_member_access_expr): Provide a better error
	message for X.Y where X is a pointer to class type.
	(finish_class_member_access_expr): Likewise.

/testsuite
2011-10-17  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/44524
	* g++.dg/parse/error41.C: New.
	* g++.dg/parse/error20.C: Adjust.

From-SVN: r180103
2011-10-17 17:51:00 +00:00