Commit Graph

133845 Commits

Author SHA1 Message Date
Richard Sandiford
eacbf7bd8c mips.c (mips_kernel_reg_p): Replace with...
gcc/
	* config/mips/mips.c (mips_kernel_reg_p): Replace with...
	(mips_refers_to_kernel_reg_p): ...this new function.
	(mips_expand_prologue): Update accordingly.

From-SVN: r216709
2014-10-26 10:41:13 +00:00
Richard Sandiford
3854efe863 mips.c (mips_rewrite_small_data_1): Take the context as a parameter instead of the containing MEM.
gcc/
	* config/mips/mips.c (mips_rewrite_small_data_1): Take the context
	as a parameter instead of the containing MEM.  Iterate over all
	subrtxes.  Don't return a value.
	(mips_rewrite_small_data): Update call accordingly.

From-SVN: r216708
2014-10-26 10:41:06 +00:00
Richard Sandiford
187804d41f mips.c: Include rtl-iter.h.
gcc/
	* config/mips/mips.c: Include rtl-iter.h.
	(mips_small_data_pattern_1): Take an rtx rather than an rtx pointer.
	Take the context as a parameter instead of the containing MEM.
	Iterate over all subrtxes.
	(mips_small_data_pattern_p): Update call accordingly.

From-SVN: r216707
2014-10-26 10:40:59 +00:00
Richard Sandiford
21ffb9589e mep.c (mep_mul_hilo_bypass_1): Delete.
gcc/
	* config/mep/mep.c (mep_mul_hilo_bypass_1): Delete.
	(mep_mul_hilo_bypass_p): Use FOR_EACH_SUBRTX.

From-SVN: r216706
2014-10-26 10:40:52 +00:00
Richard Sandiford
d2053f5e81 mep.c (mep_store_find_set): Take a const_rtx and return a bool.
gcc/
	* config/mep/mep.c (mep_store_find_set): Take a const_rtx and
	return a bool.  Replace "void *" with specific type.  Iterate
	over all subrtxes.
	(mep_store_data_bypass_1): Update calls accordingly.

From-SVN: r216705
2014-10-26 10:40:44 +00:00
Richard Sandiford
f0ac02c03f mep.c: Include rtl-iter.h.
gcc/
	* config/mep/mep.c: Include rtl-iter.h.
	(global_reg_mentioned_p_1): Take a const_rtx and return a bool.
	(xtensa_tls_referenced_p): Return a bool.  Use FOR_EACH_SUBRTX.

From-SVN: r216704
2014-10-26 10:40:37 +00:00
Richard Sandiford
2f36a994a6 xtensa.c: Include rtl-iter.h.
gcc/
	* config/xtensa/xtensa.c: Include rtl-iter.h.
	(xtensa_tls_referenced_p_1): Delete.
	(xtensa_tls_referenced_p): Use FOR_EACH_SUBRTX.

From-SVN: r216703
2014-10-26 10:40:29 +00:00
Richard Sandiford
2caafc4476 sh.c (sh_contains_memref_p_1): Delete.
gcc/
	* config/sh/sh.c (sh_contains_memref_p_1): Delete.
	(sh_contains_memref_p): Use FOR_EACH_SUBRTX.

From-SVN: r216702
2014-10-26 10:40:22 +00:00
Richard Sandiford
5dabe5a94e sh-protos.h (shmedia_cleanup_truncate): Take an rtx as argument and return the number of changes.
gcc/
	* config/sh/sh-protos.h (shmedia_cleanup_truncate): Take an
	rtx as argument and return the number of changes.
	* config/sh/sh.c: Include rtl-iter.h.
	(shmedia_cleanup_truncate): Take an rtx as argument and iterate
	over all subrtxes.  Return the number of changes made.
	* config/sh/sh.md: Update caller accordingly.

From-SVN: r216701
2014-10-26 10:40:15 +00:00
Richard Sandiford
a57841528c m68k.c (m68k_tls_reference_p_1): Delete.
gcc/
	* config/m68k/m68k.c (m68k_tls_reference_p_1): Delete.
	(m68k_tls_reference_p): Use FOR_EACH_SUBRTX_VAR.

