Commit Graph

133612 Commits

Author SHA1 Message Date
Jiong Wang 07792ca2cb [ARM] revert changes on check_effective_target_arm_*_ok
gcc/testsuite/
    * lib/target-supports.exp
    (check_effective_target_arm_crypto_ok_nocache): Remove declaration for
    vaeseq_u8.
    (check_effective_target_arm_neon_fp16_ok_nocache): Remove declaration for
    vcvt_f16_f32.
    (check_effective_target_arm_neonv2_ok_nocache): Remove declaration for
    vfma_f32.

From-SVN: r216663
2014-10-24 12:06:37 +00:00
Martin Liska 59f084e034 re PR tree-optimization/63595 (Segmentation faults inside kernel)
Fix for PR63595

	* gcc.dg/ipa/pr63595.c: New test.
	* ipa-icf.c (sem_function::compare_phi_node): PHI result comparison

From-SVN: r216662
2014-10-24 11:57:58 +00:00
Christophe Lyon 237d8521e9 vuzp.c: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vuzp.c: New file.
	* gcc.target/aarch64/advsimd-intrinsics/vzip.c: Likewise.

From-SVN: r216661
2014-10-24 13:54:30 +02:00
Christophe Lyon 1307a95bc3 vmul.c: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vmul.c: New file.

From-SVN: r216660
2014-10-24 13:54:06 +02:00
Christophe Lyon 1933a62797 vldX_lane.c: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vldX_lane.c: New file.

From-SVN: r216659
2014-10-24 13:53:29 +02:00
Christophe Lyon fd8806d544 vldX.c: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vldX.c: New file.

From-SVN: r216658
2014-10-24 13:53:04 +02:00
Christophe Lyon a23001f677 vld1_dup.c: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vld1_dup.c: New file.

From-SVN: r216657
2014-10-24 13:52:40 +02:00
Christophe Lyon 2191f6602f vdup-vmov.c: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vdup-vmov.c: New file.

From-SVN: r216656
2014-10-24 13:52:16 +02:00
Christophe Lyon e323628e6b vclz.c: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vclz.c: New file.

From-SVN: r216655
2014-10-24 13:51:47 +02:00
Christophe Lyon fd731cf95b vbsl.c: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vbsl.c: New file.

From-SVN: r216654
2014-10-24 13:51:19 +02:00
Christophe Lyon 3a453a5cff vaddw.c: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vaddw.c: New file.

From-SVN: r216653
2014-10-24 13:50:51 +02:00
Christophe Lyon 8e8c7a8ab1 vaddl.c: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vaddl.c: New file.

From-SVN: r216652
2014-10-24 13:50:24 +02:00
Christophe Lyon b3f5379954 vaddhn.c: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vaddhn.c: New file.

From-SVN: r216651
2014-10-24 13:49:59 +02:00
Christophe Lyon b46684ac1b vabdl.c: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vabdl.c: New file.

From-SVN: r216650
2014-10-24 13:49:10 +02:00
Christophe Lyon bafbb90b5c vabd.c: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vabd.c: New file.

From-SVN: r216649
2014-10-24 13:48:34 +02:00
Christophe Lyon 295dde9412 vabal.c: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/vabal.c: New file.

From-SVN: r216648
2014-10-24 13:47:49 +02:00
Christophe Lyon f59574a1c4 binary_sat_op.inc: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/binary_sat_op.inc: New
	file.
	* gcc.target/aarch64/advsimd-intrinsics/vqadd.c: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vqsub.c: Likewise.

From-SVN: r216647
2014-10-24 13:47:21 +02:00
Christophe Lyon 56900c9c77 unary_sat_op.inc: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/unary_sat_op.inc: New
	file.
	* gcc.target/aarch64/advsimd-intrinsics/vqabs.c: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vqneg.c: Likewise.

