Commit Graph

161258 Commits

Author SHA1 Message Date
Jonathan Wakely 6cda876da2 PR libstdc++/84159 fix appending strings to paths
The path::operator/=(const Source&) and path::append overloads were
still following the semantics of the Filesystem TS not C++17. Only
the path::operator/=(const path&) overload was correct.

This change adds more tests for path::operator/=(const path&) and adds
new tests to verify that the other append operations have equivalent
behaviour.

	PR libstdc++/84159
	* include/bits/fs_path.h (path::operator/=, path::append): Construct
	temporary path before calling _M_append.
	(path::_M_append): Change parameter to path and implement C++17
	semantics.
	* testsuite/27_io/filesystem/path/append/path.cc: Add helper function
	and more examples from the standard.
	* testsuite/27_io/filesystem/path/append/source.cc: New.
	* testsuite/27_io/filesystem/path/decompose/filename.cc: Add comment.
	* testsuite/27_io/filesystem/path/nonmember/append.cc: New.

From-SVN: r260255
2018-05-15 13:07:09 +01:00
Jonathan Wakely e4a5135fe3 Qualify std::__invoke in <variant> to prevent ADL
* include/std/variant (__gen_vtable_impl::__visit_invoke): Qualify
	__invoke to prevent ADL.

From-SVN: r260254
2018-05-15 13:06:57 +01:00
Richard Biener afe3cc7388 tree-ssa-dse.c (dse_classify_store): Remove use_stmt parameter, add by_clobber_p one.
2018-05-15  Richard Biener  <rguenther@suse.de>

	* tree-ssa-dse.c (dse_classify_store): Remove use_stmt parameter,
	add by_clobber_p one.  Change algorithm to collect all defs
	representing uses we need to walk and try reducing them to
	a single one before failing.
	(dse_dom_walker::dse_optimize_stmt): Adjust.

	* gcc.dg/tree-ssa/ssa-dse-31.c: New testcase.

From-SVN: r260253
2018-05-15 11:30:29 +00:00
Mark Wielaard 35b361b116 DWARF: Use DW_OP_addrx and DW_OP_constx for DWARF5.
For older DWARF and -gsplit-dwarf we want to emit DW_OP_GNU_addr_index
and DW_OP_GNU_const_index, but for DWARF5 we should use DW_OP_addrx
and DW_OP_constx.

gcc/ChangeLog:

	* dwarf2out.c (dwarf_OP): Handle DW_OP_addrx and DW_OP_constx.
	(size_of_loc_descr): Likewise.
	(output_loc_operands): Likewise.
	(output_loc_operands_raw): Likewise.
	(dw_addr_op): Use dwarf_OP () for DW_OP_constx and DW_OP_addrx.
	(resolve_addr_in_expr): Handle DW_OP_addrx and DW_OP_constx.
	(hash_loc_operands): Likewise.
	(compare_loc_operands): Likewise.

From-SVN: r260252
2018-05-15 08:37:46 +00:00
Mark Wielaard 01ec978cec DWARF calculate the number of indexed addresses.
The length in the .debug_addr unit header was calculated using the number
of elements in the addr_index_table. This is wrong because the entries in
the table are refcounted and only those with a refcount > 0 are actually
put in the index. Add a helper function count_index_addrs to get the
correct number of addresses in the index.

gcc/ChangeLog:

	* dwarf2out.c (count_index_addrs): New function.
	(dwarf2out_finish): Use count_index_addrs to calculate addrs_length.

From-SVN: r260251
2018-05-15 08:34:29 +00:00
Prathamesh Kulkarni a8c80d03d4 re PR tree-optimization/83648 (missing -Wsuggest-attribute=malloc on a trivial malloc-like function)
2018-05-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	PR tree-optimization/83648
	* ipa-pure-const.c (malloc_candidate_p): Allow function with NULL
	return value as malloc candidate.

testsuite/
	* gcc.dg/tree-ssa/pr83648.c: New test.
	* gcc.dg/tree-ssa/pr83648-2.c: Likewise.

From-SVN: r260250
2018-05-15 06:07:48 +00:00
Prathamesh Kulkarni 0fac5f2a7f re PR ipa/85734 (--suggest-attribute=malloc misdiagnoses static functions)
2018-05-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	PR ipa/85734
	* ipa-pure-const.c (warn_function_malloc): Pass value of known_finite param
	as true in call to suggest_attribute.

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

From-SVN: r260249
2018-05-15 04:44:33 +00:00
GCC Administrator a25c2c7966 Daily bump.
From-SVN: r260248
2018-05-15 00:16:27 +00:00
Eric Botcazou ef6bd9cda9 re PR target/85756 (wrong code at -Os on x86-64-linux-gnu in 32-bit mode)
PR target/85756
	* gnat.dg/opt70.adb: New test.
	* gnat.dg/opt70_pkg.ad[sb]: New helper.