From-SVN: r216700
2014-10-26 10:40:05 +00:00
Richard Sandiford
82eee4f108 m68k.c: Include rtl-iter.h.
gcc/
	* config/m68k/m68k.c: Include rtl-iter.h.
	(m68k_final_prescan_insn_1): Delete.
	(m68k_final_prescan_insn): Use FOR_EACH_SUBRTX_VAR.

From-SVN: r216699
2014-10-26 10:39:57 +00:00
GCC Administrator
ae2607e892 Daily bump.
From-SVN: r216696
2014-10-26 00:16:26 +00:00
Jakub Jelinek
46a547083a re PR tree-optimization/63641 (Invalid shift leads to incorrect code on 32-bit system)
PR tree-optimization/63641
	* tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Set high
	to low + prec - 1 - clz (mask) instead of low + prec - clz (mask).

	* gcc.c-torture/execute/pr63641.c: New test.

From-SVN: r216693
2014-10-25 22:21:47 +02:00
François Dumont
608b9c889e status_cxx2011.xml: Update unordered container specific behavior.
2014-10-25  François Dumont  <fdumont@gcc.gnu.org>

	* doc/xml/manual/status_cxx2011.xml: Update unordered container
	specific behavior.

From-SVN: r216692
2014-10-25 20:18:19 +00:00
Hans-Peter Nilsson
7fd746204c Add forgotten "configure: regenerate" stanza to last CL entry.
From-SVN: r216690
2014-10-25 15:36:39 +00:00
Alan Modra
f27dfe8782 re PR rtl-optimization/63615 (FAIL: gcc.target/i386/addr-sel-1.c)
PR rtl-optimization/63615
	* simplify-rtx.c (simplify_plus_minus): Set "canonicalized" on
	decomposing PLUS or MINUS if operands are not placed adjacent
	in the "ops" array.

From-SVN: r216689
2014-10-25 17:15:52 +10:30
Joseph Myers
4aa1942293 Only allow e500 double in SPE_SIMD_REGNO_P registers.
rs6000_hard_regno_nregs_internal allows SPE vectors in single
registers satisfying SPE_SIMD_REGNO_P (i.e. register numbers 0 to
31).  However, the corresponding test for e500 double treats all
registers as being able to store a 64-bit value, rather than just
those GPRs.

Logically this inconsistency is wrong; in addition, it causes problems
unwinding from signal handlers.  linux-unwind.h uses
ARG_POINTER_REGNUM as a place to store the return address from a
signal handler, but this logic in rs6000_hard_regno_nregs_internal
results in that being considered an 8-byte register, resulting in
assertion failures.
(<https://gcc.gnu.org/ml/gcc-patches/2014-09/msg02625.html> first
needs to be applied for unwinding to work in general on e500.)  This
patch makes rs6000_hard_regno_nregs_internal handle the e500 double
case consistently with SPE vectors.

Tested with no regressions with cross to powerpc-linux-gnuspe (given
the aforementioned patch applied).  Failures of signal handling
unwinding tests such as gcc.dg/cleanup-{8,9,10,11}.c are fixed by this
patch.

	* config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Do
	not allow e500 double in registers not satisyfing
	SPE_SIMD_REGNO_P.

From-SVN: r216688
2014-10-25 01:23:17 +01:00
Joseph Myers
d80c2beaf7 Optimize powerpc*-*-linux* 32-bit classic hard/soft float hardfp/soft-fp use.
Continuing the cleanups of libgcc soft-fp configuration for
powerpc*-*-linux* in preparation for implementing
TARGET_ATOMIC_ASSIGN_EXPAND_FENV for soft-float and e500, this patch
optimizes the choice of which functions to build for the 32-bit
classic hard-float and soft-float cases.  (e500 will be dealt with in
a separate patch which will need to add new features to t-hardfp and
t-softfp; this patch keeps the status quo for e500.)