From-SVN: r216646
2014-10-24 13:46:47 +02:00
Christophe Lyon c91f3ac1ff cmp_fp_op.inc: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/cmp_fp_op.inc: New file.
	* gcc.target/aarch64/advsimd-intrinsics/vcage.c: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vcagt.c: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vcale.c: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vcalt.c: Likewise.

From-SVN: r216645
2014-10-24 13:46:04 +02:00
Christophe Lyon ed9f6694fa cmp_op.inc: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/cmp_op.inc: New file.
	* gcc.target/aarch64/advsimd-intrinsics/vceq.c: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vcge.c: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vcgt.c: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vcle.c: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vclt.c: Likewise.

From-SVN: r216644
2014-10-24 13:45:24 +02:00
Christophe Lyon 25b0d373ba binary_op.inc: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/binary_op.inc: New file.
	* gcc.target/aarch64/advsimd-intrinsics/vadd.c: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vand.c: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vbic.c: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/veor.c: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vorn.c: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vorr.c: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vsub.c: Likewise.

From-SVN: r216643
2014-10-24 13:44:44 +02:00
Christophe Lyon a5d9f9d388 unary_op.inc: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/aarch64/advsimd-intrinsics/unary_op.inc: New file.
	* gcc.target/aarch64/advsimd-intrinsics/vabs.c: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vneg.c: Likewise.

From-SVN: r216642
2014-10-24 13:42:09 +02:00
Christophe Lyon 2f46a9cd83 Add new files missing from previous commit.
From-SVN: r216641
2014-10-24 13:40:58 +02:00
Christophe Lyon 16ad00b00a README.advsimd-intrinsics: New file.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/arm/README.advsimd-intrinsics: New file.
	* gcc.target/aarch64/advsimd-intrinsics/README: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/compute-ref-data.h:
	Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/advsimd-intrinsics.exp:
	Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vaba.c: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vld1.c: Likewise.
	* gcc.target/aarch64/advsimd-intrinsics/vshl.c: Likewise.

From-SVN: r216640
2014-10-24 13:38:51 +02:00
Kyrylo Tkachov bc50815a52 [AArch64] LINK_SPEC changes for Cortex-A53 erratum 835769 workaround
* config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define.
     (LINK_SPEC): Include CA53_ERR_835769_SPEC.
     * config/aarch64/aarch64-linux.h (CA53_ERR_835769_SPEC): Define.
     (LINK_SPEC): Include CA53_ERR_835769_SPEC.

From-SVN: r216639
2014-10-24 11:32:40 +00:00
Christophe Lyon 84a34193c2 wrapper.exp ({tool}_maybe_build_wrapper): Clear wrap_compile_flags before setting it.
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* lib/wrapper.exp ({tool}_maybe_build_wrapper): Clear
	wrap_compile_flags before setting it.

From-SVN: r216638
2014-10-24 13:32:05 +02:00
Kyrylo Tkachov 8baff86e56 [AArch64] Cleanup logic around aarch64_final_prescan
* config/aarch64/aarch64.h (ADJUST_INSN_LENGTH): Wrap definition in
	do while (0).
	* config/aarch64/aarch64.c (is_mem_p): Delete.
	(is_memory_op): Rename to...
	(has_memory_op): ... This.  Use FOR_EACH_SUBRTX.
	(dep_between_memop_and_curr): Assert that the input is a SET.
	(aarch64_madd_needs_nop): Add comment.  Do not call
	dep_between_memop_and_curr on NULL body.
	(aarch64_final_prescan_insn): Add comment.
	Include rtl-iter.h.

From-SVN: r216637
2014-10-24 11:30:42 +00:00
Richard Biener 1f59b31508 Makefile.in (BUILD_CPPLIB): Move $(LIBINTL) $(LIBICONV) to genmatch BUILD_LIBS instead.
2014-10-24  Richard Biener  <rguenther@suse.de>

	* Makefile.in (BUILD_CPPLIB): Move $(LIBINTL) $(LIBICONV)
	to genmatch BUILD_LIBS instead.

