Commit Graph

129573 Commits

Author SHA1 Message Date
Rainer Orth
c02f59e232 Remove LIB_TLS_SPEC on Solaris
* configure.ac (tga_func): Remove.
	(LIB_TLS_SPEC): Remove.
	* configure: Regenerate.
	* config.in: Regenerate.
	* config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.

From-SVN: r209785
2014-04-25 08:08:41 +00:00
Marc Glisse
5b002eee4e re PR target/43538 (config/mt-gnu CXXFLAGS_FOR_TARGET)
2014-04-25  Marc Glisse  <marc.glisse@inria.fr>

	PR target/43538
	* mt-gnu: Don't reset CXXFLAGS_FOR_TARGET.

From-SVN: r209784
2014-04-25 08:03:08 +00:00
Rainer Orth
54cf37e9bf Remove SSE execution test in crtfastmath.c
* config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
	(sigill_caught, sigill_hdlr): Remove.

From-SVN: r209783
2014-04-25 08:01:09 +00:00
Richard Biener
92b3326b2f re PR ipa/60912 (wrong code with -O -fno-inline -fipa-pta)
2014-04-25  Richard Biener  <rguenther@suse.de>

	PR ipa/60912
	* tree-ssa-structalias.c (ipa_pta_execute): Compute direct
	call stmt use/clobber sets during stmt walk instead of
	walking the possibly incomplete set of caller edges.

	* g++.dg/opt/pr60912.C: New testcase.

From-SVN: r209780
2014-04-25 07:47:22 +00:00
Richard Biener
78422fb13c re PR ipa/60911 (wrong code with -O2 -flto -fipa-pta)
2014-04-25  Richard Biener  <rguenther@suse.de>

	PR ipa/60911
	* passes.c (apply_ipa_transforms): Inline into only caller ...
	(execute_one_pass): ... here.  Properly bring in function
	bodies for nodes we want to apply IPA transforms to.

	* gcc.dg/lto/pr60911_0.c: New testcase.

From-SVN: r209779
2014-04-25 07:44:40 +00:00
Ian Lance Taylor
9490b8da72 re PR go/60931 (libgo has issues when page size is not 4k)
PR go/60931

runtime: Fix garbage collector issue with non 4kB system page size

The go garbage collector tracks memory in terms of 4kB pages.
Most of the code checks getpagesize() at runtime and does the
right thing.

On a 64kB ppc64 box I see SEGVs in long running processes
which has been diagnosed as a bug in scavengelist.
scavengelist does a madvise(MADV_DONTNEED) without rounding
the arguments to the system page size.  A strace of one of the
failures shows the problem:

madvise(0xc211030000, 4096, MADV_DONTNEED) = 0

The kernel rounds the length up to 64kB and we mark 60kB of
valid data as no longer needed.

Round start up to a system page and end down before calling
madvise.

From-SVN: r209777
2014-04-25 04:29:07 +00:00
Mike Stump
44875f9206 * c.opt (Wshadow-ivar): Default to on.
From-SVN: r209774
2014-04-25 00:53:34 +00:00
Cong Hou
56f8faaedd re PR tree-optimization/60896 (ICE: in vect_get_vec_def_for_operand, at tree-vect-stmts.c:1449)
2014-04-24  Cong Hou  <congh@google.com>

    PR tree-optimization/60896
    * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
    all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
    (vect_mark_pattern_stmts): Set the def type of all statements in
    PATTERN_DEF_SEQ as vect_internal_def.

2014-04-24  Cong Hou  <congh@google.com>

    PR tree-optimization/60896
    * g++.dg/vect/pr60896.cc: New test.