From-SVN: r260239
2018-05-14 20:17:19 +00:00
Jason Merrill 403f22aae5 Handle TYPE_HAS_LATE_RETURN_TYPE like ref-qualifier and eh spec.
* tree.c (build_cp_fntype_variant): New.
	(build_ref_qualified_type, build_exception_variant)
	(strip_typedefs, cxx_copy_lang_qualifiers): Use it.
	(cxx_type_hash_eq, cp_check_qualified_type): Check
	TYPE_HAS_LATE_RETURN_TYPE.
	(cp_build_type_attribute_variant): Check cxx_type_hash_eq.
	(cp_build_qualified_type_real): No need to preserve C++ qualifiers.
	* class.c (build_clone): Use cxx_copy_lang_qualifiers.
	(adjust_clone_args): Likewise.
	* decl.c (grokfndecl): Add late_return_type_p parameter.  Use
	build_cp_fntype_variant.
	(grokdeclarator): Pass late_return_type_p to grokfndecl.
	(check_function_type): Use cxx_copy_lang_qualifiers.
	(static_fn_type): Use cxx_copy_lang_qualifiers.
	* decl2.c (build_memfn_type, maybe_retrofit_in_chrg)
	(cp_reconstruct_complex_type, coerce_new_type, coerce_delete_type)
	(change_return_type): Use cxx_copy_lang_qualifiers.
	* mangle.c (write_type): Use cxx_copy_lang_qualifiers.
	* parser.c (cp_parser_lambda_declarator_opt): Represent an explicit
	return type on the declarator like a normal trailing return type.
	* pt.c (tsubst_function_type): Use build_cp_fntype_variant.
	(copy_default_args_to_explicit_spec): Use cxx_copy_lang_qualifiers.
	* typeck.c (merge_types): Use build_cp_fntype_variant.

From-SVN: r260238
2018-05-14 16:08:11 -04:00
Segher Boessenkool dc05c538c9 rs6000: Fix -mreadonly-in-sdata documentation
For some reason I made both an @item and an @itemx for
-mreadonly-in-sdata.  This fixes it.


	* doc/invoke.texi (RS/6000 and PowerPC Options): Delete @itemx for
	-mreadonly-in-sdata.

From-SVN: r260237
2018-05-14 21:15:39 +02:00
Jonathan Wakely e77497ab77 PR libstdc++/81256 fix exception handling in basic_filebuf::close
PR libstdc++/81256
	* include/bits/fstream.tcc (basic_filebuf::close): Do not swallow
	exceptions from _M_terminate_output().
	* include/std/fstream (basic_filebuf::~basic_filebuf): Swallow any
	exceptions from close().
	* testsuite/27_io/basic_filebuf/close/81256.cc: New.

From-SVN: r260236
2018-05-14 19:57:45 +01:00
Kyrylo Tkachov 10c54e5b0e [AArch64] Add combine pattern to fuse AESE/AESMC instructions
When the AESE,AESD and AESMC, AESMC instructions are generated through the appropriate arm_neon.h intrinsics
we really want to keep them together when the AESE feeds into an AESMC and fusion is supported by the target CPU.
We have macro-fusion hooks and scheduling model forwarding paths defined to facilitate that.
It is, however, not always enough.

This patch adds another mechanism for doing that.
When we can detect during combine that the required dependency is exists (AESE -> AESMC, AESD -> AESIMC)
just keep them together with a combine pattern throughout the rest of compilation.
We won't ever want to split them.

The testcases generate 4 AESE(D) instructions in a block followed by 4 AES(I)MC instructions that
consume the corresponding results and it also adds a bunch of computations in-between so that the
AESE and AESMC instructions are not trivially back-to-back, thus exercising the compiler's ability
to bring them together.

With this patch all 4 pairs are fused whereas before a couple of fusions would be missed due to intervening
arithmetic and memory instructions.

	* config/aarch64/aarch64-simd.md (*aarch64_crypto_aese_fused):
	New pattern.
	(aarch64_crypto_aesd_fused): Likewise.

	* gcc.target/aarch64/crypto-fuse-1.c: New test.
	* gcc.target/aarch64/crypto-fuse-2.c: Likewise.