From-SVN: r216632
2014-10-24 11:09:30 +00:00
Richard Biener e0ee10ed5a genmatch.c (expr::gen_transform): Use fold_buildN_loc and build_call_expr_loc.
2014-10-24  Richard Biener  <rguenther@suse.de>

	* genmatch.c (expr::gen_transform): Use fold_buildN_loc
	and build_call_expr_loc.
	(dt_simplify::gen): Drop non_lvalue for GIMPLE, use
	non_lvalue_loc to build it for GENERIC.
	(decision_tree::gen_generic): Add location argument to
	generic_simplify prototype.
	(capture_info): New class.
	(capture_info::capture_info): New constructor.
	(capture_info::walk_match): New method.
	(capture_info::walk_result): New method.
	(capture_info::walk_c_expr): New method.
	(dt_simplify::gen): Handle preserving side-effects for
	GENERIC code generation.
	(decision_tree::gen_generic): Do not reject operands
	with TREE_SIDE_EFFECTS.
	* generic-match.h: New file.
	* generic-match-head.c: Include generic-match.h, not gimple-match.h.
	* match.pd: Add some constant folding patterns from fold-const.c.
	* fold-const.c: Include generic-match.h.
	(fold_unary_loc): Dispatch to generic_simplify.
	(fold_ternary_loc): Likewise.
	(fold_binary_loc): Likewise.  Remove patterns now implemented
	by generic_simplify.
	* gimple-fold.c (replace_stmt_with_simplification): New function.
	(fold_stmt_1): Add valueize parameter, dispatch to gimple_simplify.
	(no_follow_ssa_edges): New function.
	(fold_stmt): New overload with valueization hook.  Use
	no_follow_ssa_edges for the overload without hook.
	(fold_stmt_inplace): Likewise.
	* gimple-fold.h (no_follow_ssa_edges): Declare.

From-SVN: r216631
2014-10-24 11:00:08 +00:00
Felix Yang 77efea3120 re PR target/63173 (performance problem with simd intrinsics vld2_dup_* on aarch64-none-elf)
PR target/63173
        * config/aarch64/arm_neon.h (__LD2R_FUNC): Remove macro.
        (__LD3R_FUNC): Ditto.
        (__LD4R_FUNC): Ditto.
        (vld2_dup_s8, vld2_dup_s16, vld2_dup_s32, vld2_dup_f32, vld2_dup_f64,
         vld2_dup_u8, vld2_dup_u16, vld2_dup_u32, vld2_dup_p8, vld2_dup_p16
         vld2_dup_s64, vld2_dup_u64, vld2q_dup_s8, vld2q_dup_p8, 
         vld2q_dup_s16, vld2q_dup_p16, vld2q_dup_s32, vld2q_dup_s64, 
         vld2q_dup_u8, vld2q_dup_u16, vld2q_dup_u32, vld2q_dup_u64 
         vld2q_dup_f32, vld2q_dup_f64): Rewrite using builtin functions.
        (vld3_dup_s64, vld3_dup_u64, vld3_dup_f64, vld3_dup_s8 
         vld3_dup_p8, vld3_dup_s16, vld3_dup_p16, vld3_dup_s32 
         vld3_dup_u8, vld3_dup_u16, vld3_dup_u32, vld3_dup_f32
         vld3q_dup_s8, vld3q_dup_p8, vld3q_dup_s16, vld3q_dup_p16 
         vld3q_dup_s32, vld3q_dup_s64, vld3q_dup_u8, vld3q_dup_u16 
         vld3q_dup_u32, vld3q_dup_u64, vld3q_dup_f32, vld3q_dup_f64): Likewise.
        (vld4_dup_s64, vld4_dup_u64, vld4_dup_f64, vld4_dup_s8 
         vld4_dup_p8, vld4_dup_s16, vld4_dup_p16, vld4_dup_s32 
         vld4_dup_u8, vld4_dup_u16, vld4_dup_u32, vld4_dup_f32 
         vld4q_dup_s8, vld4q_dup_p8, vld4q_dup_s16, vld4q_dup_p16 
         vld4q_dup_s32, vld4q_dup_s64, vld4q_dup_u8, vld4q_dup_u16 
         vld4q_dup_u32, vld4q_dup_u64, vld4q_dup_f32, vld4q_dup_f64): Likewise.
        * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
        UNSPEC_LD2_DUP, UNSPEC_LD3_DUP, UNSPEC_LD4_DUP.
        * config/aarch64/aarch64-simd-builtins.def (ld2r, ld3r, ld4r): New
        builtins.
        * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>): New pattern.
        (aarch64_simd_ld3r<mode>): Likewise.
        (aarch64_simd_ld4r<mode>): Likewise.
        (aarch64_ld2r<mode>): New expand.
        (aarch64_ld3r<mode>): Likewise.
        (aarch64_ld4r<mode>): Likewise.

