143925 Commits

Author SHA1 Message Date
Jason Merrill
020491e63b re PR c++/65687 (Inconsistent behavior for __attribute__((__deprecated__)) between C and C++.)
PR c++/65687
	* decl.c (type_is_deprecated): Don't look into a typedef.

From-SVN: r232703
2016-01-21 15:26:21 -05:00
Jason Merrill
2f3932b910 re PR c++/40751 (G++ never packs typedef'd enums)
PR c++/40751
	PR c++/64987
	* decl.c (copy_type_enum): Respect TYPE_USER_ALIGN.

From-SVN: r232702
2016-01-21 15:26:09 -05:00
Jason Merrill
97ca3d0d59 re PR c++/43407 (Specifying visibility attribute of C++0x enum class emits warning)
PR c++/43407
	* decl.c (start_enum): Add attributes parameter.
	* parser.c (cp_parser_enum_specifier): Pass it.
	* pt.c (lookup_template_class_1): Pass it.
	* cp-tree.h: Adjust.

From-SVN: r232701
2016-01-21 15:26:02 -05:00
David Edelsohn
ed478de1a4 Record configure regenerate
From-SVN: r232698
2016-01-21 13:51:21 -05:00
David Edelsohn
4b7a526411 configure.ac (gcc_cv_as_powerpc_mfcrf, [...]): Detangle.
* configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
        Detangle.

From-SVN: r232697
2016-01-21 13:50:17 -05:00
Michael Meissner
e271cba1f5 Add missing file
From-SVN: r232695
2016-01-21 18:45:26 +00:00
Pat Haugen
2e987dd5f9 aix71.h (ASM_CPU_SPEC): Add entry for Power9.
* config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
	* config/rs6000/driver-rs6000.c (struct asm_names): Likewise.

From-SVN: r232694
2016-01-21 18:30:29 +00:00
Torvald Riegel
0b96ffdb17 libitm: Disable testing transaction-safe exceptions on Darwin and AIX.
* testsuite/libitm.c++/libstdc++-safeexc.C: Not supported on darwin
	or AIX.

From-SVN: r232693
2016-01-21 18:25:42 +00:00
Bernd Schmidt
2efc145507 Fix missed comment fix in last change.
From-SVN: r232690
2016-01-21 18:11:10 +00:00
Bernd Schmidt
9776e6920d Fix PR66178, ICE due to misexpansion of constant expressions involving labels.
PR middle-end/66178
	* expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
	drop EXPAND_INITIALIZER.
	* rtl.h (contains_symbolic_reference_p): Declare.
	* rtlanal.c (contains_symbolic_reference_p): New function.
	* simplify-rtx.c (simplify_binary_operation_1): Don't turn
	a subtraction into a NOT if symbolic constants are involved.

testsuite/
	PR middle-end/66178
	gcc.dg/torture/pr66178.c: New test.

From-SVN: r232689
2016-01-21 18:10:03 +00:00
Michael Meissner
a71c0334f7 float128-sed: New files to convert TF names to KF names for PowerPC IEEE 128-bit floating...
2016-01-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
	    Steven Munroe <munroesj@linux.vnet.ibm.com>
	    Tulio Magno Quites Machado Filho <tulioqm@br.ibm.com>

	* config/rs6000/float128-sed: New files to convert TF names to KF
	names for PowerPC IEEE 128-bit floating point support.
	* config/rs6000/float128-sed-hw: Likewise.

	* config/rs6000/float128-hw.c: New file for ISA 3.0 IEEE 128-bit
	floating point hardware support.

	* config/rs6000/float128-ifunc.c: New file to pick either IEEE
	128-bit floating point software emulation or use ISA 3.0 hardware
	support if it is available.

	* config/rs6000/quad-float128.h: New file to support IEEE 128-bit
	floating point.

	* config/rs6000/extendkftf2-sw.c: New file, convert IEEE 128-bit
	floating point to IBM extended double.

	* config/rs6000/trunctfkf2-sw.c: New file, convert IBM extended
	double to IEEE 128-bit floating point.

	* config/rs6000/t-float128: New Makefile fragments to enable
	building __float128 emulation support.
	* config/rs6000/t-float128-hw: Likewise.

	* config/rs6000/sfp-exceptions.c: New file to provide exception
	support for IEEE 128-bit floating point.

	* config/rs6000/floattikf.c: New files for converting between IEEE
	128-bit floating point and signed/unsigned 128-bit integers.
	* config/rs6000/fixunskfti.c: Likewise.
	* config/rs6000/fixkfti.c: Likewise.
	* config/rs6000/floatuntikf.c: Likewise.

	* config/rs6000/sfp-machine.h (_FP_W_TYPE_SIZE): Use 64-bit types
	when building on 64-bit systems, or when VSX is enabled.
	(_FP_W_TYPE): Likewise.
	(_FP_WS_TYPE): Likewise.
	(_FP_I_TYPE): Likewise.
	(TItype): Define on 64-bit systems.
	(UTItype): Likewise.
	(TI_BITS): Likewise.
	(_FP_MUL_MEAT_D): Add support for using 64-bit types.
	(_FP_MUL_MEAT_Q): Likewise.
	(_FP_DIV_MEAT_D): Likewise.
	(_FP_DIV_MEAT_Q): Likewise.
	(_FP_NANFRAC_D): Likewise.
	(_FP_NANFRAC_Q): Likewise.
	(ISA_BIT): Add exception support if we are being compiled on a
	machine with hardware floating point support to build the IEEE
	128-bit emulation functions.
	(FP_EX_INVALID): Likewise.
	(FP_EX_OVERFLOW): Likewise.
	(FP_EX_UNDERFLOW): Likewise.
	(FP_EX_DIVZERO): Likewise.
	(FP_EX_INEXACT): Likewise.
	(FP_EX_ALL): Likewise.
	(__sfp_handle_exceptions): Likewise.
	(FP_HANDLE_EXCEPTIONS): Likewise.
	(FP_RND_NEAREST): Likewise.
	(FP_RND_ZERO): Likewise.
	(FP_RND_PINF): Likewise.
	(FP_RND_MINF): Likewise.
	(FP_RND_MASK): Likewise.
	(_FP_DECL_EX): Likewise.
	(FP_INIT_ROUNDMODE): Likewise.
	(FP_ROUNDMODE): Likewise.

	* libgcc/config.host (powerpc*-*-linux*): If compiler can compile
	VSX code, enable IEEE 128-bit floating point.  If the compiler can
	compile IEEE 128-bit floating point code with ISA 3.0 IEEE 128-bit
	floating point hardware instructions and it supports declaring
	functions with the ifunc attribute, enable ifunc functions to
	switch between software and hardware support.
	* configure.ac (powerpc*-*-linux*): Likewise.
	* configure: Regenerate.



Co-Authored-By: Steven Munroe <munroesj@linux.vnet.ibm.com>
Co-Authored-By: Tulio Magno Quites Machado Filho <tulioqm@br.ibm.com>

From-SVN: r232685
2016-01-21 17:52:33 +00:00
Anton Blanchard
c8d3e08887 re PR target/63354 (gcc -pg -mprofile-kernel creates unused stack frames on leaf functions on ppc64le)
[gcc]

2016-01-21  Anton Blanchard  <anton@samba.org>
	    Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/63354
	* config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
	#define.
	* config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
	function.

[gcc/testsuite]

2016-01-21  Anton Blanchard  <anton@samba.org>
	    Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/63354
	* gcc.target/powerpc/pr63354.c:  New test.


Co-Authored-By: Bill Schmidt <wschmidt@linux.vnet.ibm.com>

From-SVN: r232684
2016-01-21 17:32:28 +00:00
Ajit Agarwal
b638c908a7 Issue wic prefetch instruction at call site.
This optimization is enabled with  microblaze target flag mxl-prefetch.

From-SVN: r232683
2016-01-21 17:15:52 +00:00
Ajit Agarwal
128c78a6fb Mark r20 as fixed. Mark r21 not fixed & allocatable in callee.
From-SVN: r232682
2016-01-21 17:10:54 +00:00
Yuri Rumyantsev
c7b19145ca re PR rtl-optimization/68920 (Undesirable if-conversion for a rarely taken branch)
gcc/

2016-01-21  Yuri Rumyantsev  <ysrumyan@gmail.com>

	PR rtl-optimization/68920
	* ifcvt.c (cond_move_process_if_block): Limit number of conditional
	moves.

From-SVN: r232680
2016-01-21 16:05:14 +00:00
Vladimir Makarov
35b707ff99 re PR rtl-optimization/68990 (wrong code at -O3 on x86_64-pc-linux-gnu in 32-bit mode.)
2016-01-21  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/68990
	* lra-coalesce.c (lra_coalesce): Invalidate value for the result
	pseudo instead of inheritance ones.

2016-01-21  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/68990
	* gcc.target/i386/pr68990: New.

From-SVN: r232679
2016-01-21 16:01:22 +00:00
David Edelsohn
975b10daea Fix typo
From-SVN: r232675
2016-01-21 09:08:35 -05:00
Nick Clifton
157b0829d7 re PR target/69129 (ICE in get_attr_got, at config/mips/mips.md:694 on mips-linux-gnu)
PR target/69129
	PR target/69012
	* config/mips/mips.c (mips_compute_frame_info): Initialise
	args_size and hard_frame_pointer_offset fields of the frame
	structure before calling mips_global_pointer.

	PR target/69129
	* gcc.target/mips/pr69129.c: New.

From-SVN: r232674
2016-01-21 14:07:01 +00:00
David Edelsohn
a52f938b1b configure.ac (gcc_cv_as_dwloc): Test support for debug frame section label reference.
* configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
label reference.
* configure: Regenerate.

From-SVN: r232673
2016-01-21 08:53:28 -05:00
Jonathan Wakely
ab56cbed60 libstdc++/69406 Fix test to check for supported headers
PR libstdc++/69406
	* include/bits/cpp_type_traits.h: Ensure C++ language linkage.
	* include/ext/type_traits.h: Likewise.
	* testsuite/17_intro/headers/c++2011/linkage.cc: Check autoconf macros
	for presence of C headers.
	* testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Adjust
	dg-error line number.
	* testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Likewise.
	* testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Likewise.
	* testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Likewise.

From-SVN: r232672
2016-01-21 13:33:27 +00:00
Paolo Carlini
aede6748d0 re PR c++/58046 (template operator= in SFINAE class)
2016-01-21  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58046
	* g++.dg/cpp0x/pr58046.C: New.

From-SVN: r232671
2016-01-21 10:55:30 +00:00
Richard Biener
3e0c32dfda graphite-optimize-isl.c (get_schedule_map): Fix typo.
2016-01-21  Richard Biener  <rguenther@suse.de>

	* graphite-optimize-isl.c (get_schedule_map): Fix typo.

From-SVN: r232670
2016-01-21 10:50:30 +00:00
Marcin Kościelnicki
d45ef29ed1 S/390: Fix missing .size directives.
It seems at some point the .size hook was hijacked to emit some
machine-specific directives, and the actual .size directive was
forgotten.  This caused problems for split-stack support, since
linker couldn't scan the function body for non-split-stack calls.

gcc/ChangeLog:

	* config/s390/s390.c (s390_asm_declare_function_size): Add code
	to actually emit the .size directive.

From-SVN: r232669
2016-01-21 09:55:38 +00:00
Stefan Sørensen
6d31cc758b re PR target/69187 (ICE: Aborted when native compiling neon code with __builtin_neon_vmlals_lanev4hi)
PR target/69187
	PR target/65624
	* config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
	args array size by one to avoid buffer overflow.

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

From-SVN: r232668
2016-01-21 10:52:46 +01:00
Marcin Kościelnicki
b929b47014 S/390: Use proper read-only data section for literals.
Previously, .rodata was hardcoded.  For C++ vague linkage functions,
this resulted in needlessly duplicated literals.  With the new split
stack support, this resulted in link errors, due to .rodata containing
relocations to the discarded text sections.

gcc/ChangeLog:

	* config/s390/s390.md (pool_section_start): Use switch_to_section
	to select proper read-only data section instead of hardcoding .rodata.
	(pool_section_end): Use switch_to_section to match the above.

From-SVN: r232667
2016-01-21 09:45:42 +00:00
Richard Biener
fac40b023f re PR tree-optimization/69378 (FAIL: g++.dg/tree-ssa/pr61034.C)
2016-01-21  Richard Biener  <rguenther@suse.de>

        PR tree-optimization/69378
	* tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
	(set_ssa_val_to): Use it for dominance checks taking into
	account not executable edges.

From-SVN: r232666
2016-01-21 08:50:38 +00:00
Jakub Jelinek
5463c2c893 re PR tree-optimization/69355 (Wrong results with -O1 optimization)
PR c++/69355
	* tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
	for bitsize instead of GET_MODE_PRECISION (mode).

	* g++.dg/torture/pr69355.C: New test.

From-SVN: r232663
2016-01-21 08:59:32 +01:00
Martin Sebor
2ef59b9811 PR c/52291 - __sync_fetch_and_add and friends poorly specified for pointer
PR c/52291 - __sync_fetch_and_add and friends poorly specified for pointer
    types

2016-01-20  Martin Sebor  <msebor@redhat.com>

	* extend.texi (__sync Builtins): Clarify the semantics of
	__sync_fetch_and_OP built-ins on pointers.
	(__atomic Builtins): Same.

From-SVN: r232662
2016-01-20 20:38:32 -07:00
Aditya Kumar
fa28f32bbc fix codegen error exposed by compute isl flow patch
we used to fail using an iv from a different loop.

	* graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
	(class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
	(is_valid_rename): Same.
	(translate_isl_ast_to_gimple::get_rename): Same.
	(translate_isl_ast_to_gimple::rename_all_uses): Same.
	(translate_isl_ast_to_gimple::rename_uses): Same.
	(get_new_name): Check for close_phi nodes.
	(copy_loop_phi_args): Use phi_node_kind.
	(translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
	(translate_isl_ast_to_gimple::copy_cond_phi_args): Same.

gcc/testsuite

	* gfortran.dg/graphite/interchange-3.f90: Adjust pattern.

Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r232660
2016-01-21 02:14:12 +00:00
Aditya Kumar
1d198f097b fix pr68692: reinstantiate the copy of internal parameters
Adding a testcase and reverting this patch:
[PATCH] remove parameter_rename_map

This map was used in the transition to the new scop detection: with the new scop
detection, we do not need this map anymore.

       * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
       Remove use of parameter_rename_map.
       (copy_def): Remove.
       (copy_internal_parameters): Remove.
       (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
       * sese.c (new_sese_info): Do not initialize parameter_rename_map.
       (free_sese_info): Do not free parameter_rename_map.
       (set_rename): Do not use parameter_rename_map.
       (rename_uses): Update call to set_rename.
       (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
       * sese.h (parameter_rename_map_t): Remove.
       (struct sese_info_t): Remove field parameter_rename_map.

Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r232659
2016-01-21 02:14:01 +00:00
Aditya Kumar
b920a04763 fix PR68976: only add loop close phi for names defined in loop
* graphite-isl-ast-to-gimple.c: Fix comment.
        * graphite-scop-detection.c (defined_in_loop_p): New.
        (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
        names defined in loop.

gcc/testsuite

        * gcc.dg/graphite/pr68976.c: New test.

Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r232658
2016-01-21 02:13:52 +00:00
Aditya Kumar
8f2252625a check for unstructured control flow
* graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
	Discard unstructured if-then-else regions.

Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r232657
2016-01-21 02:13:42 +00:00
Aditya Kumar
d8d262cf80 rewrite computation of iteration domains
* graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
        (cleanup_loop_iter_dom): Remove.
        (build_loop_iteration_domains): Remove.
        (build_scop_context): Remove.
        (build_scop_iteration_domain): Remove.
        (add_loop_constraints): New.
        (build_iteration_domains): New.
        (build_poly_scop): Call build_iteration_domains.

Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r232656
2016-01-21 02:13:33 +00:00
Aditya Kumar
eaca025e57 fix memory leak in scop-detection
* graphite-scop-detection.c
        (scop_detection::harmful_loop_in_region): Free dom and loops.
        (scop_detection::loop_body_is_valid_scop): Free bbs.

Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r232655
2016-01-21 02:13:24 +00:00
Aditya Kumar
5431c9ea56 record loops in execution order
* graphite-scop-detection.c (record_loop_in_sese): New.
	(gather_bbs::before_dom_children): Call record_loop_in_sese.
	(build_scops): Remove call to build_sese_loop_nests.
	* sese.c (sese_record_loop): Remove.
	(build_sese_loop_nests): Remove.
	(new_sese_info): Remove region->loops.
	(free_sese_info): Same.
	* sese.h (sese_contains_loop): Same.
	(build_sese_loop_nests): Remove.
	(sese_contains_loop): Remove.

Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r232654
2016-01-21 02:13:14 +00:00
Aditya Kumar
d7eff5b284 check that all loops are valid in the combined region
the bug was exposed by rewriting an if condition into an assert in the computation
of the loop iteration domains.

	* graphite-scop-detection.c (loop_is_valid_scop): Renamed loop_is_valid_in_scop.
	(scop_detection::harmful_stmt_in_region): Renamed harmful_loop_in_region.
	Call loop_is_valid_in_scop.

Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r232653
2016-01-21 02:13:05 +00:00
Aditya Kumar
f5d8368a71 add missing ast node for isl 0.15
* graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
	isl_ast_node_mark.

Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r232652
2016-01-21 02:12:56 +00:00
Aditya Kumar
0d12d32c91 remove unused variable
* graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
	* graphite.h (struct poly_bb): Remove field is_reduction.
        (PBB_IS_REDUCTION): Remove.

Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r232651
2016-01-21 02:12:37 +00:00
Aditya Kumar
14b1747c94 add more coalescing to simplify constraints
* graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
	(add_pdr_constraints): Same.
	(scop_get_reads): Same.
	(scop_get_must_writes): Same.
	(scop_get_may_writes): Same.
	(scop_get_original_schedule): Same.
	(extend_schedule): Same.
	(apply_schedule_on_deps): Same.
	(carries_deps): Same.
	(compute_deps): Same.
	(scop_get_dependences): Same.
	* graphite-isl-ast-to-gimple.c
	(translate_isl_ast_to_gimple::generate_isl_schedule): Same.
	* graphite-optimize-isl.c (get_schedule_for_band): Same.
	(get_schedule_for_band_list): Same.
	(get_schedule_map): Same.
	(apply_schedule_map_to_scop): Same.
	* graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
	(build_loop_iteration_domains): Same.
	(add_condition_to_pbb): Same.
	(add_param_constraints): Same.
	(pdr_add_memory_accesses): Same.
	(pdr_add_data_dimensions): Same.

Co-Authored-By: Sebastian Pop <s.pop@samsung.com>

From-SVN: r232650
2016-01-21 02:12:26 +00:00
Sandra Loosemore
42d4fbb0f4 invoke.texi (Instrumentation Options): Clarify -mmpx linking requirements.
2016-01-20  Sandra Loosemore <sandra@codesourcery.com>

	gcc/
	* doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
	requirements.

From-SVN: r232648
2016-01-20 20:03:42 -05:00
Sandra Loosemore
a1a3812dd3 common.opt (feliminate-dwarf2-dups): Replace references to "DWARF 2" with just "DWARF".
2016-01-20  Sandra Loosemore <sandra@codesourcery.com>

	gcc/
	* common.opt (feliminate-dwarf2-dups): Replace references to
	"DWARF 2" with just "DWARF".
	* config/ia64/ia64.opt (mdwarf2-asm): Likewise.
	* doc/extend.texi: Likewise.
	* doc/cpp.texi: Likewise.
	* doc/invoke.texi: Likewise.
	(Option Summary): Add -gdwarf to list of Debugging Options.
	(Debugging Options): Document -gdwarf.
	* doc/contrib.texi: Spell "DWARF" like that.

From-SVN: r232647
2016-01-20 19:59:54 -05:00
Matthias Klose
cc60e898a9 libtool-version: Remove.
2016-01-20  Matthias Klose  <doko@ubuntu.com>

        * libtool-version: Remove.

From-SVN: r232645
2016-01-21 00:17:37 +00:00
GCC Administrator
0a1ca72cc6 Daily bump.
From-SVN: r232644
2016-01-21 00:16:12 +00:00
Jakub Jelinek
73bfae68eb omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized warning.
* omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
	warning.  Fix up formatting.

From-SVN: r232641
2016-01-21 00:55:38 +01:00
Jakub Jelinek
bdd3aea68b re PR middle-end/67653 (ICE on valid code on x86_64-linux-gnu: verify_gimple failed)
PR middle-end/67653
	* gimplify.c (gimplify_asm_expr): Warn if it is too late to
	attempt to mark memory input operand addressable and
	call prepare_gimple_addressable in that case.  Don't adjust
	input_location for diagnostics, use error_at instead.

	* c-c++-common/pr67653.c: New test.
	* gcc.dg/torture/pr29119.c: Add dg-warning.

From-SVN: r232640
2016-01-21 00:43:58 +01:00
Peter Bergner
26a2e6aed4 ppc-auxv.h: New file.
gcc/
	* config/rs6000/ppc-auxv.h: New file.
	* config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
	(cpu_is): Likewise.
	(cpu_supports): Likewise.
	* config/rs6000/rs6000.c: include "ppc-auxv.h".
	(cpu_is_info): New variable.
	(cpu_supports_info): Likewise.
	(tcb_verification_symbol): Likewise.
	(cpu_builtin_p): Likewise.
	(cpu_expand_builtin): New function.
	(rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
	(rs6000_init_builtins): Likewise.
	(rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
	* config/rs6000/rs6000.h (TLS_REGNUM): New define.
	* configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
	* configure: Regenerate.
	* config.in: Likewise.
	* doc/extend.texi (PowerPC Built-in Functions): Document
	__builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.

gcc/testsuite/
	* gcc.target/powerpc/cpu-builtin-1.c: New test.

From-SVN: r232634
2016-01-20 14:30:24 -06:00
David Edelsohn
11c7bfe673 re PR target/68609 (PowerPC reciprocal estimate missed opportunities)
PR target/68609
        * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
        domain check.
        * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
        for V4SFmode.

From-SVN: r232632
2016-01-20 14:39:08 -05:00
Richard Henderson
b1de98e3d9 re PR target/69343 (Bootstrap failure on s390{,x}-linux)
PR bootstrap/69343
PR bootstrap/69339
PR tree-opt/68964

Revert:
gcc/
  * tree.c (tm_define_builtin): New.
  (find_tm_vector_type): New.
  (build_tm_vector_builtins): New.
  (build_common_builtin_nodes): Call it.
libitm/
  * Makefile.am (libitm_la_SOURCES) [ARCH_AARCH64]: Add vect128.cc
  (libitm_la_SOURCES) [ARCH_ARM]: Add neon.cc
  (libitm_la_SOURCES) [ARCH_PPC]: Add vect128.cc
  (libitm_la_SOURCES) [ARCH_S390]: Add vect128.cc
  * configure.ac (ARCH_AARCH64): New conditional.
  (ARCH_PPC, ARCH_S390): Likewise.
  * Makefile.in, configure: Rebuild.
  * libitm.h (_ITM_TYPE_M128): Always define.
  * vect64.cc: Split ...
  * vect128.cc: ... out of...
  * config/x86/x86_sse.cc: ... here.
  * config/arm/neon.cc: New file.

From-SVN: r232631
2016-01-20 10:53:56 -08:00
Torvald Riegel
7e10bcfa3c libstdc++: Darwin does not support weak refs without definition.
PR libstdc++/69310
        * config/os/bsd/darwin/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.

From-SVN: r232628
2016-01-20 17:47:03 +00:00
Jonathan Wakely
3f93466af4 Add C++11 <cmath> overloads to the global namespace
PR libstdc++/60401
	* include/c_compatibility/math.h (acosh, asinh, atanh, acbrt,
	copysign, erf, erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb,
	lgamma, llrint, llround, log1p, log2, logb, lrint, lround, nearbyint,
	nextafter, nexttoward, remainder, remquo, rint, round, scalbln, scalbn,
	tgamma, trunc) [__cplusplus >= 201103L && _GLIBCXX_USE_C99_MATH_TR1]:
	Add using declarations.
	* testsuite/26_numerics/headers/cmath/60401.cc: New.

From-SVN: r232627
2016-01-20 17:44:58 +00:00