For hard-float, while the functions in question are part of the libgcc
ABI there is no need for them to contain software floating point code:
no newly built code should use them, and if anything does use them
it's most efficient (space and speed) for them to pass straight
through to floating-point hardware instructions; this case is made to
use t-hardfp to achieve that.  For soft-float, direct use of soft-fp
functions for operations involving DImode or unsigned integers is more
efficient than using the libgcc2.c versions of those operations to
convert to operations on other types (which then end up calling
soft-fp functions for those other types, possibly more than once);
this case is thus stopped from using t-softfp-excl.  (A future patch
will stop the e500 cases from using t-softfp-excl as well.)

Tested with no regressions for crosses to powerpc-linux-gnu (soft
float and classic hard float); also checked that the same set of
symbols and versions is exported from shared libgcc before and after
the patch.

	* configure.ac (ppc_fp_type): Set variable on powerpc*-*-linux*.
	* configure: Regenerate.
	* config.host (powerpc*-*-linux*): Use $ppc_fp_type to determine
	additions to tmake_file.  Use t-hardfp-sfdf and t-hardfp instead
	of soft-fp for 32-bit classic hard float.  Do not use
	t-softfp-excl for soft float.

From-SVN: r216687
2014-10-25 01:22:02 +01:00
GCC Administrator
0f849c161a Daily bump.
From-SVN: r216686
2014-10-25 00:16:13 +00:00
Aldy Hernandez
c22354fd69 dwarf2out.c (declare_in_namespace): Only emit external declarations in the local scope once.
* dwarf2out.c (declare_in_namespace): Only emit external
	declarations in the local scope once.

From-SVN: r216683
2014-10-25 00:08:41 +00:00
Jonathan Wakely
fbee6d3164 C++11 explicitly forbids macros for bool, true and false.
gcc:
	* ginclude/stdbool.h: Do not define bool, true or false in C++11.

libstdc++-v3:
	* testsuite/18_support/headers/cstdbool/macros.cc: New.

From-SVN: r216679
2014-10-24 21:56:40 +01:00
Tobias Burnus
229c59193a check.c (check_co_collective): Reject coindexed A args.
2014-10-24  Tobias Burnus  <burnus@net-b.de>

gcc/fortran
        * check.c (check_co_collective): Reject coindexed A args.
        (gfc_check_co_reduce): Add OPERATOR checks.
        * gfortran.texi (_gfortran_caf_co_broadcast,
        * _gfortran_caf_co_max,
        _gfortran_caf_co_min, _gfortran_caf_co_sum,
        _gfortran_caf_co_reduce): Add ABI documentation.
        * intrinsic.texi (CO_REDUCE): Document intrinsic.
        (DPROD): Returns double not single precision.
        * trans-decl.c (gfor_fndecl_co_reduce): New global var.
        (gfc_build_builtin_function_decls): Init it.
        * trans.h (gfor_fndecl_co_reduce): Declare it.
        * trans-intrinsic.c (conv_co_collective,
        gfc_conv_intrinsic_subroutine): Handle CO_REDUCE.

gcc/testsuite/
        * gfortran.dg/coarray_collectives_9.f90: Remove dg-error.
        * gfortran.dg/coarray_collectives_13.f90: New.
        * gfortran.dg/coarray_collectives_14.f90: New.
        * gfortran.dg/coarray_collectives_15.f90: New.
        * gfortran.dg/coarray_collectives_16.f90: New.

From-SVN: r216678
2014-10-24 22:52:41 +02:00
Ian Lance Taylor
763206befb Fix error in earlier ChangeLog entry: s/define/undefine/.
From-SVN: r216676
2014-10-24 18:27:04 +00:00
Jiong Wang
714b74f82b [ARM] gnu11 cleanup for aapcs testcases
gcc/testsuite/
   * gcc.target/arm/aapcs/abitest.h: Declare memcpy.

From-SVN: r216675
2014-10-24 17:14:02 +00:00
Marek Polacek
90f3520ea5 re PR c/56980 (C pretty-printer does not handle well pointer to typedef of struct)
PR c/56980
	* c-pretty-print.c (c_pretty_printer::simple_type_specifier): Don't
	print "struct"/"union"/"enum" for typedefed names.

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

