Commit Graph

54254 Commits

Author SHA1 Message Date
Walter Lee 341c653c70 TILE-Gx big endian support.
/:
	* configure.ac (tilepro-*-*) Change to tilepro*-*-*.
	(tilegx-*-*): Change to tilegx*-*-*.
	* configure: Regenerate.

contrib/:
	* config-list.mk (LIST): Add tilegxbe-linux-gnu.

libcpp/:
	* configure.ac: Change "tilepro" triplet to "tilepro*".
	* configure: Regenerate.

libgcc/:
	* config.host: Support "tilegx*" and "tilepro*" triplets.
	* config/tilegx/sfp-machine32.h (__BYTE_ORDER): Handle big endian.
	* config/tilegx/sfp-machine64.h (__BYTE_ORDER): Handle big endian.

gcc/:
	* config.gcc (tilepro-*-*): Change to tilepro*-*-*.
	(tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
	triplet.
	* common/config/tilegx/tilegx-common.c
	(TARGET_DEFAULT_TARGET_FLAGS): Define.
	* config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
	(LINK_SPEC): Ditto.
	* config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
	* config/tilegx/tilegx.c (tilegx_return_in_msb): New.
	(tilegx_gimplify_va_arg_expr): Handle big endian.
	(tilegx_expand_unaligned_load): Ditto.
	(tilegx_expand_unaligned_store): Ditto.
	(TARGET_RETURN_IN_MSB): New.
	* config/tilegx/tilegx.h (TARGET_DEFAULT): New.
	(TARGET_ENDIAN_DEFAULT): New.
	(TARGET_BIG_ENDIAN): Handle big endian.
	(BYTES_BIG_ENDIAN): Ditto.
	(WORDS_BIG_ENDIAN): Ditto.
	(FLOAT_WORDS_BIG_ENDIAN): Ditto.
	(ENDIAN_SPEC): New.
	(EXTRA_SPECS): New.
	* config/tilegx/tilegx.md (extv): Handle big endian.
	(extzv): Ditto.
	(insn_st<n>): Ditto.
	(insn_st<n>_add<bitsuffix>): Ditto.
	(insn_stnt<n>): Ditto.
	(insn_stnt<n>_add<bitsuffix>):Ditto.
	(vec_interleave_highv8qi): Handle big endian.
	(vec_interleave_highv8qi_be): New.
	(vec_interleave_highv8qi_le): New.
	(insn_v1int_h): Handle big endian.
	(vec_interleave_lowv8qi): Handle big endian.
	(vec_interleave_lowv8qi_be): New.
	(vec_interleave_lowv8qi_le): New.
	(insn_v1int_l): Handle big endian.
	(vec_interleave_highv4hi): Handle big endian.
	(vec_interleave_highv4hi_be): New.
	(vec_interleave_highv4hi_le): New.
	(insn_v2int_h): Handle big endian.
	(vec_interleave_lowv4hi): Handle big endian.
	(vec_interleave_lowv4hi_be): New.
	(vec_interleave_lowv4hi_le): New.
	(insn_v2int_l): Handle big endian.
	(vec_interleave_highv2si): Handle big endian.
	(vec_interleave_highv2si_be): New.
	(vec_interleave_highv2si_le): New.
	(insn_v4int_h): Handle big endian.
	(vec_interleave_lowv2si): Handle big endian.
	(vec_interleave_lowv2si_be): New.
	(vec_interleave_lowv2si_le): New.
	(insn_v4int_l): Handle big endian.
	* config/tilegx/tilegx.opt (mbig-endian): New option.
	(mlittle-endian): New option.
	* doc/install.texi: Document tilegxbe-linux.
	* doc/invoke.texi: Document -mbig-endian and -mlittle-endian.

From-SVN: r208069
2014-02-24 15:08:00 +00:00
Martin Jambor f3fec19fb8 re PR ipa/60266 (ICE: in ipa_get_parm_lattices, at ipa-cp.c:261 during LibreOffice LTO build)
2014-02-24  Martin Jambor  <mjambor@suse.cz>

	PR ipa/60266
	* ipa-cp.c (propagate_constants_accross_call): Bail out early if
	there are no parameter descriptors.

From-SVN: r208067
2014-02-24 13:39:52 +01:00
Andrey Belevantsev 9039622a9d re PR rtl-optimization/60268 (ICE: in rank_for_schedule, at haifa-sched.c:2557)
gcc/

2014-02-24  Andrey Belevantsev  <abel@ispras.ru>

    PR rtl-optimization/60268
    * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
    initialization to ...
    (sched_rgn_init): ... here.
    (schedule_region): Check for SCHED_PRESSURE_NONE earlier.

testsuite/

2014-02-24  Andrey Belevantsev  <abel@ispras.ru>

    PR rtl-optimization/60268
    * gcc.c-torture/compile/pr60268.c: New test.

From-SVN: r208066
2014-02-24 09:57:02 +04:00
David Holsgrove e7e7bc4b97 microblaze.md: Correct ashrsi_reg / lshrsi_reg names
2014-02-23  David Holsgrove <david.holsgrove@xilinx.com>

	* config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg names

From-SVN: r208061
2014-02-23 18:58:40 +00:00
Michael Eager 8011cccab2 [multiple changes]
2014-02-23  Edgar E. Iglesias <edgar.iglesias@xilinx.com>

	* config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
	definition.

2014-02-23  David Holsgrove <david.holsgrove@xilinx.com>

	* gcc/testsuite/gcc.target/microblaze/others/mem_reload.c: New test.

From-SVN: r208059
2014-02-23 18:53:47 +00:00
David Holsgrove c332c7df48 microblaze.c: Add microblaze_asm_output_mi_thunk and define TARGET_ASM_OUTPUT_MI_THUNK and...
2014-02-23  David Holsgrove <david.holsgrove@xilinx.com>

	* /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk
	and define TARGET_ASM_OUTPUT_MI_THUNK and
	TARGET_ASM_CAN_OUTPUT_MI_THUNK.

From-SVN: r208057
2014-02-23 18:44:27 +00:00
David Holsgrove d5a19af1be predicates.md: Add cmp_op predicate.
2014-02-23  David Holsgrove <david.holsgrove@xilinx.com>

	* config/microblaze/predicates.md: Add cmp_op predicate.
	* config/microblaze/microblaze.md: Add branch_compare instruction 
	which uses cmp_op predicate and emits cmp insn before branch.
	* config/microblaze/microblaze.c (microblaze_emit_compare): Rename 
	to microblaze_expand_conditional_branch and consolidate logic.
	(microblaze_expand_conditional_branch): emit branch_compare
	insn instead of handling cmp op separate from branch insn.

From-SVN: r208055
2014-02-23 18:36:38 +00:00
Bill Schmidt 34c25d2393 rs6000.c (rs6000_emit_le_vsx_move): Relax assert to permit subregs.
2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
	to permit subregs.

From-SVN: r208052
2014-02-23 16:28:32 +00:00
Bill Schmidt a6eecdc172 altivec.md (altivec_lve<VI_char>x): Replace define_insn with define_expand and new define_insn...
gcc:

2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
	define_insn with define_expand and new define_insn
	*altivec_lve<VI_char>x_internal.
	(altivec_stve<VI_char>x): Replace define_insn with define_expand
	and new define_insn *altivec_stve<VI_char>x_internal.
	* config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
	prototype.
	* config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
	lve*x built-ins.
	(altivec_expand_stvex_be): New function.

gcc/testsuite:

2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.dg/vmx/lde.c: New test.
	* gcc.dg/vmx/lde-be-order.c: New test.
	* gcc.dg/vmx/ste.c: New test.
	* gcc.dg/vmx/ste-be-order.c: New test.

From-SVN: r208049
2014-02-23 15:27:48 +00:00
Joern Rennecke 8aa7d1fc65 avr.c (avr_can_eliminate): Allow elimination from ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if...
* config/avr/avr.c (avr_can_eliminate): Allow elimination from
        ARG_POINTER_REGNUM
        to STACK_POINTER_REGNUM if !frame_pointer_needed.
        * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
        ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.

From-SVN: r208045
2014-02-22 20:24:08 +00:00
Vladimir Makarov a810ee8207 re PR target/60298 ([ARM/Thumb1] ICE caused by LRA for case pr54713-1.c)
2014-02-21  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/60298
	* lra-constraints.c (inherit_reload_reg): Use lra_emit_move
	instead of emit_move_insn.

From-SVN: r208023
2014-02-21 21:23:48 +00:00
Bill Schmidt b90ab1ba8c altivec.md (altivec_vsumsws): Replace second vspltw with vsldoi.
gcc:

2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/altivec.md (altivec_vsumsws): Replace second
	vspltw with vsldoi.
	(reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
	gen_altivec_vsumsws.

gcc/testsuite:

2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.dg/vmx/vsums.c: Check entire result vector.
	* gcc.dg/vmx/vsums-be-order.c: Likewise.

From-SVN: r208021
2014-02-21 21:01:01 +00:00
William Schmidt 1af73690cd altivec.md (altivec_lvxl): Rename as *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
gcc:

2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/altivec.md (altivec_lvxl): Rename as
	*altivec_lvxl_<mode>_internal and use VM2 iterator instead of
	V4SI.
	(altivec_lvxl_<mode>): New define_expand incorporating
	-maltivec=be semantics where needed.
	(altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
	(altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
	semantics where needed.
	(altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
	(altivec_stvx_<mode>): New define_expand incorporating
	-maltivec=be semantics where needed.
	(altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
	VM2 iterator instead of V4SI.
	(altivec_stvxl_<mode>): New define_expand incorporating
	-maltivec=be semantics where needed.
	* config/rs6000/rs6000-builtin.def: Add new built-in definitions
	LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
	LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI,
	STVX_V2DF, STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI,
	STVXL_V2DF, STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI,
	STVXL_V16QI.
	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
	ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
	similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
	ALTIVEC_BUILTIN_STVXL.
	* config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New
	prototype.
	(altivec_expand_stvx_be): Likewise.
	* config/rs6000/rs6000.c (swap_selector_for_mode): New function.
	(altivec_expand_lvx_be): Likewise.
	(altivec_expand_stvx_be): Likewise.
	(altivec_expand_builtin): Add cases for
	ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
	ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
	(altivec_init_builtins): Add definitions for
	__builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
	__builtin_altivec_stvx_<mode>, and
	__builtin_altivec_stvxl_<mode>.


gcc/testsuite:

2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.dg/vmx/ld.c: New test.
	* gcc.dg/vmx/ld-be-order.c: New test.
	* gcc.dg/vmx/ld-vsx.c: New test.
	* gcc.dg/vmx/ld-vsx-be-order.c: New test.
	* gcc.dg/vmx/ldl.c: New test.
	* gcc.dg/vmx/ldl-be-order.c: New test.
	* gcc.dg/vmx/ldl-vsx.c: New test.
	* gcc.dg/vmx/ldl-vsx-be-order.c: New test.
	* gcc.dg/vmx/st.c: New test.
	* gcc.dg/vmx/st-be-order.c: New test.
	* gcc.dg/vmx/st-vsx.c: New test.
	* gcc.dg/vmx/st-vsx-be-order.c: New test.
	* gcc.dg/vmx/stl.c: New test.
	* gcc.dg/vmx/stl-be-order.c: New test.
	* gcc.dg/vmx/stl-vsx.c: New test.
	* gcc.dg/vmx/stl-vsx-be-order.c: New test.

From-SVN: r208018
2014-02-21 20:45:09 +00:00
Catherine Moore 0a39d07b81 invoke.texi (mvirt, mno-virt): Document.
2014-02-21  Catherine Moore  <clm@codesourcery.com>

	* doc/invoke.texi (mvirt, mno-virt): Document.
	* config/mips/mips.opt (mvirt): New option.
	* config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.

From-SVN: r207993
2014-02-21 08:30:47 -05:00
Richard Biener f2556b68ca re PR tree-optimization/60276 (-O3 autovectorizer breaks on a particular loop)
2014-02-21  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/60276
	* tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
	(STMT_VINFO_MIN_NEG_DIST): New macro.
	* tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
	STMT_VINFO_MIN_NEG_DIST.
	* tree-vect-stmts.c (vectorizable_load): Verify if assumptions
	made for negative dependence distances still hold.

	* gcc.dg/vect/pr60276.c: New testcase.

From-SVN: r207992
2014-02-21 13:18:54 +00:00
Richard Biener 32417082bf re PR middle-end/60291 (slow compile times for any mode (-O0/-O1/-O2) on large .c source file (30MBs))
2014-02-21  Richard Biener  <rguenther@suse.de>

	PR middle-end/60291
	* tree-ssa-live.c (mark_all_vars_used_1): Do not walk
	DECL_INITIAL for globals not in the current function context.

From-SVN: r207991
2014-02-21 13:14:23 +00:00
Jakub Jelinek 92261ce01d re PR tree-optimization/56490 (-Wall triggering infinite loop)
PR tree-optimization/56490
	* params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
	* tree-ssa-uninit.c: Include params.h.
	(compute_control_dep_chain): Add num_calls argument, return false
	if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
	num_calls to recursive call.
	(find_predicates): Change dep_chain into normal array,
	cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
	variable and adjust compute_control_dep_chain caller.
	(find_def_preds): Likewise.

From-SVN: r207988
2014-02-21 10:53:56 +01:00
Thomas Schwinge aa6ef87451 Correct TDF_RAW pretty-printing of GIMPLE_OMP_FOR's GF_OMP_FOR_KIND_CILKSIMD.
gcc/
	* gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
	<case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.

From-SVN: r207987
2014-02-21 10:18:15 +01:00
Nick Clifton 4b156fd025 stormy16.md (pushdqi1): Add mode to post_inc.
* config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
	(pushhi1): Likewise.
	(popqi1): Add mode to pre_dec.
	(pophi1): Likewise.

From-SVN: r207984
2014-02-21 08:11:10 +00:00
Jakub Jelinek dffd569eab i386.c (ix86_expand_vec_perm): Use V8SImode mode for mask of V8SFmode permutation.
* config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
	mode for mask of V8SFmode permutation.

From-SVN: r207981
2014-02-21 08:48:07 +01:00
Richard Henderson 2fdc29e8c7 re PR c++/60272 (atomic<>::compare_exchange_weak has spurious store and can cause race conditions)
PR c++/60272

        * builtins.c (expand_builtin_atomic_compare_exchange): Always make
        a new pseudo for OLDVAL.

From-SVN: r207972
2014-02-20 16:11:43 -08:00
Jakub Jelinek aa637f667f re PR target/57896 (ICE in expand_expr_real_2)
PR target/57896
	* config/i386/i386.c (expand_vec_perm_interleave2): Don't call
	gen_reg_rtx if d->testing_p.
	(expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
	if d->testing_p and we will certainly return true.
	(expand_vec_perm_even_odd_1): Likewise.  Don't call gen_reg_rtx
	if d->testing_p.

From-SVN: r207969
2014-02-20 21:39:46 +01:00
Uros Bizjak 004a7e45c6 emit-rtl.c (gen_reg_rtx): Assert that crtl->emit.regno_pointer_align_length is non-zero.
* emit-rtl.c (gen_reg_rtx): Assert that
	crtl->emit.regno_pointer_align_length is non-zero.

From-SVN: r207968
2014-02-20 21:21:42 +01:00
Richard Henderson 672ce9397b re PR c++/60272 (atomic<>::compare_exchange_weak has spurious store and can cause race conditions)
PR c++/60272

gcc/
	* builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
	on failure the store back into EXPECT.
libatomic/
	* cas_n.c (libat_compare_exchange): Conditionalize on failure
	the store back to EPTR.

From-SVN: r207966
2014-02-20 09:43:53 -08:00
Chung-Lin Tang 95ce7613d5 nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
2014-02-20  Chung-Lin Tang  <cltang@codesourcery.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
	* config/nios2/nios2.c (nios2_function_profiler):
	Add -fPIC (flag_pic == 2) support.
	(nios2_handle_custom_fpu_cfg): Fix warning parameter.
	(nios2_large_offset_p): New function.
	(nios2_unspec_reloc_p): Move up position, update to use
	nios2_large_offset_p.
	(nios2_unspec_address): Remove function.
	(nios2_unspec_offset): New function.
	(nios2_large_got_address): New function.
	(nios2_got_address): Add large offset support.
	(nios2_legitimize_tls_address): Update usage of removed and new
	functions.
	(nios2_symbol_binds_local_p): New function.
	(nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
	(nios2_legitimize_address): Update to use nios2_large_offset_p.
	(nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
	(nios2_print_operand): Merge H/L processing, add hiadj/lo
	processing for (const (unspec ...)).
	(nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.

	gcc/testsuite/
	* gcc.target/nios2/biggot-1.c: New.
	* gcc.target/nios2/biggot-2.c: New.

	libgcc/
	* config/nios2/t-nios2 (CRTSTUFF_T_CFLAGS): Add -mno-gpopt.
	* config/nios2/crti.S: Remove .file directive.
	* config/nios2/crtn.S: Likewise.

From-SVN: r207965
2014-02-20 16:35:10 +00:00
Richard Biener efd2d3c8c4 tree-cfg.c (replace_uses_by): Mark altered BBs before doing the substitution.
2014-02-20  Richard Biener  <rguenther@suse.de>

	* tree-cfg.c (replace_uses_by): Mark altered BBs before
	doing the substitution.
	(verify_gimple_assign_single): Also verify bare MEM_REFs
	on the lhs.

From-SVN: r207958
2014-02-20 14:56:27 +00:00
Martin Jambor 9576e7b112 re PR tree-optimization/55260 (ICE: in ipa_get_parm_lattices, at ipa-cp.c:263 with -O2 -fno-inline -fipa-cp-clone)
2014-02-20  Martin Jambor  <mjambor@suse.cz>

	PR ipa/55260
	* ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
	info when checking whether lattices are bottom.

testsuite/
	* gcc.dg/ipa/pr55260.c: New test.

From-SVN: r207941
2014-02-20 14:28:34 +01:00
Richard Biener 25fe40b0f2 re PR middle-end/60221 (gcc -fexceptions generates unnecessary cleanup code)
2014-02-20  Richard Biener  <rguenther@suse.de>

	PR middle-end/60221
	* tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
	regions at -O0.

From-SVN: r207937
2014-02-20 09:00:23 +00:00
Jan Hubicka bd93695145 re PR middle-end/58555 (Floating point exception in want_inline_self_recursive_call_p)
PR ipa/58555
	* ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale parameter
	specifying the scaling.
	(inline_call): Update.
	(want_inline_recursively): Guard division by zero.
	(recursive_inlining): Update.
	* ipa-inline.h (clone_inlined_nodes): Update.
	* testsuite/g++.dg/torture/pr58555.C: New testcase.

From-SVN: r207934
2014-02-20 06:40:07 +00:00
Ilya Tocar 3c898e1acb re PR target/60204 (struct with __m512i is mishandled in function parameter passing and return)
gcc/
	PR target/60204
	* config/i386/i386.c (classify_argument): Pass structures of size
	64 bytes or less in register.

tessuite/gcc/
	PR target/60204
	* gcc.target/x86_64/abi/avx512f/test_passing_structs.c: Update to
	reflect abi fix.
	* gcc.target/x86_64/abi/avx512f/test_passing_unions.c: Ditto.

From-SVN: r207933
2014-02-20 06:32:21 +00:00
Ilya Tocar df62b4af2e avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
gcc/
	* config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
	(_mm_rcp28_round_ss): Ditto.
	(_mm_rsqrt28_round_sd): Ditto.
	(_mm_rsqrt28_round_ss): Ditto.
	* config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
	(_mm_rcp14_round_ss): Ditto.
	(_mm_rsqrt14_round_sd): Ditto.
	(_mm_rsqrt14_round_ss): Ditto.
	* config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
	the first input operand, get rid of match_dup.
	(avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
	attribute to sse.
	(<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
	Ditto.
	(avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
	operand as the first input operand, set type attribute.
	(<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
	Set type attribute.
	(avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
	operand as the first input operand, set type attribute.


testsuite/gcc/
	* gcc.target/i386/avx512er-vrcp28sd-2.c: Distinguish src1 and src2.
	* gcc.target/i386/avx512er-vrcp28ss-2.c: Call correct intrinsic.
	* gcc.target/i386/avx512er-vrsqrt28sd-2.c: Distinguish src1 and src2.
	* gcc.target/i386/avx512er-vrsqrt28ss-2.c: Ditto.
	* gcc.target/i386/avx512f-vrcp14sd-2.c: Fix reference calculation.
	* gcc.target/i386/avx512f-vrcp14ss-2.c: Fix reference calculation.


Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>

From-SVN: r207932
2014-02-20 06:26:38 +00:00
Bill Schmidt 9254148e5b rs6000.c (vspltis_constant): Fix most significant bit of zero.
2014-02-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (vspltis_constant): Fix most significant
	bit of zero.

From-SVN: r207919
2014-02-19 19:43:13 +00:00
H.J. Lu fff917933f Remove TFmode check for X86_64_INTEGER_CLASS
PR target/60207
	* config/i386/i386.c (construct_container): Remove TFmode check
	for X86_64_INTEGER_CLASS.

From-SVN: r207913
2014-02-19 10:10:04 -08:00
Uros Bizjak 6aa5b4b87e re PR target/59794 (i386 backend fails to detect MMX/SSE/AVX ABI changes)
PR target/59794
	* config/i386/i386.c (type_natural_mode): Warn for ABI changes
	only when -Wpsabi is enabled.

testsuite/ChangeLog:

	PR target/59794
	* gcc.target/i386/pr39162.c: Add dg-prune-output.
	(dg-options): Remove -Wno-psabi.
	* gcc.target/i386/59794-2.c: Ditto.
	* gcc.target/i386/60205-1.c: Ditto.
	* gcc.target/i386/sse-5.c: Ditto.

From-SVN: r207910
2014-02-19 16:53:59 +01:00
Michael Hudson-Doyle aadc1c4315 re PR target/59799 (aarch64_pass_by_reference never passes arrays by value, contrary to ABI documentation)
2014-02-19  Michael Hudson-Doyle  <michael.hudson@linaro.org>

	 PR target/59799
	* config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
	passing arrays in registers are the same as for structs, so remove the
	special case for them.

From-SVN: r207908
2014-02-19 15:32:54 +00:00
Eric Botcazou 322913f876 expr.c (expand_expr_real_1): For a bit-field destination type...
* expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
	destination type, extract only the valid bits if the source type is not
	integral and has a different mode.

From-SVN: r207902
2014-02-19 14:45:16 +00:00
Richard Biener fd9710dc68 re PR ipa/60243 (IPA is slow on large cgraph tree)
2014-02-19  Richard Biener  <rguenther@suse.de>

	PR ipa/60243
	* tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
	for all calls.

From-SVN: r207899
2014-02-19 14:25:47 +00:00
Richard Biener 4df65a8590 re PR ipa/60243 (IPA is slow on large cgraph tree)
2014-02-19  Richard Biener  <rguenther@suse.de>

	PR ipa/60243
	* ipa-prop.c: Include stringpool.h and tree-ssanames.h.
	(ipa_modify_call_arguments): Emit an argument load explicitely and
	preserve virtual SSA form there and for the replacement call.
	Do not update SSA form nor free dominance info.

From-SVN: r207879
2014-02-19 09:29:34 +00:00
Jan Hubicka 7fea98d8cf ipa.c (function_and_variable_visibility): Also clear WEAK flag when disolving COMDAT_GROUP.
* ipa.c (function_and_variable_visibility): Also clear WEAK
	flag when disolving COMDAT_GROUP.

From-SVN: r207878
2014-02-19 07:45:00 +00:00
Jan Hubicka 0a2550e705 ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
* ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
	* ipa-prop.c (ipa_set_jf_known_type): Return early when
	not devirtualizing.
	(ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
	do more sanity checks.
	(detect_type_change): Return true when giving up early.
	(compute_complex_assign_jump_func): Fix type parameter of
	ipa_set_ancestor_jf.
	(compute_complex_ancestor_jump_func): Likewise.
	(update_jump_functions_after_inlining): Fix updating of
	ancestor function.
	* ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type
	to be NULL.

From-SVN: r207877
2014-02-19 07:42:06 +00:00
Jan Hubicka 2dbe8b7088 cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove inline clones when edge disappears.
* cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
	inline clones when edge disappears.

From-SVN: r207875
2014-02-19 07:33:45 +00:00
Michael Meissner b9809dc4cf re PR target/60203 (Support long double/_Decimal128 direct move on power8)
2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/60203
	* config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
	Split 64-bit moves into 2 patterns.  Do not allow the use of
	direct move for TDmode in little endian, since the decimal value
	has little endian bytes within a word, but the 64-bit pieces are
	ordered in a big endian fashion, and normal subreg's of TDmode are
	not allowed.
	(mov<mode>_64bit_dm): Likewise.
	(movtd_64bit_nodm): Likewise.

From-SVN: r207868
2014-02-19 02:14:17 +00:00
Eric Botcazou bababbfb57 re PR tree-optimization/60174 (ICE on ACATS cc3305a)
PR tree-optimization/60174
	* tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
	statement of an SSA_NAME that occurs in an abnormal PHI node.

From-SVN: r207859
2014-02-18 23:15:27 +00:00
Jakub Jelinek 70aacc9798 re PR sanitizer/60142 ([asan] -fsanitize=address breaks debugging - stepping into functions no longer possible)
PR sanitizer/60142
	* final.c (SEEN_BB): Remove.
	(SEEN_NOTE, SEEN_EMITTED): Renumber.
	(final_scan_insn): Don't force_source_line on second
	NOTE_INSN_BASIC_BLOCK.

From-SVN: r207853
2014-02-18 22:16:21 +01:00
Uros Bizjak 223cdd1548 re PR target/60205 (No ABI warning for AVX-512)
PR target/60205
	* config/i386/i386.h (struct ix86_args): Add warn_avx512f.
	* config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
	(type_natural_mode): Warn ABI change when %zmm register is not
	available for AVX512F vector value passing.

testsuite/ChangeLog:

	PR target/60205
	* gcc.target/i386/pr60205-1.c: New test.
	* gcc.target/i386/pr60205-2.c: Ditto.

From-SVN: r207851
2014-02-18 19:55:35 +01:00
Kai Tietz 48810be0cd re PR target/60193 (ICE on big nested frame)
2014-02-18  Kai Tietz  <ktietz@redhat.com>

	PR target/60193
	* config/i386/i386.c (ix86_expand_prologue): Use
	rax register as displacement for restoring %r10, %rax.
	Additional fix wrong offset for restoring both-registers.

2014-02-18  Kai Tietz  <ktietz@redhat.com>

	PR target/60193
	* gcc.target/i386/nest-1.c: New testcase.

From-SVN: r207844
2014-02-18 13:49:15 +01:00
Eric Botcazou 20afe6403b ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous assertion with conditional return.
* ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
	assertion with conditional return.

From-SVN: r207838
2014-02-18 11:07:34 +00:00
Jakub Jelinek d0b50387bc re PR driver/60233 (AVX instructions emitted with -march=native on host without AVX support)
PR driver/60233
	* config/i386/driver-i386.c (host_detect_local_cpu): If
	YMM state is not saved by the OS, also clear has_f16c.  Move
	CPUID 0x80000001 handling before YMM state saving checking.

Co-Authored-By: Uros Bizjak <ubizjak@gmail.com>

From-SVN: r207833
2014-02-18 08:19:46 +01:00
Andrey Belevantsev c4cd7435e4 re PR rtl-optimization/58960 (ICE in bmp_iter_set_init)
PR rtl-optimization/58960
        * haifa-sched.c (alloc_global_sched_pressure_data): New,
        factored out from ...
        (sched_init): ... here.
        (free_global_sched_pressure_data): New, factored out from ...
        (sched_finish): ... here.
        * sched-int.h (free_global_sched_pressure_data): Declare.
        * sched-rgn.c (nr_regions_initial): New static global.
        (haifa_find_rgns): Initialize it.
        (schedule_region): Disable sched-pressure for the newly
        generated regions.

From-SVN: r207832
2014-02-18 09:41:29 +04:00
Richard Biener f0281fde20 tree-vect-stmts.c (free_stmt_vec_info): Clear BB and release SSA defs of pattern stmts.
2014-02-17  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
	release SSA defs of pattern stmts.

From-SVN: r207826
2014-02-17 15:34:03 +00:00