Co-Authored-By: Jiji Jiang <jiangjiji@huawei.com>

From-SVN: r216630
2014-10-24 10:53:08 +00:00
Rainer Orth e7d8c7020c Fix gcc.dg/pr63594-1.c execution on Solaris/x86
* gcc.dg/pr63594-1.c: Apply -mno-mmx to all i?86-*-* and x86_64-*-*
        targets.
        * gcc.dg/pr63594-2.c: Likewise.

From-SVN: r216629
2014-10-24 09:09:43 +00:00
Uros Bizjak a48acecb8f 980217-1.c (main): Fix implicit int.
* gcc.target/alpha/980217-1.c (main): Fix implicit int.
	* gcc.target/alpha/pr19518.c (_mm_setzero_si64): New function.

From-SVN: r216627
2014-10-24 10:58:42 +02:00
Daniel Hellstrom c7a6a6170d MAINTAINERS (write-after-approval): Add myself.
2014-10-24  Daniel Hellstrom  <daniel@gaisler.com>

	* MAINTAINERS (write-after-approval): Add myself.

From-SVN: r216626
2014-10-24 10:52:20 +02:00
Maxim Kuvyrkov 948cd9a565 Handle SCRATCH in decompose_address
* rtlanal.c (get_base_term): Handle SCRATCH.

From-SVN: r216624
2014-10-24 08:23:01 +00:00
Maxim Kuvyrkov d205caad22 Disable max_issue when scheduling for register pressure
* haifa-sched.c (sched_init): Disable max_issue when scheduling for
	register pressure.

From-SVN: r216623
2014-10-24 08:22:49 +00:00
Maxim Kuvyrkov 8aec463b10 Remove cached_first_cycle_multipass_dfa_lookahead and cached_issue_rate
* haifa-sched.c (cached_first_cycle_multipass_dfa_lookahead,)
	(cached_issue_rate): Remove.  Use dfa_lookahead and issue_rate instead.
	(max_issue, choose_ready, sched_init): Update.

From-SVN: r216622
2014-10-24 08:22:37 +00:00
Maxim Kuvyrkov b75ae7f422 Improve scheduler dumps of ready list
* sched-int.h (struct _haifa_insn_data:last_rfs_win): New field.
	* haifa-sched.c (INSN_LAST_RFS_WIN): New access macro.
	(rfs_result): Set INSN_LAST_RFS_WIN.  Update signature.
	(rank_for_schedule): Update calls to rfs_result to pass new parameters.
	(print_rank_for_schedule_stats): Print out elements of ready list that
	ended up on their respective places due to each of the sorting
	heuristics.
	(ready_sort): Update.
	(debug_ready_list_1): Improve printout for SCHED_PRESSURE_MODEL.
	(schedule_block): Update.