From-SVN: r260234
2018-05-14 16:29:13 +00:00
Wilco Dijkstra 43d0a8ee88 Remove remaining uses of * in patterns
Remove the remaining uses of '*' from aarch64.md.
Using '*' in alternatives is typically incorrect as it tells the register
allocator to ignore those alternatives.  Also add a missing '?' so we
prefer a floating point register for same-size int<->fp conversions.

    gcc/
	* config/aarch64/aarch64.md (mov<mode>): Remove '*' in alternatives.
	(movsi_aarch64): Likewise.
	(load_pairsi): Likewise.
	(load_pairdi): Likewise.
	(store_pairsi): Likewise.
	(store_pairdi): Likewise.
	(load_pairsf): Likewise.
	(load_pairdf): Likewise.
	(store_pairsf): Likewise.
	(store_pairdf): Likewise.
	(zero_extend): Likewise.
	(trunc): Swap alternatives.
	(fcvt_target): Add '?' to prefer w over r.

    testsuite/
	* gcc.target/aarch64/vmov_n_1.c: Update test.
	* gcc.target/aarch64/vfp-1.c: Update test.

From-SVN: r260233
2018-05-14 16:10:19 +00:00
Uros Bizjak 2717c64d76 * testsuite/ChangeLog: Add missing PR number.
From-SVN: r260232
2018-05-14 18:03:06 +02:00
Jakub Jelinek 9c1326aa5f re PR target/85756 (wrong code at -Os on x86-64-linux-gnu in 32-bit mode)
PR target/85756
	* config/i386/i386.md: Disallow non-commutative arithmetics in
	last twpeephole for mem {+,-,&,|,^}= x; mem != 0 after cmpelim
	optimization.  Use COMMUTATIVE_ARITH_P test rather than != MINUS
	in the peephole2 before it.

testsuite/ChangeLog:

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

