Commit Graph

137596 Commits

Author SHA1 Message Date
Michael Meissner 6d7d9f0eae re PR target/65849 (Add missing tuning knobs to #pragma target/attribute target support)
[gcc]
2015-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/65849
	* config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
	save to independent variables use the Save attribute.  This will
	allow these options to be modified with the #pragma/attribute
	target support.
	(-mallow-movmisalign): Likewise.
	(-mallow-df-permute): Likewise.
	(-msched-groups): Likewise.
	(-malways-hint): Likewise.
	(-malign-branch-targets): Likewise.
	(-mvectorize-builtins): Likewise.
	(-msave-toc-indirect): Likewise.

	* config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
	can be set via the #pragma/attribute target support.
	(rs6000_opt_vars): Likewise.
	(rs6000_inner_target_options): If VSX was set, also set
	-mno-avoid-indexed-addresses.

[gcc/testsuite]
2015-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/65849
	* gcc.target/powerpc/pr65849-1.c: New test to verify being able to
	set new options.
	* gcc.target/powerpc/pr65849-2.c: Likewise.

From-SVN: r222417
2015-04-24 17:24:05 +00:00
Kyrylo Tkachov 728dc15380 [ARM][trivial] Use uppercase for code iterator names
* config/arm/iterators.md (shiftable_ops): Rename to...
	(SHIFTABLE_OPS): ... This.  Update use in comments.
	(ior_xor): Rename to...
	(IOR_XOR): ... This.
	(vqh_ops): Rename to...
	(VQH_OPS): ... This.
	(vqhs_ops): Rename to...
	(VQHS_OPS): ... This.
	(rshifts): Rename to...
	(RSHIFTS): ... This.
	(returns): Rename to...
	(RETURNS): ... This.
	* config/arm/arm.md: Update uses of the above.
	* config/arm/neon.md: Likewise.

From-SVN: r222416
2015-04-24 15:01:32 +00:00
Kyrylo Tkachov 7e1bcce371 [AArch64] Implement -m{cpu,tune,arch}=native using only /proc/cpuinfo
* config.host (case ${host}): Add aarch64*-*-linux case.
	* config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
	fields to all the cores.
	* config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
	Add MCPU_MTUNE_NATIVE_SPECS.
	* config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
	field to all extensions.
	* config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
	* config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
	Adjust definition of AARCH64_OPT_EXTENSION.
	* config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
	(MCPU_MTUNE_NATIVE_SPECS): Define.
	* config/aarch64/driver-aarch64.c: New file.
	* config/aarch64/x-arch64: New file.
	* doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
	-mtune and -march.

From-SVN: r222415
2015-04-24 14:52:47 +00:00
Jason Merrill f8815f7a48 constexpr.c (potential_constant_expression_1): Remove obsolete code.
* constexpr.c (potential_constant_expression_1) [MINUS_EXPR]:
	Remove obsolete code.
	[NE_EXPR]: Likewise.

From-SVN: r222414
2015-04-24 10:50:51 -04:00
Tom de Vries 1c3f3851dd Replace g++.dg/pr65802.C with gcc.dg/pr65802.c
2015-04-24  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/65802
	* g++.dg/pr65802.C: Move to ...
	* gcc.dg/pr65802.c: ... here.  Add -fexceptions to dg-options. Include
	stdarg.h.  Rewrite for C.
	(fn1): Use va_list and va_arg.  Make variable args function.  Add use of
	va_start and va_end.  Remove unnecessary inline asm.

From-SVN: r222413
2015-04-24 14:18:57 +00:00
Uros Bizjak 97afef00ba i386-protos.h (ix86_operands_ok_for_move_multiple): New.
* config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
	* config/i386/i386.c (extract_base_offset_in_addr): New function.
	(ix86_operands_ok_for_move_multiple): Ditto.
	* config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
	(movlpd/movhpd to movupd peephole2): Ditto.

testsuite/ChangeLog:

	* gcc.target/i386/sse2-load-multi.c: New test.
	* gcc.target/i386/sse2-store-multi.c: Ditto.


Co-Authored-By: Wei Mi <wmi@google.com>

From-SVN: r222410
2015-04-24 15:05:50 +02:00
Marek Polacek 8c2b7f7972 re PR c/63357 (Warn for P && P and P || P (same expression used multiple times in a condition))
PR c/63357
	* c-common.c (warn_logical_operator): Warn if the operands have the
	same expressions.

	* doc/invoke.texi: Update description of -Wlogical-op.

	* c-c++-common/Wlogical-op-1.c: New test.

From-SVN: r222408
2015-04-24 12:10:52 +00:00
Marek Polacek 4853031ec8 re PR c/65830 (-Wno-shift-count-negative -Wno-shift-count-overflow don't work with const ints)
PR c/65830
	* c-common.c (c_fully_fold_internal): Use OPT_Wshift_count_negative
	and OPT_Wshift_count_overflow.

	* c-c++-common/pr65830.c: New test.

From-SVN: r222407
2015-04-24 11:53:27 +00:00
Marek Polacek b878781346 re PR c/61534 (Wlogical-op should not warn when either operand comes from macro expansion)
PR c/61534
	* input.h (from_macro_expansion_at): Define.

	* c-common.c (warn_logical_operator): Bail if either operand comes
	from a macro expansion.

	* c-c++-common/pr61534-1.c: New test.

From-SVN: r222406
2015-04-24 11:49:52 +00:00
Uros Bizjak 841e98017e sse.md (*vec_widen_smult_even_v8si<mask_name>): Mark operand1 commutative.
* config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
	Mark operand1 commutative.

From-SVN: r222403
2015-04-24 09:43:42 +02:00
Thomas Preud'homme 6a61f9bf33 unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix ternary operator in fprintf and harmonize spacing.
2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
    ternary operator in fprintf and harmonize spacing.

From-SVN: r222401
2015-04-24 06:02:10 +00:00
Uros Bizjak ee768d85a8 sse.md (*vec_concatv2sf_sse4_1): Do not allow both input operands in memory.
* config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
	input operands in memory.
	(*vec_concatv2si_sse4_1): Ditto.
	(*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
	(vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
	register_operand.
	(vec_extract_hi_v32hi): Ditto.
	(vec_extract_hi_v64hi): Ditto.
	(<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.

From-SVN: r222400
2015-04-24 08:01:34 +02:00
Thomas Preud'homme 8fceae614f re PR rtl-optimization/34503 (Issues with constant/copy propagation implementation in gcse.c)
2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
            Steven Bosscher <steven@gcc.gnu.org>

    gcc/
    PR rtl-optimization/34503
    * cprop.c (cprop_reg_p): New.
    (hash_scan_set): Use above function to check if register can be
    propagated.
    (find_avail_set): Return up to two sets, one whose source is a
    register and one whose source is a constant.  Sets are returned in an
    array passed as parameter rather than as a return value.
    (cprop_insn): Use a do while loop rather than a goto.  Try each of the
    sets returned by find_avail_set, starting with the one whose source is
    a constant. Use cprop_reg_p to check if register can be propagated.
    (do_local_cprop): Use cprop_reg_p to check if register can be
    propagated.
    (implicit_set_cond_p): Likewise.

    gcc/testsuite/
    PR rtl-optimization/34503
    * gcc.target/arm/pr64616.c: New file.

Co-Authored-By: Steven Bosscher <steven@gcc.gnu.org>

From-SVN: r222398
2015-04-24 04:49:34 +00:00
Bin Cheng 62d47a8827 pr42172-1.c: Check str instead of ldr.
gcc/testsuite/ChangeLog
	* gcc.target/arm/pr42172-1.c: Check str instead of ldr.

From-SVN: r222396
2015-04-24 03:44:53 +00:00
Terry Guo ea39708ac1 pr65710.c: Update the options.
2015-04-24  Terry Guo  <terry.guo@arm.com>

	* gcc.target/arm/pr65710.c: Update the options.

From-SVN: r222393
2015-04-24 02:07:30 +00:00
Jan Hubicka fb5c322ed1 ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
* ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
	(sem_function::equals): IGNORED_NODES parameter is now unused;
	update call of equals_private.
	(sem_function::equals_private): Do not call equals_wpa; skip
	gimple body matching if there is no body.
	(sem_function::init): Add logic to hash tthunk info.
	(sem_function::parse): Also parse thunks.
	* ipa-icf.h (equals_private): Update declaration.

From-SVN: r222392
2015-04-24 00:58:25 +00:00
GCC Administrator b3b80089c2 Daily bump.
From-SVN: r222391
2015-04-24 00:16:16 +00:00
Bill Schmidt b9e2e732a2 altivec.md (*altivec_lvx_<mode>_internal): Remove asterisk from name so this can be generated directly.
2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
	asterisk from name so this can be generated directly.
	(*altivec_stvx_<mode>_internal): Likewise.
	* config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
	that this is never called during or after reload/lra.
	(rs6000_frame_related): Remove split_reg
	argument and logic that references it.
	(emit_frame_save): Remove last parameter from call to
	rs6000_frame_related.
	(rs6000_emit_prologue): Remove last parameter from eight calls to
	rs6000_frame_related.  Force generation of stvx instruction for
	Altivec register saves.  Remove split_reg handling, which is no
	longer needed.
	(rs6000_emit_epilogue):  Force generation of lvx instruction for
	Altivec register restores.

From-SVN: r222385
2015-04-23 20:18:10 +00:00
Jason Merrill bb7ec730fe Revert:PR c++/50800
Revert:PR c++/50800
       * tree.c (strip_typedefs): Add remove_attributes parm.
       (strip_typedefs_expr): Likewise.
       (apply_identity_attributes): New subroutine of strip_typedefs.
       * pt.c (canonicalize_type_argument): Let strip_typedefs handle attrs.
       (convert_nontype_argument, unify): Likewise.
       * cp-tree.h: Adjust.

From-SVN: r222384
2015-04-23 15:40:16 -04:00
H.J. Lu 98ff5bf959 Skip gcc.target/i386/pr65523.c for x32
* gcc.target/i386/pr65523.c: Skip x32.

From-SVN: r222382
2015-04-23 11:11:57 -07:00
Bill Schmidt 532ac1c1e7 rs6000.opt (mcrypto): Change option description to match category changes in ISA 2.07B.
2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.opt (mcrypto): Change option description to
	match category changes in ISA 2.07B.

From-SVN: r222381
2015-04-23 18:07:02 +00:00
Jan Hubicka 0b5751c240 tree.h (attribute_value_equal): Declare.
* tree.h (attribute_value_equal): Declare.
	* tree.c (attribute_value_equal): Export.

From-SVN: r222380
2015-04-23 16:23:26 +00:00
Kyrylo Tkachov 381811fa30 [ARM] Rewrite vc<cond> NEON patterns to use RTL operations rather than UNSPECs
* config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
	iterators.
	(cmp_op, cmp_type): New code attributes.
	(NEON_VCMP, NEON_VACMP): New int iterators.
	(cmp_op_unsp): New int attribute.
	* config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
	(neon_vceq<mode>): Delete.
	(neon_vc<cmp_op><mode>_insn): New pattern.
	(neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
	(neon_vcgeu<mode>): Delete.
	(neon_vcle<mode>): Likewise.
	(neon_vclt<mode>: Likewise.
	(neon_vcage<mode>): Likewise.
	(neon_vcagt<mode>): Likewise.
	(neon_vca<cmp_op><mode>): New define_expand.
	(neon_vca<cmp_op><mode>_insn): New pattern.
	(neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.

	* gcc.target/arm/neon/pr51534.c: Update vcg* scan-assembly patterns
	to look for vcl* where appropriate.

From-SVN: r222379
2015-04-23 16:19:26 +00:00
Jan Hubicka 14336fe34b Fix testuite for updated ICF dumps.
From-SVN: r222378
2015-04-23 16:07:43 +00:00
Jason Merrill b88fa2656b re PR c++/50800 (Internal compiler error in finish_member_declarations, possibly related to may_alias attribute)
PR c++/50800
	* tree.c (strip_typedefs): Add remove_attributes parm.
	(strip_typedefs_expr): Likewise.
	(apply_identity_attributes): New subroutine of strip_typedefs.
	* pt.c (canonicalize_type_argument): Let strip_typedefs handle attrs.
	(convert_nontype_argument, unify): Likewise.
	* cp-tree.h: Adjust.

From-SVN: r222377
2015-04-23 11:55:21 -04:00
Jason Merrill 6c28362134 re PR c++/65646 (ICE in invalid syntax)
PR c++/65646
	* pt.c (check_explicit_specialization): Don't
	SET_DECL_TEMPLATE_SPECIALIZATION for a variable with no template
	headers.
	* decl.c (grokvardecl): Revert earlier fix.

From-SVN: r222376
2015-04-23 11:55:11 -04:00
Ramana Radhakrishnan 2667715244 Correct name and email address in the Changelog commit.
From-SVN: r222375
2015-04-23 15:30:50 +00:00
Jan Hubicka b3587b99fb ipa-icf.c (sem_item::compare_attributes): New function.
* ipa-icf.c (sem_item::compare_attributes): New function.
	(sem_item::compare_referenced_symbol_properties): Compare variable
	attributes.
	(sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
	(sem_function::param_used_p): New function.
	(sem_function::equals_wpa): Fix attribute comparsion; match
	parameter type codes; do not compare paremter flags when
	they are not used; compare edge flags; compare indirect calls.
	(sem_item::update_hash_by_addr_refs): Hash reference type.
	(sem_function::equals_private): Do not match DECL_ATTRIBUTES.
	(sem_variable::equals_wpa): Do not match DECL_ALIGN; match
	reference use type.
	(sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
	* ipa-icf.h (compare_attributes, param_used_p): Declare.

From-SVN: r222374
2015-04-23 15:25:26 +00:00
Bill Schmidt 9f468990e1 costmodel-bb-slp-9a.c: Replace vect_no_align with vect_no_align && { ! vect_hw_misalign }.
2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a.c: Replace
	vect_no_align with vect_no_align && { ! vect_hw_misalign }.

From-SVN: r222373
2015-04-23 15:09:19 +00:00
Jan Hubicka 977b01e34d ipa-icf.c (symbol_compare_collection::symbol_compare_collection): cleanup.
* ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
	cleanup.
	(sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
	DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
	(sem_item::compare_referenced_symbol_properties): New.
	(sem_item::hash_referenced_symbol_properties): New.
	(sem_item::compare_cgraph_references): Rename to ...
	(sem_item::compare_symbol_references): ... this one; use
	compare_referenced_symbol_properties.
	(sem_function::equals_wpa): Do not compare
	DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
	DECL_IS_OPERATOR_NEW; compare pointer sizes.
	(sem_item::update_hash_by_addr_refs): Call
	hash_referenced_symbol_properties.
	(sem_item::update_hash_by_local_refs): Cleanup.
	(sem_function::merge): Do not mix up symbol properties.
	(sem_variable::equals_wpa): Use compare_symbol_references.
	* ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
	(sem_item::hash_referenced_symbol_properties): New.
	(sem_item::compare_symbol_references): New.
	(sem_item::compare_cgraph_references): Remove.

From-SVN: r222372
2015-04-23 14:55:07 +00:00
Ramana Radhakrishnan 4cf0223853 re PR target/26702 (.size is not emitted for BSS variables)
Fix PR target/26702

For Kwok Cheung Yeung.

From-SVN: r222371
2015-04-23 14:49:45 +00:00
Marek Polacek 5c4abbb8e8 re PR c/65345 (ICE with _Generic selection on _Atomic int)
PR c/65345
	* c-decl.c (set_labels_context_r): New function.
	(store_parm_decls): Call it via walk_tree_without_duplicates.
	* c-typeck.c (convert_lvalue_to_rvalue): Use create_tmp_var_raw
	instead of create_tmp_var.  Build TARGET_EXPR instead of
	COMPOUND_EXPR.
	(build_atomic_assign): Use create_tmp_var_raw instead of
	create_tmp_var.  Build TARGET_EXPRs instead of MODIFY_EXPR.

	* gcc.dg/pr65345-1.c: New test.
	* gcc.dg/pr65345-2.c: New test.

From-SVN: r222370
2015-04-23 14:35:12 +00:00
Nick Clifton 0f9b95dfc7 rl78.c (rl78_preferred_reload_class): Add ATTRIBUTE_UNUSED to x parameter.
* config/rl78/rl78.c (rl78_preferred_reload_class): Add
	ATTRIBUTE_UNUSED to x parameter.
	* config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.

From-SVN: r222369
2015-04-23 13:41:48 +00:00
Bill Schmidt 6895fffb46 crypto.md (crypto_vpmsum<CR_char>): Change TARGET_CRYPTO to TARGET_P8_VECTOR>
[gcc]

2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
	TARGET_CRYPTO to TARGET_P8_VECTOR>
	(crypto_vpermxor_<mode>): Likewise.
	* config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
	(BU_CRYPTO_3A): Likewise.
	(BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
	(BU_CRYPTO_OVERLOAD_3A): New #define.
	(VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
	(VPMSUMH): Likewise.
	(VPMSUMW): Likewise.
	(VPMSUMD): Likewise.
	(VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
	(VPERMXOR_V4SI): Likewise.
	(VPERMXOR_V8HI): Likewise.
	(VPERMXOR_V16QI): Likewise.
	(VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
	BU_CRYPTO_OVERLOAD_2A.
	(VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
	BU_CRYPTO_OVERLOAD_3A.
	* config/rs6000/rs6000.opt (mcrypto): Change description of
	option.

[gcc/testsuite]

2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.target/powerpc/crypto-builtin-2.c: New.

From-SVN: r222362
2015-04-23 12:36:43 +00:00
Andre Vehreschild f3b0bb7a56 PF fortran/60322
gcc/testsuite/ChangeLog:

2015-04-23  Andre Vehreschild  <vehre@gmx.de>

	PF fortran/60322
	* gfortran.dg/class_allocate_19.f03: New test.
	* gfortran.dg/class_array_20.f03: New test.
	* gfortran.dg/class_array_21.f03: New test.
	* gfortran.dg/finalize_10.f90: Corrected scan-trees.
	* gfortran.dg/finalize_15.f90: Fixing comparision to model
	initialization correctly.
	* gfortran.dg/finalize_29.f08: New test.


gcc/fortran/ChangeLog:

2015-04-23  Andre Vehreschild  <vehre@gmx.de>

	PR fortran/60322
	* expr.c (gfc_lval_expr_from_sym): Code to select the regular
	or class array added.
	* gfortran.h: Add IS_CLASS_ARRAY macro.
	* trans-array.c (gfc_add_loop_ss_code): Treat class objects
	to be referenced always.
	(build_class_array_ref): Adapt retrieval of array descriptor.
	(build_array_ref): Likewise.
	(gfc_conv_array_ref): Hand the vptr or the descriptor to 
	build_array_ref depending whether the sym is class or not.
	(gfc_trans_array_cobounds):  Select correct gfc_array_spec for
	regular and class arrays.
	(gfc_trans_array_bounds): Likewise.
	(gfc_trans_dummy_array_bias): Likewise. 
	(gfc_get_dataptr_offset): Correcting call of build_array_ref.
	(gfc_conv_expr_descriptor): Set the array's offset to -1 when
	lbound in inner most dim is 1 and symbol non-pointer/assoc.
	* trans-decl.c (gfc_build_qualified_array): Select correct
	gfc_array_spec for regular and class arrays.
	(gfc_build_dummy_array_decl): Likewise.
	(gfc_get_symbol_decl): Get a dummy array for class arrays.
	(gfc_trans_deferred_vars): Tell conv_expr that the descriptor
	is desired.
	* trans-expr.c (gfc_class_vptr_get): Get the class descriptor
	from the correct location for class arrays.
	(gfc_class_len_get): Likewise.
	(gfc_conv_intrinsic_to_class): Add handling of _len component.
	(gfc_conv_class_to_class):  Prevent access to unset array data
	when the array is an optional argument. Add handling of _len
	component.
	(gfc_copy_class_to_class): Check that _def_init is non-NULL
	when used in _vptr->copy()
	(gfc_trans_class_init_assign): Ensure that the rank of
	_def_init is zero.
	(gfc_conv_component_ref): Get the _vptr along with _data refs.
	(gfc_conv_variable): Make sure the temp array descriptor is
	returned for class arrays, too, and that class arrays are
	dereferenced correctly.
	(gfc_conv_procedure_call): For polymorphic type initialization
	the initializer has to be a pointer to _def_init stored in a
	dummy variable, which then needs to be used by value.
	* trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Use the
	temporary array descriptor for class arrays, too.
	(gfc_conv_intrinsic_storage_size): Likewise.
	(gfc_conv_intrinsic_loc): Add ref to _data for BT_CLASS
	expressions.
	* trans-stmt.c (trans_associate_var): Use a temporary array for
	the associate variable of class arrays, too, making the array
	one-based (lbound == 1).
	* trans-types.c (gfc_is_nodesc_array): Use the correct
	array data.
	* trans.c (gfc_build_array_ref): Use the dummy array descriptor
	when present.
	* trans.h: Add class_vptr to gfc_se for storing a class ref's
	vptr.

From-SVN: r222361
2015-04-23 13:32:00 +02:00
Richard Biener eff973a26b passes.def: Remove copy propagation passes run directly after CCP.
2015-04-23  Richard Biener  <rguenther@suse.de>

	* passes.def: Remove copy propagation passes run directly after CCP.
	* tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
	SSA names.
	(ccp_visit_phi_node): Rework to handle first executable edge
	specially.

From-SVN: r222360
2015-04-23 11:19:45 +00:00
Matthew Wahab e4949e1d81 [ARM] Remove an unused reload hook.
* config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
	(ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
	(THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
	* config/arm/arm.c (arm_legimitimize_reload_address): Remove.
	(thumb_legimitimize_reload_address): Remove.
	* config/arm/arm-protos.h (arm_legimitimize_reload_address):
	Remove.
	(thumb_legimitimize_reload_address): Remove.

From-SVN: r222359
2015-04-23 11:02:47 +00:00
Kyrylo Tkachov 8778aed76e Re: [PATCH 02/12] remove some ifdef HAVE_cc0.
* conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.

From-SVN: r222358
2015-04-23 10:34:58 +00:00
Kyrylo Tkachov f5ee50a5ab [ARM] Restrict {load,store}_multiple expanders to MAX_LD_STM_OPS regs
* config/arm/arm.md (load_multiple): Reject operand 2 greater than
	MAX_LDM_STM_OPS.
	(store_multiple): Likewise.

From-SVN: r222357
2015-04-23 10:26:25 +00:00
Kyrylo Tkachov dbb2d72517 [ARM] Make issue rate part of per-core tuning structs
* config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
	* config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
	arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
	arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
	arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
	arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
	arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
	Specify issue_rate value.
	(arm_issue_rate): Look up issue rate from tuning structs. Remove
	large switch statement.
	(arm_marvell_pj4_tune): New struct.
	* config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
	struct.

From-SVN: r222356
2015-04-23 10:24:07 +00:00
Richard Biener 2e8ab70c2e tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
2015-04-23  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
	(vect_find_last_store_in_slp_instance): Rename to ...
	(vect_find_last_scalar_stmt_in_slp): ... this and generalize.
	(vect_analyze_slp_cost_1): Use vector_load for constant defs
	and vec_construct for external defs when estimating prologue cost.
	(vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
	Compute costs here only when vectorizing loops.
	(vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
	have been determined.
	(vect_schedule_slp_instance): Simplify vectorized code placement
	and prepare for in-BB external defs.
	* tree-vectorizer.h (struct _slp_instance): Remove first_load member.
	(SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
	* tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
	guard.
	(vect_model_load_cost): Likewise.
	(vectorizable_store): Instead add it here.
	(vectorizable_load): Likewise.
	(vect_is_simple_use): Dump def type textually.

From-SVN: r222354
2015-04-23 08:43:10 +00:00
Richard Biener b0dd8c90ff cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
2015-04-23  Richard Biener  <rguenther@suse.de>

	* cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
	* cfgloop.c (verify_loop_structure): Verify the root loop node.
	* except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
	instead of get_eh_region_from_lp_number.
	* loop-init.c (fix_loop_structure): If we removed a loop, reset
	the SCEV cache.

From-SVN: r222353
2015-04-23 08:30:04 +00:00
Anton Blanchard 905bcb98e7 rs6000.c (rs6000_output_function_prologue): No need for -mprofile-kernel to save LR to stack.
* config/rs6000/rs6000.c (rs6000_output_function_prologue): No
	need for -mprofile-kernel to save LR to stack.

From-SVN: r222352
2015-04-23 15:06:55 +09:30
Bill Schmidt 30821df75c rs6000.c (rtx_is_swappable_p): Commentary adjustments.
[gcc]

2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
	adjustments.
	(insn_is_swappable_p): Return 1 for a convert from double to
	single precision when all of its uses are splats of BE element
	zero.

[gcc/testsuite]

2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.target/powerpc/swaps-p8-18.c: New test.

From-SVN: r222351
2015-04-23 01:49:08 +00:00
Kugan Vivekanandarajah ed02353765 ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
2015-04-23  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* ira-costs.c (record_operand_costs): Fix typo (remove redundant code).

From-SVN: r222350
2015-04-23 00:43:30 +00:00
Bill Schmidt 047b83ff58 re PR target/65456 (powerpc64le autovectorized copy loop missed optimization)
[gcc]

2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/65456
	* config/rs6000/rs6000.c (rs6000_option_override_internal):  For
	VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
	TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
	option.
	(rs6000_builtin_mask_for_load): Return 0 for targets with
	efficient unaligned VSX accesses so that the vectorizer will use
	direct unaligned loads.
	(rs6000_builtin_support_vector_misalignment): Always return true
	for targets with efficient unaligned VSX accesses.
	(rs6000_builtin_vectorization_cost): Cost of unaligned loads and
	stores on targets with efficient unaligned VSX accesses is almost
	always the same as the cost of an aligned load or store, so model
	it that way.
	* config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
	unaligned vectors if we have efficient unaligned VSX accesses.
	* config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
	undocumented option.

[gcc/testsuite]

2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/65456
	* gcc.dg/vect/bb-slp-24.c: Exclude test for POWER8.
	* gcc.dg/vect/bb-slp-25.c: Likewise.
	* gcc.dg/vect/bb-slp-29.c: Likewise.
	* gcc.dg/vect/bb-slp-32.c: Replace vect_no_align with
	vect_no_align && { ! vect_hw_misalign }.
	* gcc.dg/vect/bb-slp-9.c: Likewise.
	* gcc.dg/vect/costmodel/ppc/costmodel-slp-33.c: Exclude test for
	vect_hw_misalign.
	* gcc.dg/vect/costmodel/ppc/costmodel-vect-31a.c: Likewise.
	* gcc.dg/vect/costmodel/ppc/costmodel-vect-76b.c: Adjust tests to
	account for POWER8, where peeling for alignment is not needed.
	* gcc.dg/vect/costmodel/ppc/costmodel-vect-outer-fir.c: Replace
	vect_no_align with vect_no_align && { ! vect_hw_misalign }.
	* gcc.dg.vect.if-cvt-stores-vect-ifcvt-18.c: Likewise.
	* gcc.dg/vect/no-scevccp-outer-6-global.c: Likewise.
	* gcc.dg/vect/no-scevccp-outer-6.c: Likewise.
	* gcc.dg/vect/no-vfa-vect-43.c: Likewise.
	* gcc.dg/vect/no-vfa-vect-57.c: Likewise.
	* gcc.dg/vect/no-vfa-vect-61.c: Likewise.
	* gcc.dg/vect/no-vfa-vect-depend-1.c: Likewise.
	* gcc.dg/vect/no-vfa-vect-depend-2.c: Likewise.
	* gcc.dg/vect/no-vfa-vect-depend-3.c: Likewise.
	* gcc.dg/vect/pr16105.c: Likewise.
	* gcc.dg/vect/pr20122.c: Likewise.
	* gcc.dg/vect/pr33804.c: Likewise.
	* gcc.dg/vect/pr33953.c: Likewise.
	* gcc.dg/vect/pr56787.c: Likewise.
	* gcc.dg/vect/pr58508.c: Likewise.
	* gcc.dg/vect/slp-25.c: Likewise.
	* gcc.dg/vect/vect-105-bit-array.c: Likewise.
	* gcc.dg/vect/vect-105.c: Likewise.
	* gcc.dg/vect/vect-27.c: Likewise.
	* gcc.dg/vect/vect-29.c: Likewise.
	* gcc.dg/vect/vect-33.c: Exclude unaligned access test for
	POWER8.
	* gcc.dg/vect/vect-42.c: Replace vect_no_align with vect_no_align
	&& { ! vect_hw_misalign }.
	* gcc.dg/vect/vect-44.c: Likewise.
	* gcc.dg/vect/vect-48.c: Likewise.
	* gcc.dg/vect/vect-50.c: Likewise.
	* gcc.dg/vect/vect-52.c: Likewise.
	* gcc.dg/vect/vect-56.c: Likewise.
	* gcc.dg/vect/vect-60.c: Likewise.
	* gcc.dg/vect/vect-72.c: Likewise.
	* gcc.dg/vect/vect-75-big-array.c: Likewise.
	* gcc.dg/vect/vect-75.c: Likewise.
	* gcc.dg/vect/vect-77-alignchecks.c: Likewise.
	* gcc.dg/vect/vect-77-global.c: Likewise.
	* gcc.dg/vect/vect-78-alignchecks.c: Likewise.
	* gcc.dg/vect/vect-78-global.c: Likewise.
	* gcc.dg/vect/vect-93.c: Likewise.
	* gcc.dg/vect/vect-95.c: Likewise.
	* gcc.dg/vect/vect-96.c: Likewise.
	* gcc.dg/vect/vect-cond-1.c: Likewise.
	* gcc.dg/vect/vect-cond-3.c: Likewise.
	* gcc.dg/vect/vect-cond-4.c: Likewise.
	* gcc.dg/vect/vect-cselim-1.c: Likewise.
	* gcc.dg/vect/vect-multitypes-1.c: Likewise.
	* gcc.dg/vect/vect-multitypes-3.c: Likewise.
	* gcc.dg/vect/vect-multitypes-4.c: Likewise.
	* gcc.dg/vect/vect-multitypes-6.c: Likewise.
	* gcc.dg/vect/vect-nest-cycle-1.c: Likewise.
	* gcc.dg/vect/vect-nest-cycle-2.c: Likewise.
	* gcc.dg/vect/vect-outer-3a-big-array.c: Likewise.
	* gcc.dg/vect/vect-outer-3a.c: Likewise.
	* gcc.dg/vect/vect-outer-5.c: Likewise.
	* gcc.dg/vect/vect-outer-fir-big-array.c: Likewise.
	* gcc.dg/vect/vect-outer-fir-lb-big-array.c: Likewise.
	* gcc.dg/vect/vect-outer-fir-lb.c: Likewise.
	* gcc.dg/vect/vect-outer-fir.c: Likewise.
	* gcc.dg/vect/vect-peel-3.c: Likewise.
	* gcc.dg/vect/vect-peel-4.c: Likewise.
	* gcc.dg/vect/vect-pre-interact.c: Likewise.
	* gcc.target/powerpc/pr65456.c: New test.
	* gcc.target/powerpc/vsx-vectorize-2.c: Exclude test for POWER8.
	* gcc.target/powerpc/vsx-vectorize-4.c: Likewise.
	* gcc.target/powerpc/vsx-vectorize-6.c: Likewise.
	* gcc.target/powerpc/vsx-vectorize-7.c: Likewise.
	* gfortran.dg/vect/vect-2.f90: Replace vect_no_align with
	vect_no_align && { ! vect_hw_misalign }.
	* gfortran.dg/vect/vect-3.f90: Likewise.
	* gfortran.dg/vect/vect-4.f90: Likewise.
	* gfortran.dg/vect/vect-5.f90: Likewise.
	* lib/target-supports.exp (check_effective_target_vect_no_align):
	Return 1 for POWER8.
	(check_effective_target_vect_hw_misalign): Return 1 for POWER8.

From-SVN: r222349
2015-04-23 00:21:39 +00:00
GCC Administrator ed4c75f949 Daily bump.
From-SVN: r222348
2015-04-23 00:16:16 +00:00
Steven G. Kargl 5912da3cd2 re PR fortran/65429 (ICE on implied-length character empty array constructor)
2015-04-22  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/65429
	* decl.c (add_init_expr_to_sym): Set the length type parameter.

	PR fortran/65429
	* gfortran.dg/pr65429.f90: New test.

From-SVN: r222342
2015-04-22 22:43:46 +00:00
Eli Zaretskii ffa176b09b libiberty/setenv.c: Do not declare environ if defined as a macro.
2015-04-22  Eli Zaretskii  <eliz@gnu.org>

        * strerror.c <sys_nerr, sys_errlist>: Declare only if they aren't
        macros.
        * setenv.c <environ>: Declare only if not a macro.

From-SVN: r222335
2015-04-22 19:34:06 +00:00
Bernhard Reutner-Fischer fafb95a6fe Makefile.tpl: Remove surplus whitespace throughout.
2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* Makefile.tpl: Remove surplus whitespace throughout.
	* Makefile.in: Regenerate.

From-SVN: r222334
2015-04-22 20:32:18 +02:00