From-SVN: r216674
2014-10-24 16:29:56 +00:00
Charles Baylis
820aecbf23 fix up changelog format for r216671.
From-SVN: r216673
2014-10-24 15:01:49 +00:00
Charles Baylis
29e5e2f9e2 [PATCH 2/2] [AARCH64,NEON] Convert arm_neon.h to use new builtins for vld[234](q?)_lane_*
2014-10-24  Charles Baylis  <charles.baylis@linaro.org>

	* config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rewrite using builtins,
	update uses to use new macro arguments.
	(__LD3_LANE_FUNC): Likewise.
	(__LD4_LANE_FUNC): Likewise.

From-SVN: r216672
2014-10-24 15:00:20 +00:00
Charles Baylis
3ec1be97ac [PATCH 1/2] [AARCH64,NEON] Add patterns + builtins for vld[234](q?)_lane_* intrinsics
2014-10-24  Charles Baylis  <charles.baylis@linaro.org>
	* config/aarch64/aarch64-builtins.c
	(aarch64_types_loadstruct_lane_qualifiers): Define.
	* config/aarch64/aarch64-simd-builtins.def (ld2_lane, ld3_lane,
	ld4_lane): New builtins.
	* config/aarch64/aarch64-simd.md (aarch64_vec_load_lanesoi_lane<mode>):
	New pattern.
	(aarch64_vec_load_lanesci_lane<mode>): Likewise.
	(aarch64_vec_load_lanesxi_lane<mode>): Likewise.
	(aarch64_ld2_lane<mode>): New expand.
	(aarch64_ld3_lane<mode>): Likewise.
	(aarch64_ld4_lane<mode>): Likewise.
	* config/aarch64/aarch64.md (define_c_enum "unspec"): Add
	UNSPEC_LD2_LANE, UNSPEC_LD3_LANE, UNSPEC_LD4_LANE.

From-SVN: r216671
2014-10-24 14:58:51 +00:00
Hans-Peter Nilsson
4eb1ac3913 Fix bad email last commit
From-SVN: r216670
2014-10-24 14:31:47 +00:00
Hans-Peter Nilsson
3d96b0d073 configure.ac (build_configargs): Don't share config.cache between build subdirs.
* configure.ac (build_configargs): Don't share config.cache between
	build subdirs.

From-SVN: r216669
2014-10-24 14:30:35 +00:00
Georg-Johann Lay
8e3d9e673a avr-protos.h (avr_out_sign_extend): New.
* avr-protos.h (avr_out_sign_extend): New.
	* avr.c (avr_adjust_insn_length) [ADJUST_LEN_SEXT]: Handle.
	(avr_out_sign_extend): New function.
	* avr.md (extendqihi2, extendqipsi2, extendqisi2, extendhipsi2)
	(extendhisi2, extendpsisi2): Use it.
	(adjust_len) [sext]: New.

From-SVN: r216668
2014-10-24 14:25:10 +00:00
Paolo Carlini
709def90a4 atomic_base.h: Avoid including <stdbool.h>.
2014-10-24  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/atomic_base.h: Avoid including <stdbool.h>.
	* include/std/atomic: When __cplusplus < 201103L skip the rest of
	the header.
	* testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc: Adjust.

From-SVN: r216667
2014-10-24 12:54:43 +00:00
Daniel Hellstrom
d81230b555 config.gcc (sparc*-*-*): Accept mcpu=leon3v7 processor.
2014-10-24  Daniel Hellstrom  <daniel@gaisler.com>

	* config.gcc (sparc*-*-*): Accept mcpu=leon3v7 processor.
	* doc/invoke.texi (SPARC options): Add mcpu=leon3v7 comment.
	* config/sparc/leon.md (leon3_load, leon_store, leon_fp_*): Handle
	leon3v7 as leon3.
	* config/sparc/sparc-opts.h (enum processor_type): Add LEON3V7.
	* config/sparc/sparc.c (sparc_option_override): Add leon3v7 support.
	* config/sparc/sparc.h (TARGET_CPU_leon3v7): New define.
	* config/sparc/sparc.md (cpu): Add leon3v7.
	* config/sparc/sparc.opt (enum processor_type): Add leon3v7.

From-SVN: r216666
2014-10-24 14:34:49 +02:00
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