From-SVN: r260231
2018-05-14 17:53:58 +02:00
Jonathan Wakely cd2f262b2f Add __attribute__((malloc) to allocator and remove unused code
* include/bits/valarray_array.h (__valarray_get_memory): Remove.
	(__valarray_get_storage): Call operator new directly. Remove ignored
	top-level restrict qualifier and add malloc attribute instead.
	(_Array<_Tp>::_Array(size_t)): Remove unused constructor.

From-SVN: r260230
2018-05-14 16:35:12 +01:00
Jonathan Wakely 6bfbebb063 PR libstdc++/67554 Do not pass null pointers to memcpy
PR libstdc++/67554
	* include/bits/valarray_array.h (_Array_copy_ctor<_Tp, true>)
	(_Array_copier<_Tp, true>): Do not pass null pointers to memcpy.

From-SVN: r260229
2018-05-14 16:35:06 +01:00
Paolo Carlini 9f613f06b0 cp-tree.h (TYPE_REF_P): New.
2018-05-14  Paolo Carlini  <paolo.carlini@oracle.com>

	* cp-tree.h (TYPE_REF_P): New.
	(TYPE_OBJ_P, TYPE_REF_OBJ_P, TYPE_REFFN_P): Update.
	* call.c (build_list_conv, build_aggr_conv, standard_conversion,
	direct_reference_binding, reference_binding, implicit_conversion,
	add_builtin_candidate, build_user_type_conversion_1, build_op_call_1,
	build_new_op_1, build_x_va_arg, conv_binds_ref_to_prvalue,
	build_over_call, perform_implicit_conversion_flags,
	extend_ref_init_temps, type_has_extended_temps): Use it.
	* class.c (one_inheriting_sig, check_field_decls,
	check_bases_and_members, find_flexarrays, finish_struct,
	fixed_type_or_null): Likewise.
	* constexpr.c (literal_type_p, cxx_bind_parameters_in_call,
	non_const_var_error, cxx_eval_constant_expression,
	potential_constant_expression_1): Likewise.
	* cp-gimplify.c (omp_var_to_track, omp_cxx_notice_variable,
	cp_genericize_r, cxx_omp_privatize_by_reference,
	cxx_omp_const_qual_no_mutable, cxx_omp_finish_clause,
	cp_fold_maybe_rvalue): Likewise.
	* cp-ubsan.c (cp_ubsan_maybe_instrument_downcast): Likewise.
	* cvt.c (build_up_reference, convert_to_reference,
	convert_from_reference, convert_to_void, noexcept_conv_p,
	fnptr_conv_p): Likewise.
	* decl.c (poplevel, check_for_uninitialized_const_var,
	check_initializer, initialize_local_var, cp_finish_decl,
	get_tuple_decomp_init, cp_finish_decomp, grokdeclarator, copy_fn_p,
	move_signature_fn_p, grok_op_properties, finish_function): Likewise.
	* decl2.c (grok_array_decl, cp_reconstruct_complex_type,
	decl_maybe_constant_var_p): Likewise.
	* error.c (dump_type_prefix, dump_expr): Likewise.
	* except.c (initialize_handler_parm, complete_ptr_ref_or_void_ptr_p,
	is_admissible_throw_operand_or_catch_parameter): Likewise.
	* expr.c (mark_use): Likewise.
	* init.c (build_zero_init_1, build_value_init_noctor,
	perform_member_init, diagnose_uninitialized_cst_or_ref_member_1,
	build_new, build_delete): Likewise.
	* lambda.c (build_lambda_object): Likewise.
	* mangle.c (write_expression, write_template_arg): Likewise.
	* method.c (forward_parm, do_build_copy_constructor,
	do_build_copy_assign, build_stub_object, constructible_expr,
	walk_field_subobs): Likewise.
	* parser.c (cp_parser_omp_for_loop_init,
	cp_parser_omp_declare_reduction_exprs,
	cp_parser_omp_declare_reduction): Likewise.
	* pt.c (convert_nontype_argument_function, convert_nontype_argument,
	convert_template_argument, tsubst_pack_expansion,
	tsubst_function_decl, tsubst_decl, tsubst, tsubst_copy_and_build,
	maybe_adjust_types_for_deduction, check_cv_quals_for_unify, unify,
	more_specialized_fn, invalid_nontype_parm_type_p, dependent_type_p_r,
	value_dependent_expression_p, build_deduction_guide): Likewise.
	* semantics.c (finish_handler_parms, finish_non_static_data_member,
	finish_compound_literal, omp_privatize_field,
	handle_omp_array_sections_1, handle_omp_array_sections,
	cp_check_omp_declare_reduction, finish_omp_reduction_clause,
	finish_omp_declare_simd_methods, cp_finish_omp_clause_depend_sink,
	finish_omp_clauses, finish_decltype_type, capture_decltype,
	finish_builtin_launder): Likewise.
	* tree.c (lvalue_kind, cp_build_reference_type, move,
	cp_build_qualified_type_real, stabilize_expr, stabilize_init): Likewise.
	* typeck.c (cxx_safe_arg_type_equiv_p, build_class_member_access_expr,
	cp_build_indirect_ref_1, convert_arguments, warn_for_null_address,
	cp_build_addr_expr_1, maybe_warn_about_useless_cast,
	build_static_cast_1, build_static_cast, build_reinterpret_cast_1,
	build_const_cast_1, cp_build_c_cast, cp_build_modify_expr,
	convert_for_initialization,
	maybe_warn_about_returning_address_of_local, check_return_expr,
	cp_type_quals, casts_away_constness, non_reference): Likewise.
	* typeck2.c (cxx_readonly_error, store_init_value,
	process_init_constructor_record, build_x_arrow, build_functional_cast,
	add_exception_specifier): Likewise.

From-SVN: r260228
2018-05-14 14:55:21 +00:00
Jason Merrill 403962eac2 pt.c (tsubst): Check valid_array_size_p.
* pt.c (tsubst) [ARRAY_TYPE]: Check valid_array_size_p.

	(tsubst_copy_and_build) [NEW_EXPR]: Clear in_decl.

gcc/c-family/
	* c-common.c (valid_array_size_p): Add complain parameter.
	* c-common.h: ...which defaults to true.

From-SVN: r260227
2018-05-14 10:49:45 -04:00
Jonathan Wakely 3846b8e4b3 PR libstdc++/82966 fix swapping of node handles
PR libstdc++/82966
	* include/bits/node_handle.h (_Node_handle_common::_M_swap): Use value
	instead of type.
	* testsuite/23_containers/set/modifiers/node_swap.cc: New.

From-SVN: r260226
2018-05-14 15:27:54 +01:00
Sebastian Peryt f8d9957ef8 i386-common.c (OPTION_MASK_ISA_CLDEMOTE_SET, [...]): New defines.
2018-05-14  Sebastian Peryt  <sebastian.peryt@intel.com>

gcc/

        * common/config/i386/i386-common.c (OPTION_MASK_ISA_CLDEMOTE_SET,
        OPTION_MASK_ISA_CLDEMOTE_UNSET): New defines.
        (ix86_handle_option): Handle -mcldemote.
        * config.gcc: New header.
        * config/i386/cldemoteintrin.h: New file.
        * config/i386/cpuid.h (bit_CLDEMOTE): New bit.
        * config/i386/driver-i386.c (host_detect_local_cpu): Detect
        -mcldemote.
        * config/i386/i386-c.c (ix86_target_macros_internal): Handle
        OPTION_MASK_ISA_CLDEMOTE.
        * config/i386/i386.c (ix86_target_string): Add -mcldemote.
        (ix86_valid_target_attribute_inner_p): Ditto.
        (enum ix86_builtins): Add IX86_BUILTIN_CLDEMOTE.
        (ix86_init_mmx_sse_builtins): Define __builtin_ia32_cldemote.
        (ix86_expand_builtin): Expand IX86_BUILTIN_CLDEMOTE.
        * config/i386/i386.h (TARGET_CLDEMOTE, TARGET_CLDEMOTE_P): New.
        * config/i386/i386.md (UNSPECV_CLDEMOTE): New.
        (cldemote): New.
        * config/i386/i386.opt: Add -mcldemote.
        * config/i386/x86intrin.h: New header.
        * doc/invoke.texi: Add -mcldemote.

gcc/testsuite/

        * gcc.target/i386/cldemote-1.c: New test.

From-SVN: r260224
2018-05-14 13:22:53 +02:00
Richard Biener 485fa7041b match-and-simplify.texi: Adjust :s documentation.
2018-05-14  Richard Biener  <rguenther@suse.de>

	* doc/match-and-simplify.texi: Adjust :s documentation.

From-SVN: r260223
2018-05-14 10:35:06 +00:00
Alexander Monakov c86ed2f12b gcc_qsort: avoid oversized memcpy temporaries
* sort.cc (REORDER_23): Pass the type for the temporaries instead of
	intended memcpy size.
	(REORDER_45): Likewise.

From-SVN: r260222
2018-05-14 11:51:51 +03:00
GCC Administrator cfbd17d53e Daily bump.
From-SVN: r260221
2018-05-14 00:16:30 +00:00
Alexander Monakov 82a04cd1d3 Introduce gcc_qsort
* sort.cc: New file.
	* system.h [!CHECKING_P] (qsort): Redirect to gcc_qsort.
	* vec.c (qsort_chk): Use gcc_qsort.
	* Makefile.in (OBJS-libcommon): Add sort.o.
	(build/sort.o): New target.  Use it...
	(BUILD_RTL): ... here, and...
	(build/gencfn-macros): ... here, and...
	(build/genmatch): ... here.

From-SVN: r260216
2018-05-13 21:23:06 +03:00
Kito Cheng 628332f85d [NDS32] Implment n15 pipeline.
gcc/
	* config.gcc (nds32*-*-*): Check that n15 is valid to --with-cpu.
	* config/nds32/nds32-graywolf.md: New file.
	* config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_GRAYWOLF.
	* config/nds32/nds32-pipelines-auxiliary.c: Implementation for n15
	pipeline.
	* config/nds32/nds32-protos.h: More declarations for n15 pipeline.
	* config/nds32/nds32-utils.c: More implementations for n15 pipeline.
	* config/nds32/nds32.md (pipeline_model): Add graywolf.
	* config/nds32/nds32.opt (mcpu): Support n15 pipeline cpus.
	* config/nds32/pipelines.md: Include n15 settings.

Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>

From-SVN: r260214
2018-05-13 17:18:31 +00:00
Steven G. Kargl 58148bb649 re PR fortran/63529 (Bad error and ICE with Cray Pointers in Modules)
2018-05-13  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/63529
	* gfortran.texi: Clarify documentation for Cray pointer and
	assumed-sized array.

From-SVN: r260213
2018-05-13 17:18:05 +00:00
Kito Cheng 96b07b108f [NDS32] Implment n12/n13 pipeline.
gcc/
	* config.gcc (nds32*-*-*): Check that n12/n13 are valid to --with-cpu.
	* config/nds32/nds32-n13.md: New file.
	* config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N12 and CPU_N13.
	* config/nds32/nds32-pipelines-auxiliary.c: Implementation for n12/n13
	pipeline.
	* config/nds32/nds32-protos.h: More declarations for n12/n13 pipeline.
	* config/nds32/nds32.md (pipeline_model): Add n13.
	* config/nds32/nds32.opt (mcpu): Support n12/n13 pipeline cpus.
	* config/nds32/pipelines.md: Include n13 settings.

Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>

From-SVN: r260212
2018-05-13 17:10:36 +00:00
Paul Thomas f094a21f31 re PR fortran/85742 (sizeof allocatable arrays returning wrong value)
2018-05-13  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/85742
	* trans-types.c (gfc_get_dtype_rank_type): Reorder evaluation
	of 'size'. If the element type is a pointer use the size of the
	TREE_TYPE of the type, unless it is VOID_TYPE. In this latter
	case, set the size to zero.

2018-05-13  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/85742
	* gfortran.dg/assumed_type_9.f90 : New test.

From-SVN: r260211
2018-05-13 17:01:16 +00:00
Steven G. Kargl 798a67a4ce gfortran.h: Remove prototype.
2018-05-13  Steven G. Kargl  <kargl@gcc.gnu.org>

	* gfortran.h: Remove prototype.
	* symbol.c (gfc_new_undo_checkpoint): Remove unused function.

From-SVN: r260210
2018-05-13 16:33:30 +00:00
Ville Voutilainen 456dbc7275 re PR libstdc++/80165 (Constexpr tuple of variant doesn't work)
PR libstdc++/80165
* testsuite/20_util/variant/80165.cc: New.

From-SVN: r260209
2018-05-13 13:36:12 +03:00
Kito Cheng 2f2ebf951b [NDS32] Implment n10 pipeline.
gcc/
	* config.gcc (nds32*-*-*): Check that n10/d10 are valid to --with-cpu.
	* config/nds32/nds32-n10.md: New file.
	* config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N10.
	* config/nds32/nds32-pipelines-auxiliary.c: Implementation for n10
	pipeline.
	* config/nds32/nds32-protos.h: More declarations for n10 pipeline.
	* config/nds32/nds32-utils.c: More implementations for n10 pipeline.
	* config/nds32/nds32.md (pipeline_model): Add n10.
	* config/nds32/nds32.opt (mcpu): Support n10 pipeline cpus.
	* config/nds32/pipelines.md: Include n10 settings.

Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>

From-SVN: r260207
2018-05-13 06:52:02 +00:00
Monk Chiang 7c32ef413a [NDS32] Add DSP extension instructions.
gcc/
	* config.gcc (nds32be-*-*): Handle --with-ext-dsp.
	* config/nds32/constants.md (unspec_element, unspec_volatile_element):
	Add enum values for DSP extension instructions.
	* config/nds32/constraints.md (Iu06, IU06, CVp5, CVs5, CVs2, CVhi):
	New constraints.
	* config/nds32/iterators.md (shifts, shiftrt, sat_plus, all_plus,
	sat_minus, all_minus, plus_minus, extend, sumax, sumin, sumin_max):
	New code iterators.
	(su, zs, uk, opcode, add_rsub, add_sub): New code attributes.
	* config/nds32/nds32-dspext.md: New file for DSP implementation.
	* config/nds32/nds32-intrinsic.c: Implementation of DSP extension.
	* config/nds32/nds32-intrinsic.md: Likewise.
	* config/nds32/nds32_intrinsic.h: Likewise.
	* config/nds32/nds32-md-auxiliary.c: Likewise.
	* config/nds32/nds32-memory-manipulation.c: Consider DSP extension.
	* config/nds32/nds32-predicates.c (const_vector_to_hwint): New.
	(nds32_valid_CVp5_p, nds32_valid_CVs5_p): New.
	(nds32_valid_CVs2_p, nds32_valid_CVhi_p): New.
	* config/nds32/nds32-protos.h: New declarations for DSP extension.
	* config/nds32/nds32-utils.c (extract_mac_non_acc_rtx): New case
	TYPE_DMAC in switch statement.
	* config/nds32/nds32.c: New checking and implementation for DSP
	extension instructions.
	* config/nds32/nds32.h: Likewise.
	* config/nds32/nds32.md: Likewise.
	* config/nds32/nds32.opt (mhw-abs, mext-dsp): New options.
	* config/nds32/predicates.md: Implement new predicates for DSP
	extension.

Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>
Co-Authored-By: Kito Cheng <kito.cheng@gmail.com>

From-SVN: r260206
2018-05-13 05:41:37 +00:00
GCC Administrator ab22e6ce3f Daily bump.
From-SVN: r260205
2018-05-13 00:16:55 +00:00
GCC Administrator 9889f06b9d Daily bump.
From-SVN: r260194
2018-05-12 00:16:30 +00:00
Michael Meissner 43842b395a rs6000.md (mov<mode>_softfloat, FMOVE32): Reformat alternatives and attributes so it is easier to identify which...
2018-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.md (mov<mode>_softfloat, FMOVE32):
	Reformat alternatives and attributes so it is easier to identify
	which constraints/attributes go with which instruction.
	(mov<mode>_hardfloat32, FMOVE64): Likewise.
	(mov<mode>_softfloat32, FMOVE64): Likewise.
	(mov<mode>_hardfloat64, FMOVE64): Likewise.
	(mov<mode>_softfloat64, FMOVE64): Likewise.

From-SVN: r260190
2018-05-11 22:47:03 +00:00
Steven G. Kargl 8132af9db3 re PR fortran/85542 (ICE in check_inquiry, at fortran/expr.c:2426)
2018-05-11  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/85542
	* expr.c (check_inquiry): Avoid NULL pointer dereference.
 
2018-05-11  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/85542
	* gfortran.dg/pr85542.f90: New test.

From-SVN: r260182
2018-05-11 18:58:21 +00:00
Edward Smith-Rowland b5f52fb14f ...and actually resture the *new* testcase.
From-SVN: r260172
2018-05-11 17:38:26 +00:00
Edward Smith-Rowland 841c9597da Restore the testcase that was clobbered by the recent PR83140 patches.
* libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions
	/02_assoc_legendre/check_value.cc

From-SVN: r260168
2018-05-11 16:58:46 +00:00
Kelvin Nilsen 528b874b2f extend.texi (PowerPC Built-in Functions): Rename this subsection.
gcc/ChangeLog:

2018-05-11  Kelvin Nilsen  <kelvin@gcc.gnu.org>

	* doc/extend.texi (PowerPC Built-in Functions): Rename this
	subsection.
	(Basic PowerPC Built-in Functions): The new name of the
	subsection previously known as "PowerPC Built-in Functions".
	(Basic PowerPC Built-in Functions Available on all Configurations):
	New subsubsection.
	(Basic PowerPC Built-in Functions Available on ISA 2.05): Likewise.
	(Basic PowerPC Built-in Functions Available on ISA 2.06): Likewise.
	(Basic PowerPC Built-in Functions Available on ISA 2.07): Likewise.
	(Basic PowerPC Built-in Functions Available on ISA 3.0): Likewise.

From-SVN: r260167
2018-05-11 16:53:38 +00:00
Martin Jambor 063c552959 Check is_single_const in intersect_with_plats
2018-05-11  Martin Jambor  <mjambor@suse.cz>

	PR ipa/85655
	* ipa-cp.c (intersect_with_plats): Check that the lattice contains
	single const.

testsuite/
	* g++.dg/lto/pr85655_0.C: New test.

From-SVN: r260165
2018-05-11 17:55:15 +02:00
Richard Earnshaw b901c875c9 [arm] PR target/85733 Restore be8 linking behaviour for ARMv6-M and products deriving from its capabilities
My patch last year to automate passing the be8 flag to the linker had
a nasty flaw in that I forgot entirely that the ARMv6-M architecture
did not derive its capabilities directly from the ARMv6 capability
list, but was a new group of capabilities (since it needs to leave out
the ARM -- notm -- feature bit).  The feature list defined was thus
missing the be8 bit.  Furthermore, any product derived from that
feature group consequently lacked the be8 feature as well and this
included all ARMv7 and ARMv8 parts.

The fix is embarrassingly simple...

	PR target/85733
	* config/arm/arm-cpus.in (fgroup ARMv6m): Add be8 feature.

From-SVN: r260162
2018-05-11 13:29:41 +00:00
Sebastian Peryt 55f31ed10f i386-common.c (OPTION_MASK_ISA_WAITPKG_SET, [...]): New defines.
2018-05-11  Sebastian Peryt  <sebastian.peryt@intel.com>

gcc/

        * common/config/i386/i386-common.c (OPTION_MASK_ISA_WAITPKG_SET,
        OPTION_MASK_ISA_WAITPKG_UNSET): New defines.
        (ix86_handle_option): Handle -mwaitpkg.
        * config.gcc: New header.
        * config/i386/cpuid.h (bit_WAITPKG): New bit.
        * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mwaitpkg.
        * config/i386/i386-builtin-types.def ((UINT8, UNSIGNED, UINT64)): New
        function type.
        * config/i386/i386-c.c (ix86_target_macros_internal): Handle
        OPTION_MASK_ISA_WAITPKG.
        * config/i386/i386.c (ix86_target_string): Add -mwaitpkg.
        (ix86_option_override_internal): Add PTA_WAITPKG.
        (ix86_valid_target_attribute_inner_p): Add -mwaitpkg.
        (enum ix86_builtins): Add IX86_BUILTIN_UMONITOR, IX86_BUILTIN_UMWAIT,
        IX86_BUILTIN_TPAUSE.
        (ix86_init_mmx_sse_builtins): Define __builtin_ia32_umonitor,
        __builtin_ia32_umwait and __builtin_ia32_tpause.
        (ix86_expand_builtin): Expand IX86_BUILTIN_UMONITOR,
        IX86_BUILTIN_UMWAIT, IX86_BUILTIN_TPAUSE.
        * config/i386/i386.h (TARGET_WAITPKG, TARGET_WAITPKG_P): New.
        * config/i386/i386.md (UNSPECV_UMWAIT, UNSPECV_UMONITOR,
        UNSPECV_TPAUSE): New.
        (umwait, umwait_rex64, umonitor_<mode>, tpause, tpause_rex64): New.
        * config/i386/i386.opt: Add -mwaitpkg.
        * config/i386/waitpkgintrin.h: New file.
        * config/i386/x86intrin.h: New header.
        * doc/invoke.texi: Add -mwaitpkg.

gcc/testsuite/

        * gcc.target/i386/tpause-1.c: New test.
        * gcc.target/i386/umonitor-1.c: New test.

From-SVN: r260161
2018-05-11 15:17:42 +02:00
Richard Earnshaw c40a8be808 [arm] PR target/85606 prefer armv6s-m for armv6-m parts
When Arm introduced ARMv6-M there were two variants, ARMv6-M and
ARMv6S-M.  The two differed only in support for the SVC instruction.
Later on SVC was then made a mandatory part of ARMv6-M and the
ARMv6S-M name was dropped.  GCC and GAS, however still recognize both
names and at least some versions of GAS still distinguish between the
two.

To address this, this patch changes the architecture for the ARMv6-m
cortex parts (m0, m0plus, m1 and the variants will small multiply
units) to use the ARMv6S-M name in conjunction with the assembler.
This avoids problems with them rejecting code that was previously
accepted with older versions of GCC where we did not pass an explicit
architecture string through to the compiler when using -mcpu on the
command line.

	PR target/85606
	* config/arm/arm-cpus.in: Add comment that ARMv6-m and ARMv6S-m are now
	equivalent.
	(cortex-m0): Use armv6s-m isa.
	(cortex-m0plus): Likewise.
	(cortex-m1): Likewise.
	(cortex-m0.small-multiply): Likewise.
	(cortex-m0plus.small-multiply): Likewise.
	(cortex-m1.small-multiply): Likewise.

From-SVN: r260157
2018-05-11 09:28:10 +00:00
Jakub Jelinek 1c9ee609df re PR c/85696 (OpenMP with variably modified and default(none) won't compile)
PR c/85696
	* c-omp.c (c_omp_predetermined_sharing): Return
	OMP_CLAUSE_DEFAULT_SHARED for artificial vars with integral type.

	* cp-tree.h (cxx_omp_predetermined_sharing_1): New prototype.
	* cp-gimplify.c (cxx_omp_predetermined_sharing): New wrapper around
	cxx_omp_predetermined_sharing_1.  Rename old function to ...
	(cxx_omp_predetermined_sharing_1): ... this.
	* semantics.c (finish_omp_clauses): Use cxx_omp_predetermined_sharing_1
	instead of cxx_omp_predetermined_sharing.

	* c-c++-common/gomp/pr85696.c: New test.

From-SVN: r260156
2018-05-11 09:42:50 +02:00
Allan Sandfeld Jensen 5a599c460e re PR tree-optimization/85692 (Two source permute not used for vector initialization)
PR tree-optimization/85692
	* tree-ssa-forwprop.c (simplify_vector_constructor): Try two
	source permute as well.

	* gcc.target/i386/pr85692.c: New test.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r260155
2018-05-11 09:38:49 +02:00
Martin Liska 19916065b7 Support LLVM style of no_sanitize attribute (PR sanitizer/85556).
2018-05-11  Martin Liska  <mliska@suse.cz>

        PR sanitizer/85556
	* doc/extend.texi: Document LLVM style format for no_sanitize
	attribute.
2018-05-11  Martin Liska  <mliska@suse.cz>

        PR sanitizer/85556
	* c-attribs.c (handle_no_sanitize_attribute): Iterate all
	TREE_LIST values.
2018-05-11  Martin Liska  <mliska@suse.cz>

        PR sanitizer/85556
	* c-c++-common/ubsan/attrib-6.c: New test.

From-SVN: r260154
2018-05-11 07:37:35 +00:00
Jason Merrill 683be2f77b decl.c (cp_finish_decl): Don't instantiate auto variable.
* decl.c (cp_finish_decl): Don't instantiate auto variable.

	(check_static_variable_definition): Allow auto.
	* constexpr.c (ensure_literal_type_for_constexpr_object): Likewise.

From-SVN: r260150
2018-05-10 22:54:52 -04:00
Edward Smith-Rowland 3a2e98ce72 correct changelog!
2018-05-10  Edward Smith-Rowland  <3dw4rd@verizon.net>

	PR libstdc++/83140 - assoc_legendre returns negated value when m is odd
	* include/tr1/legendre_function.tcc (__assoc_legendre_p): Add __phase
	argument defaulted to +1.  Doxy comments on same.
	* testsuite/special_functions/02_assoc_legendre/
	check_value.cc: Regen.
	* testsuite/tr1/5_numerical_facilities/special_functions/
	02_assoc_legendre/check_value.cc: Regen.

From-SVN: r260149
2018-05-11 01:44:05 +00:00