From-SVN: r216621
2014-10-24 08:22:24 +00:00
Maxim Kuvyrkov 4dd9ac6c94 Account for prologue spills in reg_pressure scheduling
* haifa-sched.c (sched_class_regs_num, call_used_regs_num): New static
	arrays.  Use sched_class_regs_num instead of ira_class_hard_regs_num.
	(print_curr_reg_pressure, setup_insn_reg_pressure_info,)
	(model_update_pressure, model_spill_cost): Use sched_class_regs_num.
	(model_start_schedule): Update.
	(sched_pressure_start_bb): New static function.  Calculate
	sched_class_regs_num.
	(schedule_block): Use it.
	(alloc_global_sched_pressure_data): Calculate call_used_regs_num.

From-SVN: r216620
2014-10-24 08:22:12 +00:00
Richard Biener ef1ea28c3c Makefile.in (BUILD_CPPLIB): When in stage2+ use the host library and make sure to pull in the required...
2014-10-24  Richard Biener  <rguenther@suse.de>

	* Makefile.in (BUILD_CPPLIB): When in stage2+ use the
	host library and make sure to pull in the required libintl
	and libiconv dependencies.

From-SVN: r216619
2014-10-24 08:04:25 +00:00
Richard Biener 4cf03f6897 fold-const.c (fold_binary_loc): Fix copy-and-pasto.
2014-10-24  Richard Biener  <rguenther@suse.de>

	* fold-const.c (fold_binary_loc): Fix copy-and-pasto.

From-SVN: r216617
2014-10-24 07:57:51 +00:00
Markus Trippelsdorf fa608e77c2 Fix bootstrap/PR63632
r216566 (r216568 for 4.9 branch) added %{fno-lto} to LINK_COMMAND_SPEC.
However the linker doesn't understand -fno-lto and errors out.
This causes an LTO/PGO bootstrap failure, because -fno-lto is used
during STAGEprofile.
Fixed by filtering out -fno-lto in collect2.c.

From-SVN: r216613
2014-10-24 06:39:24 +00:00
Martin Liska f1c859ee84 ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes): Guard division by zero in dumps.
* ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes): Guard
	division by zero in dumps.
	(sem_item_optimizer::merge_classes): Ditto.

From-SVN: r216612
2014-10-24 08:06:20 +02:00
Ian Lance Taylor 5eda5bad3c compiler: Use MPC library for complex numbers.
* go-gcc.cc (Gcc_backend::complex_constant_expression): Take one
	mpc_t parameter instead of two mpfr_t parameters.

From-SVN: r216611
2014-10-24 05:01:50 +00:00
Ian Lance Taylor 3c76528636 compiler: Simplify making integer expressions.
Instead of always needing an mpz_t, add helper functions to
create an integer functions from signed or unsigned long
values.

From-SVN: r216610
2014-10-24 01:49:23 +00:00
GCC Administrator 7a149e7a51 Daily bump.
From-SVN: r216609
2014-10-24 00:16:51 +00:00
John David Anglin 63e7e854fc pa.c (pa_can_combine_p): Fix typo in last change.
* config/pa/pa.c (pa_can_combine_p): Fix typo in last change.

From-SVN: r216606
2014-10-23 23:33:34 +00:00
Ian Lance Taylor ed98682725 * tree-vrp.c (extract_range_from_assert): Fix typo in comment.
From-SVN: r216605
2014-10-23 22:48:40 +00:00
Ian Lance Taylor cffb3a8a43 * config/mep/mep.h (TARGET_HAS_F_SETLKW): Don't define.
From-SVN: r216604
2014-10-23 22:46:49 +00:00
Ian Lance Taylor c96601d2a7 internal.h (backtrace_atomic_load_pointer): Fix to return void *.
* internal.h (backtrace_atomic_load_pointer) [no atomic or sync]:
	Fix to return void *.

From-SVN: r216603
2014-10-23 22:40:37 +00:00
Ian Lance Taylor 74cc54710d configure.ac: Disable the Go frontend on systems where it is known to not work.
* configure.ac: Disable the Go frontend on systems where it is known
	to not work.
	* configure: Regenerate.

From-SVN: r216602
2014-10-23 22:36:20 +00:00