From-SVN: r209773
2014-04-24 20:20:44 -04:00
GCC Administrator
9beb6f2b1d Daily bump.
From-SVN: r209772
2014-04-25 00:16:40 +00:00
Michael Meissner
06b39289a2 extend.texi (PowerPC Built-in Functions): Document new powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
[gcc]
2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* doc/extend.texi (PowerPC Built-in Functions): Document new
	powerpc extended divide, bcd, pack/unpack 128-bit, builtin
	functions.
	(PowerPC AltiVec/VSX Built-in Functions): Likewise.

	* config/rs6000/predicates.md (const_0_to_3_operand): New
	predicate to match 0..3 integer constants.

	* config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
	to support adding miscellaneous builtin functions.
	(BU_DFP_MISC_2): Likewise.
	(BU_P7_MISC_1): Likewise.
	(BU_P7_MISC_2): Likewise.
	(BU_P8V_MISC_3): Likewise.
	(BU_MISC_1): Likewise.
	(BU_MISC_2): Likewise.
	(DIVWE): Add extended divide builtin functions.
	(DIVWEO): Likewise.
	(DIVWEU): Likewise.
	(DIVWEUO): Likewise.
	(DIVDE): Likewise.
	(DIVDEO): Likewise.
	(DIVDEU): Likewise.
	(DIVDEUO): Likewise.
	(DXEX): Add decimal floating-point builtin functions.
	(DXEXQ): Likewise.
	(DDEDPD): Likewise.
	(DDEDPDQ): Likewise.
	(DENBCD): Likewise.
	(DENBCDQ): Likewise.
	(DIEX): Likewise.
	(DIEXQ): Likewise.
	(DSCLI): Likewise.
	(DSCLIQ): Likewise.
	(DSCRI): Likewise.
	(DSCRIQ): Likewise.
	(CDTBCD): Add new BCD builtin functions.
	(CBCDTD): Likewise.
	(ADDG6S): Likewise.
	(BCDADD): Likewise.
	(BCDADD_LT): Likewise.
	(BCDADD_EQ): Likewise.
	(BCDADD_GT): Likewise.
	(BCDADD_OV): Likewise.
	(BCDSUB): Likewise.
	(BCDSUB_LT): Likewise.
	(BCDSUB_EQ): Likewise.
	(BCDSUB_GT): Likewise.
	(BCDSUB_OV): Likewise.
	(PACK_TD): Add new pack/unpack 128-bit type builtin functions.
	(UNPACK_TD): Likewise.
	(PACK_TF): Likewise.
	(UNPACK_TF): Likewise.
	(UNPACK_TF_0): Likewise.
	(UNPACK_TF_1): Likewise.
	(PACK_V1TI): Likewise.
	(UNPACK_V1TI): Likewise.

	* config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
	support for decimal floating point builtin functions.
	(rs6000_expand_ternop_builtin): Add checks for the new builtin
	functions that take constant arguments.
	(rs6000_invalid_builtin): Add decimal floating point builtin
	support.
	(rs6000_init_builtins): Setup long double, _Decimal64, and
	_Decimal128 types for new builtin functions.
	(builtin_function_type): Set the unsigned flags appropriately for
	the new builtin functions.
	(rs6000_opt_masks): Add support for decimal floating point builtin
	functions.

	* config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
	floating point builtin functions.
	(RS6000_BTM_COMMON): Likewise.
	(RS6000_BTI_long_double): Likewise.
	(RS6000_BTI_dfloat64): Likewise.
	(RS6000_BTI_dfloat128): Likewise.
	(long_double_type_internal_node): Likewise.
	(dfloat64_type_internal_node): Likewise.
	(dfloat128_type_internal_node): Likewise.

	* config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
	2.07 bcd arithmetic instructions.
	(UNSPEC_BCDSUB): Likewise.
	(UNSPEC_BCD_OVERFLOW): Likewise.
	(UNSPEC_BCD_ADD_SUB): Likewise.
	(bcd_add_sub): Likewise.
	(BCD_TEST): Likewise.
	(bcd<bcd_add_sub>): Likewise.
	(bcd<bcd_add_sub>_test): Likewise.
	(bcd<bcd_add_sub>_test2): Likewise.
	(bcd<bcd_add_sub>_<code>): Likewise.
	(peephole2 for combined bcd ops): Likewise.

	* config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
	decimal floating point builtin functions.
	(UNSPEC_DENBCD): Likewise.
	(UNSPEC_DXEX): Likewise.
	(UNSPEC_DIEX): Likewise.
	(UNSPEC_DSCLI): Likewise.
	(UNSPEC_DSCRI): Likewise.
	(D64_D128): Likewise.
	(dfp_suffix): Likewise.
	(dfp_ddedpd_<mode>): Likewise.
	(dfp_denbcd_<mode>): Likewise.
	(dfp_dxex_<mode>): Likewise.
	(dfp_diex_<mode>): Likewise.
	(dfp_dscli_<mode>): Likewise.
	(dfp_dscri_<mode>): Likewise.

	* config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
	builtin functions.
	(UNSPEC_CDTBCD): Likewise.
	(UNSPEC_CBCDTD): Likewise.
	(UNSPEC_DIVE): Add support for new extended divide builtin
	functions.
	(UNSPEC_DIVEO): Likewise.
	(UNSPEC_DIVEU): Likewise.
	(UNSPEC_DIVEUO): Likewise.
	(UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
	pack/unpack 128-bit types.
	(UNSPEC_PACK_128BIT): Likewise.
	(idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
	(udiv<mode>3): Use idiv_ldiv mode attribute.
	(div<mode>3): Likewise.
	(addg6s): Add new BCD builtin functions.
	(cdtbcd): Likewise.
	(cbcdtd): Likewise.
	(UNSPEC_DIV_EXTEND): Add support for new extended divide
	instructions.
	(div_extend): Likewise.
	(div<div_extend>_<mode>"): Likewise.
	(FP128_64): Add support for new builtin functions to pack/unpack
	128-bit types.
	(unpack<mode>): Likewise.
	(unpacktf_0): Likewise.
	(unpacktf_1): Likewise.
	(unpack<mode>_dm): Likewise.
	(unpack<mode>_nodm): Likewise.
	(pack<mode>): Likewise.
	(unpackv1ti): Likewise.
	(packv1ti): Likewise.

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

	* gcc.target/powerpc/pack01.c: New test to test the new pack and
	unpack builtin functionss for 128-bit types.
	* gcc.target/powerpc/pack02.c: Likewise.
	* gcc.target/powerpc/pack03.c: Likewise.
	* gcc.target/powerpc/extend-divide-1.c: New test to test extended
	divide builtin functionss.
	* gcc.target/powerpc/extend-divide-2.c: Likewise.
	* gcc.target/powerpc/bcd-1.c: New test for the new BCD builtin
	functions.
	* gcc.target/powerpc/bcd-2.c: Likewise.
	* gcc.target/powerpc/bcd-3.c: Likewise.
	* gcc.target/powerpc/dfp-builtin-1.c: New test for the new DFP
	builtin functionss.
	* gcc.target/powerpc/dfp-builtin-2.c: Likewise.

From-SVN: r209768
2014-04-24 22:42:25 +00:00
Vishnu K S
6e4f81db33 avr.c: Add comment on why -fdelete-null-pointer-checks is disabled.
2014-04-24  Vishnu K S  <Vishnu.k_s@atmel.com>

	* gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
	is disabled.

2014-04-24  Vishnu K S  <Vishnu.k_s@atmel.com>

	* gcc/testsuite/gcc.dg/tree-ssa/isolate-1.c: Skip test if
	keeps_null_pointer_checks.
	* gcc/testsuite/gcc.dg/tree-ssa/isolate-2.c: Ditto
	* gcc/testsuite/gcc.dg/tree-ssa/isolate-3.c: Ditto
	* gcc/testsuite/gcc.dg/tree-ssa/isolate-4.c: Ditto
	* gcc/testsuite/gcc.dg/tree-ssa/isolate-5.c: Ditto

From-SVN: r209767
2014-04-24 16:05:07 -06:00
Prathamesh Kulkarni
3e4fbd9185 c-parser.c (c_parser_sizeof_expression): Reorganize slightly to avoid goto.
* c-parser.c (c_parser_sizeof_expression): Reorganize slightly to
        avoid goto.

From-SVN: r209765
2014-04-24 15:29:45 -06:00
Jakub Jelinek
42056eaced c-parser.c (c_parser_omp_atomic): Allow seq_cst before atomic-clause...
gcc/c/
	* c-parser.c (c_parser_omp_atomic): Allow seq_cst before
	atomic-clause, allow comma in between atomic-clause and
	seq_cst.
gcc/cp/
	* parser.c (cp_parser_omp_atomic): Allow seq_cst before
	atomic-clause, allow comma in between atomic-clause and
	seq_cst.
gcc/testsuite/
	* c-c++-common/gomp/atomic-16.c: Remove all dg-error directives.
	Replace load with read and store with write.
libgomp/
	* testsuite/libgomp.c++/atomic-14.C: Allow seq_cst and
	atomic type clauses in any order and optional comma in between.
	* testsuite/libgomp.c++/atomic-15.C: Likewise.
	* testsuite/libgomp.c/atomic-17.c: Likewise.

From-SVN: r209762
2014-04-24 23:20:28 +02:00
Jakub Jelinek
f7468577f8 tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
* tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
	* gimplify.c (omp_is_private): Change last argument's type to int.
	Only diagnose lastprivate if the simd argument is 1, only diagnose
	linear if the simd argument is 2.
	(gimplify_omp_for): Adjust omp_is_private callers.  When adding
	lastprivate or private, add the clause to OMP_FOR_CLAUSES.  Pass
	GOVD_EXPLICIT to omp_add_variable.  For simd with collapse == 1
	create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
	If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
	increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
	* omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
	OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
	* tree-nested.c (convert_nonlocal_omp_clauses,
	convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.

	* testsuite/libgomp.c/simd-7.c: New test.
	* testsuite/libgomp.c/simd-8.c: New test.
	* testsuite/libgomp.c/simd-9.c: New test.
	* testsuite/libgomp.c/loop-16.c: New test.

From-SVN: r209760
2014-04-24 23:17:32 +02:00
Jeff Law
2f7ac5ce57 [multiple changes]
2014-04-24  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/60822
	* config/m68k/m68k.md (extendplussidi): Don't allow memory for
	operand 1.

2014-04-24  Jeff Law  <law@redhat.com>

	PR target/60822
	* gcc.c-torture/pr60822.c: New test.
	* gcc.c-torture/pr60822.x: New test.

From-SVN: r209759
2014-04-24 14:45:10 -06:00
Dinar Temirbulatov
0b18fd1b20 add recored to gcc/testsuite/ChangeLog for PR c++/57958
From-SVN: r209757
2014-04-24 22:51:29 +04:00
Tim Shen
836c42f6ad regex_automaton.tcc (_StateSeq<>::_M_clone()): Do _M_alt before _M_next.
2014-04-24  Tim Shen  <timshen91@gmail.com>

	* include/bits/regex_automaton.tcc (_StateSeq<>::_M_clone()):
	Do _M_alt before _M_next.
	* testsuite/28_regex/basic_regex/multiple_quantifiers.cc: Add testcases.

From-SVN: r209756
2014-04-24 18:29:21 +00:00
Mike Stump
0e93c3dc50 Link to bug report.
From-SVN: r209754
2014-04-24 16:03:39 +00:00
Dimitris Papavasiliou
dcaaa5a04a flag-types.h (enum ivar_visibility): Add.
2014-04-24  Dimitris Papavasiliou  <dpapavas@gmail.com>

	    * flag-types.h (enum ivar_visibility): Add.

c-family:
	    * c.opt (Wshadow-ivar, flocal-ivars, fivar-visibility): Add.

objc:
	* objc-act.c (objc_ivar_visibility, objc_default_ivar_visibility): Add.
	(objc_init): Initialize objc_default_ivar_visibility.
	(objc_start_class_interface): Use objc_default_ivar_visibility.
	(objc_start_class_implementation): Likewise.
	(objc_lookup_ivar): Implement -fno-local-ivars.

From-SVN: r209753
2014-04-24 15:58:44 +00:00
Jincheng Miao
07fb62554c zh_CN.po: Fix typo for -mfentry.
2014-04-24  Jincheng Miao  <jincheng.miao@gmail.com>

	* zh_CN.po: Fix typo for -mfentry.

From-SVN: r209752
2014-04-24 09:44:13 -06:00
Trevor Saunders
78c7d18e01 fixup sh bustage after r209483
When making pass::execute functions take a function * argument I missed
the sh_treg_combine pass, so fix that here.

gcc/
	* config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
	function * argument.

From-SVN: r209751
2014-04-24 15:33:30 +00:00
Alan Lawrence
fbbde65e62 [AArch64] Enable TBL for big-endian.
gcc/ChangeLog:
2014-04-11  Alan Lawrence  <alan.lawrence@arm.com>

	* config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.

gcc/testsuite/ChangeLog:
2014-04-11  Alan Lawrence  <alan.lawrence@arm.com>

	* lib/target-supports.exp (check_effective_target_vect_perm): Return
	true for aarch64_be.

From-SVN: r209749
2014-04-24 15:18:48 +01:00
Marc Glisse
b911b50d67 re PR libstdc++/43622 (Incomplete C++ library support for __float128)
2014-04-24  Marc Glisse  <marc.glisse@inria.fr>

	PR libstdc++/43622
gcc/cp/
	* rtti.c (emit_support_tinfos): Do not iterate on
	registered_builtin_types (partial revert).
libstdc++/
	* config/abi/pre/gnu.ver (CXXABI_1.3.9): Remove __float128 symbols.
	* config/abi/pre/gnu-versioned-namespace.ver: Likewise.
	* config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.

From-SVN: r209748
2014-04-24 13:58:36 +00:00
Kyrylo Tkachov
deb9dd7455 Fix warning in libgfortran configure script
* configure.ac: Quote usage of ac_cv_func_clock_gettime in if test.
	* configure: Regenerate.

From-SVN: r209747
2014-04-24 11:03:56 +00:00
Andreas Schwab
84c5df1c8e Update libstdc++ baseline symbols for ia64
* config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update for
new CXXABI_1.3.9 symbols.

From-SVN: r209746
2014-04-24 10:44:57 +00:00
Radovan Obradovic
60a9bb6172 -fuse-caller-save - Add test-case
2014-04-24  Radovan Obradovic  <robradovic@mips.com>
            Tom de Vries  <tom@codesourcery.com>

	* gcc.dg/fuse-caller-save.c: New test.

Co-Authored-By: Tom de Vries <tom@codesourcery.com>

From-SVN: r209745
2014-04-24 10:27:16 +00:00
Radovan Obradovic
4f660b159f -fuse-caller-save - Add new reg-note REG_CALL_DECL
2014-04-24  Radovan Obradovic  <robradovic@mips.com>
            Tom de Vries  <tom@codesourcery.com>

	* reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
	* calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
	reg-note.
	* combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
	* emit-rtl.c (try_split): Same.

Co-Authored-By: Tom de Vries <tom@codesourcery.com>

From-SVN: r209744
2014-04-24 09:34:15 +00:00
Radovan Obradovic
d996e61aaa -fuse-caller-save - Add command line option
2014-04-24  Radovan Obradovic  <robradovic@mips.com>
            Tom de Vries  <tom@codesourcery.com>

	* common.opt (fuse-caller-save): New option.

Co-Authored-By: Tom de Vries <tom@codesourcery.com>

From-SVN: r209743
2014-04-24 09:34:06 +00:00
Tejas Belagod
bbcc9c0001 [AArch64] Reverse TBL indices for big-endian.
2014-04-24  Tejas Belagod  <tejas.belagod@arm.com>

       * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of elements
       for big-endian.

From-SVN: r209742
2014-04-24 10:08:48 +01:00
Richard Biener
d2d11532af expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree during TER and instead use the sepops interface...
2014-04-24  Richard Biener  <rguenther@suse.de>

	* expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
	during TER and instead use the sepops interface for expanding
	non-GIMPLE_SINGLE_RHS.

From-SVN: r209741
2014-04-24 08:55:05 +00:00
Rainer Orth
8117ef9898 Only redefine ASM_PREFERRED_EH_DATA_FORMAT if necessary on Solaris/x86
* config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
	if not HAVE_AS_IX86_DIFF_SECT_DELTA.

From-SVN: r209740
2014-04-24 08:48:34 +00:00
Rainer Orth
ab0afae309 Fix gcc_cv_as_cfi_directive test for Solaris as
* configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
	assembler 64-bit option.
	* configure: Regenerate.

From-SVN: r209739
2014-04-24 08:38:06 +00:00
Joey Ye
1e7251a725 nsdmi-union5.C: Change to runtime test.
2014-04-24  Joey Ye  <joey.ye@arm.com>

        * g++.dg/cpp0x/nsdmi-union5.C: Change to runtime test.

From-SVN: r209738
2014-04-24 08:24:37 +00:00
Kyrylo Tkachov
683e3333a7 [AArch64] Wire up TARGET_SIMD and TARGET_FLOAT properly
* config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
	TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
	(TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
	(TARGET_FLOAT): Take AARCH64_ISA_FP into account.
	(TARGET_CRYPTO): Take TARGET_SIMD into account.

From-SVN: r209737
2014-04-24 08:22:43 +00:00
Kyrylo Tkachov
c7f28cd58e [AArch64] Vectorise bswap[16,32,64]
* config/aarch64/aarch64-builtins.c
	(aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
	BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
	* config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
	* config/aarch64/aarch64-simd-builtins.def: Define vector bswap
	builtins.
	* config/aarch64/iterator.md (VDQHSD): New mode iterator.
	(Vrevsuff): New mode attribute.

	* lib/target-supports.exp (check_effective_target_vect_bswap): New.
	* gcc.dg/vect/vect-bswap16: New test.
	* gcc.dg/vect/vect-bswap32: Likewise.
	* gcc.dg/vect/vect-bswap64: Likewise.

From-SVN: r209736
2014-04-24 08:05:07 +00:00
Terry Guo
b041949151 arm.h (machine_function): Define variable after_arm_reorg here.
2014-04-24  Terry Guo  <terry.guo@arm.com>

	* config/arm/arm.h (machine_function): Define variable
	after_arm_reorg here.
	* config/arm/arm.c (after_arm_reorg): Remove the definition.
	(arm_split_constant): Update the way to access variable
	after_arm_reorg.
	(arm_reorg): Ditto.
	(arm_output_function_epilogue): Remove the reset of after_arm_reorg.

From-SVN: r209735
2014-04-24 06:40:24 +00:00
Laurynas Biveinis
080c6230de MAINTAINERS: Move myself from Reviewers to Write After Approval section.
2014-04-24  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* MAINTAINERS: Move myself from Reviewers to Write After Approval
	section.

From-SVN: r209732
2014-04-24 03:45:14 +00:00
GCC Administrator
1543f58fdf Daily bump.
From-SVN: r209731
2014-04-24 00:17:09 +00:00
Tom de Vries
74e4d71acf Fix DEFHOOKPOD argument order in target-hooks-macros.h comment
2014-04-23  Tom de Vries  <tom@codesourcery.com>

	* target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.

From-SVN: r209725
2014-04-23 21:29:08 +00:00
Dinar Temirbulatov
3734964fdc Fix for c++/PR57958
From-SVN: r209721
2014-04-23 23:34:08 +04:00
David Malcolm
7de90a6c27 Change is-a.h to support typedefs of pointers
gcc/
	* is-a.h: Update comments to reflect the following changes to the
	"pointerness" of the API, making the template parameter match the
	return type, allowing use of is-a.h with typedefs of pointers.
	(is_a_helper::cast): Return a T rather then a pointer to a T, so
	that the return type matches the parameter to the is_a_helper.
	(as_a): Likewise.
	(dyn_cast): Likewise.

	* cgraph.c (cgraph_node_for_asm): Update for removal of implicit
	pointer from the is-a.h API.

	* cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
	(is_a_helper <cgraph_node *>::test): ...this, matching change to
	is-a.h API.
	(is_a_helper <varpool_node>::test): Likewise, convert to...
	(is_a_helper <varpool_node *>::test): ...this.

	(varpool_first_variable): Update for removal of implicit pointer
	from the is-a.h API.
	(varpool_next_variable): Likewise.
	(varpool_first_static_initializer): Likewise.
	(varpool_next_static_initializer): Likewise.
	(varpool_first_defined_variable): Likewise.
	(varpool_next_defined_variable): Likewise.
	(cgraph_first_defined_function): Likewise.
	(cgraph_next_defined_function): Likewise.
	(cgraph_first_function): Likewise.
	(cgraph_next_function): Likewise.
	(cgraph_first_function_with_gimple_body): Likewise.
	(cgraph_next_function_with_gimple_body): Likewise.
	(cgraph_alias_target): Likewise.
	(varpool_alias_target): Likewise.
	(cgraph_function_or_thunk_node): Likewise.
	(varpool_variable_node): Likewise.
	(symtab_real_symbol_p): Likewise.
	* cgraphunit.c (referred_to_p): Likewise.
	(analyze_functions): Likewise.
	(handle_alias_pairs): Likewise.
	* gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
	* gimple-ssa.h (gimple_vuse_op): Likewise.
	(gimple_vdef_op): Likewise.
	* gimple-streamer-in.c (input_gimple_stmt): Likewise.
	* gimple.c (gimple_build_asm_1): Likewise.
	(gimple_build_try): Likewise.
	(gimple_build_resx): Likewise.
	(gimple_build_eh_dispatch): Likewise.
	(gimple_build_omp_for): Likewise.
	(gimple_omp_for_set_clauses): Likewise.

	* gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
	(is_a_helper <gimple_statement_asm *>::test): ...this.
	(is_a_helper <gimple_statement_bind>::test): Convert to...
	(is_a_helper <gimple_statement_bind *>::test): ...this.
	(is_a_helper <gimple_statement_call>::test): Convert to...
	(is_a_helper <gimple_statement_call *>::test): ...this.
	(is_a_helper <gimple_statement_catch>::test): Convert to...
	(is_a_helper <gimple_statement_catch *>::test): ...this.
	(is_a_helper <gimple_statement_resx>::test): Convert to...
	(is_a_helper <gimple_statement_resx *>::test): ...this.
	(is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
	(is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
	(is_a_helper <gimple_statement_eh_else>::test): Convert to...
	(is_a_helper <gimple_statement_eh_else *>::test): ...this.
	(is_a_helper <gimple_statement_eh_filter>::test): Convert to...
	(is_a_helper <gimple_statement_eh_filter *>::test): ...this.
	(is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
	(is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
	(is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
	(is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
	(is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
	(is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
	(is_a_helper <gimple_statement_omp_return>::test): Convert to...
	(is_a_helper <gimple_statement_omp_return *>::test): ...this.
	(is_a_helper <gimple_statement_omp_continue>::test): Convert to...
	(is_a_helper <gimple_statement_omp_continue *>::test): ...this.
	(is_a_helper <gimple_statement_omp_critical>::test): Convert to...
	(is_a_helper <gimple_statement_omp_critical *>::test): ...this.
	(is_a_helper <gimple_statement_omp_for>::test): Convert to...
	(is_a_helper <gimple_statement_omp_for *>::test): ...this.
	(is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
	(is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
	(is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
	(is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
	(is_a_helper <gimple_statement_omp_target>::test): Convert to...
	(is_a_helper <gimple_statement_omp_target *>::test): ...this.
	(is_a_helper <gimple_statement_omp_sections>::test): Convert to...
	(is_a_helper <gimple_statement_omp_sections *>::test): ...this.
	(is_a_helper <gimple_statement_omp_single>::test): Convert to...
	(is_a_helper <gimple_statement_omp_single *>::test): ...this.
	(is_a_helper <gimple_statement_omp_teams>::test): Convert to...
	(is_a_helper <gimple_statement_omp_teams *>::test): ...this.
	(is_a_helper <gimple_statement_omp_task>::test): Convert to...
	(is_a_helper <gimple_statement_omp_task *>::test): ...this.
	(is_a_helper <gimple_statement_phi>::test): Convert to...
	(is_a_helper <gimple_statement_phi *>::test): ...this.
	(is_a_helper <gimple_statement_transaction>::test): Convert to...
	(is_a_helper <gimple_statement_transaction *>::test): ...this.
	(is_a_helper <gimple_statement_try>::test): Convert to...
	(is_a_helper <gimple_statement_try *>::test): ...this.
	(is_a_helper <gimple_statement_wce>::test): Convert to...
	(is_a_helper <gimple_statement_wce *>::test): ...this.
	(is_a_helper <const gimple_statement_asm>::test): Convert to...
	(is_a_helper <const gimple_statement_asm *>::test): ...this.
	(is_a_helper <const gimple_statement_bind>::test): Convert to...
	(is_a_helper <const gimple_statement_bind *>::test): ...this.
	(is_a_helper <const gimple_statement_call>::test): Convert to...
	(is_a_helper <const gimple_statement_call *>::test): ...this.
	(is_a_helper <const gimple_statement_catch>::test): Convert to...
	(is_a_helper <const gimple_statement_catch *>::test): ...this.
	(is_a_helper <const gimple_statement_resx>::test): Convert to...
	(is_a_helper <const gimple_statement_resx *>::test): ...this.
	(is_a_helper <const gimple_statement_eh_dispatch>::test):
	Convert to...
	(is_a_helper <const gimple_statement_eh_dispatch *>::test):
	...this.
	(is_a_helper <const gimple_statement_eh_filter>::test): Convert
	to...
	(is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
	(is_a_helper <const gimple_statement_omp_atomic_load>::test):
	Convert to...
	(is_a_helper <const gimple_statement_omp_atomic_load *>::test):
	...this.
	(is_a_helper <const gimple_statement_omp_atomic_store>::test):
	Convert to...
	(is_a_helper <const gimple_statement_omp_atomic_store *>::test):
	...this.
	(is_a_helper <const gimple_statement_omp_return>::test): Convert
	to...
	(is_a_helper <const gimple_statement_omp_return *>::test): ...this.
	(is_a_helper <const gimple_statement_omp_continue>::test): Convert
	to...
	(is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
	(is_a_helper <const gimple_statement_omp_critical>::test): Convert
	to...
	(is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
	(is_a_helper <const gimple_statement_omp_for>::test): Convert to...
	(is_a_helper <const gimple_statement_omp_for *>::test): ...this.
	(is_a_helper <const gimple_statement_omp_taskreg>::test): Convert
	to...
	(is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
	(is_a_helper <const gimple_statement_omp_parallel>::test): Convert
	to...
	(is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
	(is_a_helper <const gimple_statement_omp_target>::test): Convert
	to...
	(is_a_helper <const gimple_statement_omp_target *>::test): ...this.
	(is_a_helper <const gimple_statement_omp_sections>::test): Convert
	to...
	(is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
	(is_a_helper <const gimple_statement_omp_single>::test): Convert
	to...
	(is_a_helper <const gimple_statement_omp_single *>::test): ...this.
	(is_a_helper <const gimple_statement_omp_teams>::test): Convert
	to...
	(is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
	(is_a_helper <const gimple_statement_omp_task>::test): Convert
	to...
	(is_a_helper <const gimple_statement_omp_task *>::test): ...this.
	(is_a_helper <const gimple_statement_phi>::test): Convert to...
	(is_a_helper <const gimple_statement_phi *>::test): ...this.
	(is_a_helper <const gimple_statement_transaction>::test): Convert
	to...
	(is_a_helper <const gimple_statement_transaction *>::test): ...this.
	(is_a_helper <const gimple_statement_with_ops>::test): Convert
	to...
	(is_a_helper <const gimple_statement_with_ops *>::test): ...this.
	(is_a_helper <gimple_statement_with_ops>::test): Convert to...
	(is_a_helper <gimple_statement_with_ops *>::test): ...this.
	(is_a_helper <const gimple_statement_with_memory_ops>::test):
	Convert to...
	(is_a_helper <const gimple_statement_with_memory_ops *>::test):
	...this.
	(is_a_helper <gimple_statement_with_memory_ops>::test): Convert
	to...
	(is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.

	(gimple_use_ops): Update for removal of implicit pointer from the
	is-a.h API.
	(gimple_set_use_ops): Likewise.
	(gimple_vuse): Likewise.
	(gimple_vdef): Likewise.
	(gimple_vuse_ptr): Likewise.
	(gimple_vdef_ptr): Likewise.
	(gimple_set_vuse): Likewise.
	(gimple_set_vdef): Likewise.
	(gimple_omp_return_set_lhs): Likewise.
	(gimple_omp_return_lhs): Likewise.
	(gimple_omp_return_lhs_ptr): Likewise.
	(gimple_call_fntype): Likewise.
	(gimple_call_set_fntype): Likewise.
	(gimple_call_set_internal_fn): Likewise.
	(gimple_call_use_set): Likewise.
	(gimple_call_clobber_set): Likewise.
	(gimple_bind_vars): Likewise.
	(gimple_bind_set_vars): Likewise.
	(gimple_bind_body_ptr): Likewise.
	(gimple_bind_set_body): Likewise.
	(gimple_bind_add_stmt): Likewise.
	(gimple_bind_block): Likewise.
	(gimple_bind_set_block): Likewise.
	(gimple_asm_ninputs): Likewise.
	(gimple_asm_noutputs): Likewise.
	(gimple_asm_nclobbers): Likewise.
	(gimple_asm_nlabels): Likewise.
	(gimple_asm_input_op): Likewise.
	(gimple_asm_input_op_ptr): Likewise.
	(gimple_asm_output_op): Likewise.
	(gimple_asm_output_op_ptr): Likewise.
	(gimple_asm_set_output_op): Likewise.
	(gimple_asm_clobber_op): Likewise.
	(gimple_asm_set_clobber_op): Likewise.
	(gimple_asm_label_op): Likewise.
	(gimple_asm_set_label_op): Likewise.
	(gimple_asm_string): Likewise.
	(gimple_catch_types): Likewise.
	(gimple_catch_types_ptr): Likewise.
	(gimple_catch_handler_ptr): Likewise.
	(gimple_catch_set_types): Likewise.
	(gimple_catch_set_handler): Likewise.
	(gimple_eh_filter_types): Likewise.
	(gimple_eh_filter_types_ptr): Likewise.
	(gimple_eh_filter_failure_ptr): Likewise.
	(gimple_eh_filter_set_types): Likewise.
	(gimple_eh_filter_set_failure): Likewise.
	(gimple_eh_must_not_throw_fndecl): Likewise.
	(gimple_eh_must_not_throw_set_fndecl): Likewise.
	(gimple_eh_else_n_body_ptr): Likewise.
	(gimple_eh_else_e_body_ptr): Likewise.
	(gimple_eh_else_set_n_body): Likewise.
	(gimple_eh_else_set_e_body): Likewise.
	(gimple_try_eval_ptr): Likewise.
	(gimple_try_cleanup_ptr): Likewise.
	(gimple_try_set_eval): Likewise.
	(gimple_try_set_cleanup): Likewise.
	(gimple_wce_cleanup_ptr): Likewise.
	(gimple_wce_set_cleanup): Likewise.
	(gimple_phi_capacity): Likewise.
	(gimple_phi_num_args): Likewise.
	(gimple_phi_result): Likewise.
	(gimple_phi_result_ptr): Likewise.
	(gimple_phi_set_result): Likewise.
	(gimple_phi_arg): Likewise.
	(gimple_phi_set_arg): Likewise.
	(gimple_resx_region): Likewise.
	(gimple_resx_set_region): Likewise.
	(gimple_eh_dispatch_region): Likewise.
	(gimple_eh_dispatch_set_region): Likewise.
	(gimple_omp_critical_name): Likewise.
	(gimple_omp_critical_name_ptr): Likewise.
	(gimple_omp_critical_set_name): Likewise.
	(gimple_omp_for_clauses): Likewise.
	(gimple_omp_for_clauses_ptr): Likewise.
	(gimple_omp_for_set_clauses): Likewise.
	(gimple_omp_for_collapse): Likewise.
	(gimple_omp_for_index): Likewise.
	(gimple_omp_for_index_ptr): Likewise.
	(gimple_omp_for_set_index): Likewise.
	(gimple_omp_for_initial): Likewise.
	(gimple_omp_for_initial_ptr): Likewise.
	(gimple_omp_for_set_initial): Likewise.
	(gimple_omp_for_final): Likewise.
	(gimple_omp_for_final_ptr): Likewise.
	(gimple_omp_for_set_final): Likewise.
	(gimple_omp_for_incr): Likewise.
	(gimple_omp_for_incr_ptr): Likewise.
	(gimple_omp_for_set_incr): Likewise.
	(gimple_omp_for_pre_body_ptr): Likewise.
	(gimple_omp_for_set_pre_body): Likewise.
	(gimple_omp_parallel_clauses): Likewise.
	(gimple_omp_parallel_clauses_ptr): Likewise.
	(gimple_omp_parallel_set_clauses): Likewise.
	(gimple_omp_parallel_child_fn): Likewise.
	(gimple_omp_parallel_child_fn_ptr): Likewise.
	(gimple_omp_parallel_set_child_fn): Likewise.
	(gimple_omp_parallel_data_arg): Likewise.
	(gimple_omp_parallel_data_arg_ptr): Likewise.
	(gimple_omp_parallel_set_data_arg): Likewise.
	(gimple_omp_task_clauses): Likewise.
	(gimple_omp_task_clauses_ptr): Likewise.
	(gimple_omp_task_set_clauses): Likewise.
	(gimple_omp_task_child_fn): Likewise.
	(gimple_omp_task_child_fn_ptr): Likewise.
	(gimple_omp_task_set_child_fn): Likewise.
	(gimple_omp_task_data_arg): Likewise.
	(gimple_omp_task_data_arg_ptr): Likewise.
	(gimple_omp_task_set_data_arg): Likewise.
	(gimple_omp_taskreg_clauses): Likewise.
	(gimple_omp_taskreg_clauses_ptr): Likewise.
	(gimple_omp_taskreg_set_clauses): Likewise.
	(gimple_omp_taskreg_child_fn): Likewise.
	(gimple_omp_taskreg_child_fn_ptr): Likewise.
	(gimple_omp_taskreg_set_child_fn): Likewise.
	(gimple_omp_taskreg_data_arg): Likewise.
	(gimple_omp_taskreg_data_arg_ptr): Likewise.
	(gimple_omp_taskreg_set_data_arg): Likewise.
	(gimple_omp_task_copy_fn): Likewise.
	(gimple_omp_task_copy_fn_ptr): Likewise.
	(gimple_omp_task_set_copy_fn): Likewise.
	(gimple_omp_task_arg_size): Likewise.
	(gimple_omp_task_arg_size_ptr): Likewise.
	(gimple_omp_task_set_arg_size): Likewise.
	(gimple_omp_task_arg_align): Likewise.
	(gimple_omp_task_arg_align_ptr): Likewise.
	(gimple_omp_task_set_arg_align): Likewise.
	(gimple_omp_single_clauses): Likewise.
	(gimple_omp_single_clauses_ptr): Likewise.
	(gimple_omp_single_set_clauses): Likewise.
	(gimple_omp_target_clauses): Likewise.
	(gimple_omp_target_clauses_ptr): Likewise.
	(gimple_omp_target_set_clauses): Likewise.
	(gimple_omp_target_child_fn): Likewise.
	(gimple_omp_target_child_fn_ptr): Likewise.
	(gimple_omp_target_set_child_fn): Likewise.
	(gimple_omp_target_data_arg): Likewise.
	(gimple_omp_target_data_arg_ptr): Likewise.
	(gimple_omp_target_set_data_arg): Likewise.
	(gimple_omp_teams_clauses): Likewise.
	(gimple_omp_teams_clauses_ptr): Likewise.
	(gimple_omp_teams_set_clauses): Likewise.
	(gimple_omp_sections_clauses): Likewise.
	(gimple_omp_sections_clauses_ptr): Likewise.
	(gimple_omp_sections_set_clauses): Likewise.
	(gimple_omp_sections_control): Likewise.
	(gimple_omp_sections_control_ptr): Likewise.
	(gimple_omp_sections_set_control): Likewise.
	(gimple_omp_for_set_cond): Likewise.
	(gimple_omp_for_cond): Likewise.
	(gimple_omp_atomic_store_set_val): Likewise.
	(gimple_omp_atomic_store_val): Likewise.
	(gimple_omp_atomic_store_val_ptr): Likewise.
	(gimple_omp_atomic_load_set_lhs): Likewise.
	(gimple_omp_atomic_load_lhs): Likewise.
	(gimple_omp_atomic_load_lhs_ptr): Likewise.
	(gimple_omp_atomic_load_set_rhs): Likewise.
	(gimple_omp_atomic_load_rhs): Likewise.
	(gimple_omp_atomic_load_rhs_ptr): Likewise.
	(gimple_omp_continue_control_def): Likewise.
	(gimple_omp_continue_control_def_ptr): Likewise.
	(gimple_omp_continue_set_control_def): Likewise.
	(gimple_omp_continue_control_use): Likewise.
	(gimple_omp_continue_control_use_ptr): Likewise.
	(gimple_omp_continue_set_control_use): Likewise.
	(gimple_transaction_body_ptr): Likewise.
	(gimple_transaction_label): Likewise.
	(gimple_transaction_label_ptr): Likewise.
	(gimple_transaction_set_body): Likewise.
	(gimple_transaction_set_label): Likewise.

	* ipa-devirt.c (build_type_inheritance_graph): Likewise.
	* ipa-inline-analysis.c (inline_write_summary): Likewise.
	* ipa-ref.c (ipa_record_reference): Likewise.
	* ipa-reference.c (analyze_function): Likewise.
	(ipa_reference_write_optimization_summary): Likewise.
	* ipa.c (symtab_remove_unreachable_nodes): Likewise.
	(address_taken_from_non_vtable_p): Likewise.
	(comdat_can_be_unshared_p_1): Likewise.
	* lto-cgraph.c (lto_output_ref): Likewise.
	(add_references): Likewise.
	(compute_ltrans_boundary): Likewise.
	(output_symtab): Likewise.
	(input_ref): Likewise.
	(input_cgraph_1): Likewise.
	(output_cgraph_opt_summary): Likewise.
	* lto-streamer-out.c (lto_output): Likewise.
	(output_symbol_p): Likewise.
	* lto-streamer.h (lsei_next_function_in_partition): Likewise.
	(lsei_start_function_in_partition): Likewise.
	(lsei_next_variable_in_partition): Likewise.
	(lsei_start_variable_in_partition): Likewise.
	* symtab.c (insert_to_assembler_name_hash): Likewise.
	(unlink_from_assembler_name_hash): Likewise.
	(symtab_unregister_node): Likewise.
	(symtab_remove_node): Likewise.
	(dump_symtab_node): Likewise.
	(verify_symtab_base): Likewise.
	(verify_symtab_node): Likewise.
	(symtab_make_decl_local): Likewise.
	(symtab_alias_ultimate_target): Likewise.
	(symtab_resolve_alias): Likewise.
	(symtab_get_symbol_partitioning_class): Likewise.
	* tree-phinodes.c (allocate_phi_node): Likewise.
	(reserve_phi_args_for_new_edge): Likewise.
	(remove_phi_args): Likewise.
	* varpool.c (varpool_node_for_asm): Likewise.
	(varpool_remove_unreferenced_decls): Likewise.

gcc/lto/
	* lto-partition.c (add_references_to_partition): Update for
	removal of implicit pointer from the is-a.h API.
	(add_symbol_to_partition_1): Likewise.
	(contained_in_symbol): Likewise.
	(undo_partition): Likewise.
	(lto_balanced_map): Likewise.
	(promote_symbol): Likewise.
	* lto-symtab.c (lto_symtab_merge_symbols_1): Likewise.
	(lto_symtab_merge_symbols): Likewise.
	* lto.c (lto_wpa_write_files): Likewise.

From-SVN: r209719
2014-04-23 19:06:40 +00:00
Jeff Law
9219922e54 re PR tree-optimization/60902 (ffmpeg built with gcc 4.9 RC produces incorrect flac playback code)
PR tree-optimization/60902
	* tree-ssa-threadedge.c
	(record_temporary_equivalences_from_stmts_at_dest): Make sure to
	invalidate outputs from statements that do not produce useful
	outputs for threading.

	PR tree-optimization/60902
	* gcc.target/i386/pr60902.c: New test.

From-SVN: r209716
2014-04-23 12:04:46 -06:00
Alex Velenko
0e4d63c5ee [AArch64] VDUP Testcases
This patch adds vdup intrinsic testcases for AArch64. those testcases
are nice to have, as it allows to reason about vdup consistency for
both LE and BE compiler flavors.

From-SVN: r209713
2014-04-23 17:02:49 +00:00
Venkataramanan Kumar
36e170203e [AARCH64] Use standard patterns for stack protection.
From-SVN: r209712
2014-04-23 17:01:39 +00:00
Richard Earnshaw
57b77d46b6 [AArch64] Fully support rotate on logical operations.
From-SVN: r209711
2014-04-23 17:00:40 +00:00
James Greenhalgh
984c2f3063 [ARM] Initialize new tune_params values
gcc/

	* config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
	(arm_cortex_a12_tune): Likewise.

From-SVN: r209710
2014-04-23 16:37:05 +00:00
Kyrylo Tkachov
18b42b2a9c [AArch64] Add handling of bswap operations in rtx costs
* config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.

From-SVN: r209706
2014-04-23 15:30:53 +00:00
Kyrylo Tkachov
ea1e916837 [ARM][3/3] Recognise bitwise operations leading to SImode rev16
* config/arm/arm.md (arm_rev16si2): New pattern.
	(arm_rev16si2_alt): Likewise.
	* config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.

	* gcc.target/arm/rev16.c: New test.

From-SVN: r209705
2014-04-23 15:29:06 +00:00
Kyrylo Tkachov
f7d5cf8df3 [AArch64][2/3] Recognise rev16 operations on SImode and DImode data
* config/aarch64/aarch64.md (rev16<mode>2): New pattern.
       (rev16<mode>2_alt): Likewise.
       * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
       * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
       (aarch_rev16_shleft_mask_imm_p): Likewise.
       (aarch_rev16_p_1): Likewise.
       (aarch_rev16_p): Likewise.
       * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
       (aarch_rev16_shright_mask_imm_p): Likewise.
       (aarch_rev16_shleft_mask_imm_p): Likewise.

       * gcc.target/aarch64/rev16_1.c: New test.

From-SVN: r209704
2014-04-23 15:26:28 +00:00
Kyrylo Tkachov
9ac05ae590 [ARM][1/3] Add rev field to rtx cost tables
* config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
       * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
       rev cost.
       (cortex_a53_extra_costs): Likewise.
       (cortex_a57_extra_costs): Likewise.
       * config/arm/arm.c (cortexa9_extra_costs): Likewise.
       (cortexa7_extra_costs): Likewise.
       (cortexa8_extra_costs): Likewise.
       (cortexa12_extra_costs): Likewise.
       (cortexa15_extra_costs): Likewise.
       (v7m_extra_costs): Likewise.
       (arm_new_rtx_costs): Handle BSWAP.

From-SVN: r209703
2014-04-23 15:23:14 +00:00