Commit Graph

157106 Commits

Author SHA1 Message Date
Uros Bizjak
48b960eb9f * ChangeLog: Fix whitespace.
From-SVN: r254200
2017-10-28 21:42:06 +02:00
Paolo Carlini
a3cbda1b7c re PR c++/70971 (ICE in parameter pack expansion)
2017-10-28  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/70971
	* g++.dg/torture/pr70971.C: New.

From-SVN: r254199
2017-10-28 16:10:10 +00:00
Andre Vehreschild
5ce15f69d2 check.c (gfc_check_co_reduce): Clarify error message.
gcc/fortran/ChangeLog:

2017-10-28  Andre Vehreschild  <vehre@gcc.gnu.org>

	* check.c (gfc_check_co_reduce): Clarify error message.

From-SVN: r254197
2017-10-28 14:10:59 +02:00
Paul Thomas
575b527e57 re PR fortran/81758 ([OOP] Broken vtab)
2017-10-28  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/81758
	* trans-expr.c (trans_class_vptr_len_assignment): 'vptr_expr'
	must only be set if the right hand side expression is of type
	class.

2017-10-28  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/81758
	* gfortran.dg/class_63.f90: New test.

From-SVN: r254195
2017-10-28 08:49:26 +00:00
Jakub Jelinek
7324369a12 target.c (struct gomp_coalesce_buf): New type.
* target.c (struct gomp_coalesce_buf): New type.
	(MAX_COALESCE_BUF_SIZE, MAX_COALESCE_BUF_GAP): Define.
	(gomp_coalesce_buf_add, gomp_to_device_kind_p): New functions.
	(gomp_copy_host2dev): Add CBUF argument, if copying into
	the cached ranges, memcpy into buffer instead of copying
	into device.
	(gomp_map_vars_existing, gomp_map_pointer, gomp_map_fields_existing):
	Add CBUF argument, pass it through to other calls.
	(gomp_map_vars): Aggregate copies from host to device if small enough
	and with small enough gaps in between into memcpy into a buffer and
	fewer host to device copies from the buffer.
	(gomp_update): Adjust gomp_copy_host2dev caller.

From-SVN: r254194
2017-10-28 09:02:39 +02:00
Steven G. Kargl
fdfcd5ecc5 re PR fortran/82620 ([PDT] ICE: free_expr0(): Bad expr type (at fortran/expr.c:497))
2017-10-27  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/82620
	* match.c (gfc_match_allocate): Exit early on syntax error.

2017-10-27  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/82620
	* gfortran.dg/allocate_error_7.f90: new test.

From-SVN: r254193
2017-10-28 01:06:18 +00:00
GCC Administrator
615c85eefa Daily bump.
From-SVN: r254192
2017-10-28 00:16:19 +00:00
Paolo Carlini
df7a517dfa re PR c++/82218 ([C++1x] constexpr on static member function causes segfault)
2017-10-27  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/82218
	* g++.dg/cpp1y/constexpr-82218.C: New.

From-SVN: r254189
2017-10-27 23:14:43 +00:00
Eric Botcazou
eada55b96e bb-reorder.c (find_traces_1_round): Fix off-by-one index.
* bb-reorder.c (find_traces_1_round): Fix off-by-one index.
	Move comment around.  Do not reset best_edge for a copiable
	destination if the copy would cause a partition change.
	(better_edge_p): Remove redundant check.

From-SVN: r254188
2017-10-27 22:55:59 +00:00
Daniel Santos
a3123cd867 PR target/82268 Correct FAIL when configured --with-cpu
* gcc.target/i386/pr82196-1.c (dg-options): Add -mno-avx.

From-SVN: r254186
2017-10-27 22:15:32 +00:00
Uros Bizjak
b5176e0ab5 i386-protos.h (ix86_fp_compare_mode): Remove prototype.
* config/i386/i386-protos.h (ix86_fp_compare_mode): Remove prototype.

From-SVN: r254184
2017-10-27 23:52:26 +02:00
Michael Meissner
ee5fd23a48 builtins.c (CASE_MATHFN_FLOATN): New helper macro to add cases for math functions that have _Float<N> and...
[gcc]
2017-10-27  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* builtins.c (CASE_MATHFN_FLOATN): New helper macro to add cases
	for math functions that have _Float<N> and _Float<N>X variants.
	(mathfn_built_in_2): Add support for math functions that have
	_Float<N> and _Float<N>X variants.
	(DEF_INTERNAL_FLT_FLOATN_FN): New helper macro.
	(expand_builtin_mathfn_ternary): Add support for fma with
	_Float<N> and _Float<N>X variants.
	(expand_builtin): Likewise.
	(fold_builtin_3): Likewise.
	* builtins.def (DEF_EXT_LIB_FLOATN_NX_BUILTINS): New macro to
	create math function _Float<N> and _Float<N>X variants as external
	library builtins.
	(BUILT_IN_COPYSIGN _Float<N> and _Float<N>X variants) Use
	DEF_EXT_LIB_FLOATN_NX_BUILTINS to make built-in functions using
	the __builtin_ prefix and if not strict ansi, without the prefix.
	(BUILT_IN_FABS _Float<N> and _Float<N>X variants): Likewise.
	(BUILT_IN_FMA _Float<N> and _Float<N>X variants): Likewise.
	(BUILT_IN_FMAX _Float<N> and _Float<N>X variants): Likewise.
	(BUILT_IN_FMIN _Float<N> and _Float<N>X variants): Likewise.
	(BUILT_IN_NAN _Float<N> and _Float<N>X variants): Likewise.
	(BUILT_IN_SQRT _Float<N> and _Float<N>X variants): Likewise.
	* builtin-types.def (BT_FN_FLOAT16_FLOAT16_FLOAT16_FLOAT16): New
	function signatures for fma _Float<N> and _Float<N>X variants.
	(BT_FN_FLOAT32_FLOAT32_FLOAT32_FLOAT32): Likewise.
	(BT_FN_FLOAT64_FLOAT64_FLOAT64_FLOAT64): Likewise.
	(BT_FN_FLOAT128_FLOAT128_FLOAT128_FLOAT128): Likewise.
	(BT_FN_FLOAT32X_FLOAT32X_FLOAT32X_FLOAT32X): Likewise.
	(BT_FN_FLOAT64X_FLOAT64X_FLOAT64X_FLOAT64X): Likewise.
	(BT_FN_FLOAT128X_FLOAT128X_FLOAT128X_FLOAT128X): Likewise.
	* gencfn-macros.c (print_case_cfn): Add support for math functions
	that have _Float<N> and _Float<N>X variants.
	(print_define_operator_list): Likewise.
	(fltfn_suffixes): Likewise.
	(main): Likewise.
	* internal-fn.def (DEF_INTERNAL_FLT_FLOATN_FN): New helper macro
	for math functions that have _Float<N> and _Float<N>X variants.
	(SQRT): Add support for sqrt, copysign, fmin and fmax _Float<N>
	and _Float<N>X variants.
	(COPYSIGN): Likewise.
	(FMIN): Likewise.
	(FMAX): Likewise.
	* fold-const.c (tree_call_nonnegative_warnv_p): Add support for
	copysign, fma, fmax, fmin, and sqrt _Float<N> and _Float<N>X
	variants.
	(integer_valued_read_call_p): Likewise.
	* fold-const-call.c (fold_const_call_ss): Likewise.
	(fold_const_call_sss): Add support for copysign, fmin, and fmax
	_Float<N> and _Float<N>X variants.
	(fold_const_call_ssss): Add support for fma _Float<N> and
	_Float<N>X variants.
	* gimple-ssa-backprop.c (backprop::process_builtin_call_use): Add
	support for copysign and fma _Float<N> and _Float<N>X variants.
	(backprop::process_builtin_call_use): Likewise.
	* tree-call-cdce.c (can_test_argument_range); Add support for
	sqrt _Float<N> and _Float<N>X variants.
	(edom_only_function): Likewise.
	(get_no_error_domain): Likewise.
	* tree-ssa-math-opts.c (internal_fn_reciprocal): Likewise.
	* tree-ssa-reassoc.c (attempt_builtin_copysign): Add support for
	copysign _Float<N> and _Float<N>X variants.
	* config/rs6000/rs6000-builtin.def (SQRTF128): Delete, this is now
	handled by machine independent code.
	(FMAF128): Likewise.
	* doc/cpp.texi (Common Predefined Macros): Document defining
	__FP_FAST_FMAF<N> and __FP_FAST_FMAF<N>X if the backend supports
	fma _Float<N> and _Float<N>X variants.

[gcc/c]
2017-10-27  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* c-decl.c (header_for_builtin_fn): Add support for copysign, fma,
	fmax, fmin, and sqrt _Float<N> and _Float<N>X variants.

[gcc/c-family]
2017-10-27  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* c-cppbuiltin.c (mode_has_fma): Add support for PowerPC KFmode.
	(c_cpp_builtins): If a machine has a fast fma _Float<N> and
	_Float<N>X variant, define __FP_FAST_FMA<N> and/or
	__FP_FAST_FMA<N>X.

[gcc/testsuite]
2017-10-27  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* gcc.target/powerpc/float128-hw.c: Add support for all 4 FMA
	variants.  Check various conversions to/from float128.  Check
	negation.  Use {\m...\M} in the tests.
	* gcc.target/powerpc/float128-hw2.c: New test for implicit
	_Float128 math functions.
	* gcc.target/powerpc/float128-hw3.c: New test for strict ansi mode
	not implicitly adding the _Float128 math functions.
	* gcc.target/powerpc/float128-fma2.c: Delete, test is no longer
	valid.
	* gcc.target/powerpc/float128-sqrt2.c: Likewise.

From-SVN: r254168
2017-10-27 18:15:38 +00:00
Uros Bizjak
3f563e0b55 re PR target/82692 (Ordered comparisons used for unordered built-ins)
PR target/82692
	* config/i386/i386-modes.def (CCFPU): Remove definition.
	* config/i386/i386.c (put_condition_mode): Remove CCFPU mode handling.
	(ix86_cc_modes_compatible): Ditto.
	(ix86_expand_carry_flag_compare): Ditto.
	(ix86_expand_int_movcc): Ditto.
	(ix86_expand_int_addcc): Ditto.
	(ix86_reverse_condition): Ditto.
	(ix86_unordered_fp_compare): Rename from ix86_fp_compare_mode.
	Return true/false for unordered/ordered fp comparisons.
	(ix86_cc_mode): Always return CCFPmode for float mode comparisons.
	(ix86_prepare_fp_compare_args): Update for rename.
	(ix86_expand_fp_compare): Update for rename.  Generate unordered
	compare RTXes wrapped with UNSPEC_NOTRAP unspec.
	(ix86_expand_sse_compare_and_jump): Ditto.
	* config/i386/predicates.md (fcmov_comparison_operator):
	Remove CCFPU mode handling.
	(ix86_comparison_operator): Ditto.
	(ix86_carry_flag_operator): Ditto.
	* config/i386/i386.md (UNSPEC_NOTRAP): New unspec.
	(*cmpu<mode>_i387): Wrap compare RTX with UNSPEC_NOTRAP unspec.
	(*cmpu<mode>_cc_i387): Ditto.
	(FPCMP): Remove mode iterator.
	(unord): Remove mode attribute.
	(unord_subst): New define_subst transformation
	(unord): New define_subst attribute.
	(unordered): Ditto.
	(*cmpi<unord><MODEF:mode>): Rewrite using unord_subst transformation.
	(*cmpi<unord>xf_i387): Ditto.
	* config/i386/sse.md (<sse>_<unord>comi<round_saeonly_name>): Merge
	from <sse>_comi<round_saeonly_name> and <sse>_ucomi<round_saeonly_name>
	using unord_subst transformation.
	* config/i386/subst.md (SUBST_A): Remove CCFP and CCFPU modes.
	(round_saeonly): Also handle CCFP mode.
	* reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_NOTRAP unspec.
	Remove UNSPEC_SAHF unspec handling.

testsuite/ChangeLog:

	PR target/82692
	* gcc.dg/torture/pr82692.c: New test.

From-SVN: r254167
2017-10-27 20:13:14 +02:00
Jan Hubicka
68d1c4bfd7 * x86-tune.def (X86_TUNE_INTER_UNIT_MOVES_TO_VEC): Disable for Zen.
From-SVN: r254166
2017-10-27 18:05:14 +00:00
Will Schmidt
759ebd17e3 fold-vec-neg-char.c: New.
[testsuite]

2017-10-27  Will Schmidt  <will_schmidt@vnet.ibm.com>

	* gcc.target/powerpc/fold-vec-neg-char.c: New.
	* gcc.target/powerpc/fold-vec-neg-floatdouble.c: New.
	* gcc.target/powerpc/fold-vec-neg-int.c: New.
	* gcc.target/powerpc/fold-vec-neg-longlong.c: New.
	* gcc.target/powerpc/fold-vec-neg-short.c: New.

From-SVN: r254164
2017-10-27 17:52:55 +00:00
Jerry DeLisle
730de5a59e re PR libfortran/81938 (valgrind error message and heap-buffer-overflow on address sanitized libgfortran.so)
2017-10-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
	    Rimvydas (RJ)

	PR libgfortran/81938
	io/format.c (free_format_data): Don't try to free vlist
	descriptors past the end of the fnode array.

From-SVN: r254163
2017-10-27 17:50:22 +00:00
Jonathan Wakely
6c6705a904 Simplify _Node_insert_return to avoid including <tuple>
* include/bits/node_handle.h (_Node_insert_return::get): Avoid
	use of std::tie and std::get.

From-SVN: r254162
2017-10-27 18:49:36 +01:00
Jonathan Wakely
5880ce184a List headers in Makefile in alphabetical order
* include/Makefile.am: Put headers in alphabetical order.
	* include/Makefile.in: Regenerate.

From-SVN: r254161
2017-10-27 18:49:32 +01:00
Jonathan Wakely
29453a9ffd Remove noexcept from filesystem iterators and operations (LWG 3013, 3014)
* include/bits/fs_dir.h (directory_iterator): Remove noexcept from
	constructors and increment member (LWG 3013).
	(recursive_directory_iterator): Likewise.
	* include/bits/fs_ops.h (copy, copy_file, create_directories)
	(is_empty, remove_all): Remove noexcept (LWG 3013 and LWG 3014).
	* src/filesystem/std-dir.cc (directory_iterator::increment)
	(recursive_directory_iterator::increment): Remove noexcept.
	* src/filesystem/std-ops.cc (copy, copy_file, create_directories)
	(is_empty, remove_all): Remove noexcept

From-SVN: r254160
2017-10-27 18:49:29 +01:00
Jonathan Wakely
9a3effa411 Make filesystem::file_status default constructor non-explicit (LWG 2787)
* include/bits/fs_dir.h (file_status): Make default constructor
	non-explicit (LWG 2787).
	* testsuite/27_io/filesystem/file_status/1.cc: New test.
	* testsuite/experimental/filesystem/file_status/1.cc: New test.

From-SVN: r254159
2017-10-27 18:49:21 +01:00
Paolo Carlini
ba05366bad pt.c (invalid_nontype_parm_type_p): Return a bool instead of an int.
2017-10-27  Paolo Carlini  <paolo.carlini@oracle.com>

	* pt.c (invalid_nontype_parm_type_p): Return a bool instead of an int.

From-SVN: r254158
2017-10-27 17:32:58 +00:00
Thomas Koenig
6c6bde3070 re PR fortran/56342 (MATMUL with PARAMETER: Simplification usually doesn't work)
2017-10-27  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/56342
	* simplify.c (is_constant_array_expr): If the expression is
	a parameter array, call gfc_simplify_expr.

2017-10-27  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/56342
	* gfortran.dg/matmul_const.f90: New test.

From-SVN: r254157
2017-10-27 17:11:42 +00:00
Jeff Law
a09ca93a71 gimple-ssa-sprintf.c: Include domwalk.h.
* gimple-ssa-sprintf.c: Include domwalk.h.
	(class sprintf_dom_walker): New class, derived from dom_walker.
	(sprintf_dom_walker::before_dom_children): New function.
	(struct call_info): Moved into sprintf_dom_walker class
	(compute_formath_length, handle_gimple_call): Likewise.
	(sprintf_length::execute): Call the dominator walker rather
	than walking the statements.

From-SVN: r254156
2017-10-27 10:54:49 -06:00
Jeff Law
a565d95cd0 tree-vrp.c (check_all_array_refs): Do not use wi->info to smuggle gimple statement locations.
* tree-vrp.c (check_all_array_refs): Do not use wi->info to smuggle
	gimple statement locations.
	(check_array_bounds): Corresponding changes.  Get the statement's
	location directly from wi->stmt.

From-SVN: r254154
2017-10-27 09:35:37 -06:00
Palmer Dabbelt
f44d7b243a RISC-V: Correct and improve the "-mabi" documentation
The documentation for the "-mabi" argument on RISC-V was incorrect.  We
chose to treat this as a documentation bug rather than a code bug, and
to make the documentation match what GCC currently does.  In the
process, I also improved the documentation a bit.

Thanks to Alex Bradbury for finding the bug!

PR target/82717: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82717

gcc/ChangeLog

2017-10-27  Palmer Dabbelt  <palmer@dabbelt.com>

        PR target/82717
        * doc/invoke.texi (RISC-V) <-mabi>: Correct and improve.

From-SVN: r254153
2017-10-27 15:22:43 +00:00
Jan Hubicka
4c249d9737 x86-tune.def (X86_TUNE_PARTIAL_REG_DEPENDENCY, [...]): Disable for Haswell and newer CPUs.
* config/i386/x86-tune.def (X86_TUNE_PARTIAL_REG_DEPENDENCY,
	X86_TUNE_MOVX): Disable for Haswell and newer CPUs.

From-SVN: r254152
2017-10-27 14:30:00 +00:00
Martin Liska
7181cca3d0 Fix profiledbootstrap.
2017-10-27  Martin Liska  <mliska@suse.cz>

	* Makefile.tpl: Use proper name of folder as it was renamed
	during transition to 4 stages.
	* Makefile.in: Regenerate.

From-SVN: r254150
2017-10-27 13:13:05 +00:00
Jonathan Wakely
d49f254a6c Provide filesystem::path overloads for file streams (LWG 2676, partial)
* include/std/fstream (basic_filebuf::_If_path): New SFINAE helper.
	(basic_filebuf::open<Path>(const Path&, const ios_base::openmode&))
	(basic_ifstream<Path>(const Path&, const ios_base::openmode&))
	(basic_ifstream::open<Path>(const Path&, const ios_base::openmode&))
	(basic_ofstream<Path>(const Path&, const ios_base::openmode&))
	(basic_ofstream::open<Path>(const Path&, const ios_base::openmode&))
	(basic_fstream<Path>(const Path&, const ios_base::openmode&))
	(basic_fstream::open<Path>(const Path&, const ios_base::openmode&)):
	New constructors and member functions.
	* testsuite/27_io/basic_filebuf/open/char/path.cc: New test.
	* testsuite/27_io/basic_fstream/cons/char/path.cc: New test.
	* testsuite/27_io/basic_fstream/open/char/path.cc: New test.
	* testsuite/27_io/basic_ifstream/cons/char/path.cc: New test.
	* testsuite/27_io/basic_ifstream/open/char/path.cc: New test.
	* testsuite/27_io/basic_ofstream/cons/char/path.cc: New test.
	* testsuite/27_io/basic_ofstream/open/char/path.cc: New test.

From-SVN: r254148
2017-10-27 13:39:01 +01:00
Jan Hubicka
9333319b52 * gcc.target/i386/pr70021.c: Add -mtune=skylake.
From-SVN: r254147
2017-10-27 12:36:28 +00:00
Jakub Jelinek
76ff5c2403 re PR target/82703 (Wrong addition of std::array components with -O2 -ftree-loop-vectorize -ftree-slp-vectorize (works fine with -O2))
PR target/82703
	* config/i386/i386-protos.h (maybe_get_pool_constant): Removed.
	* config/i386/i386.c (maybe_get_pool_constant): Removed.
	(ix86_split_to_parts): Use avoid_constant_pool_reference instead of
	maybe_get_pool_constant.
	* config/i386/predicates.md (zero_extended_scalar_load_operand):
	Likewise.

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

From-SVN: r254145
2017-10-27 14:20:55 +02:00
Jonathan Wakely
0348dd008a Define std::filesystem::path::format enum (P0430R2)
* include/bits/fs_path.h (path::format): Define new enumeration type.
	(path(string_type&&), path<Source>(const Source&))
	(path<InputIterator>(InputIterator, InputIterator))
	(path<Source>(const Source&, const locale&))
	(path<InputIterator>(InputIterator, InputIterator, const locale&)):
	Add format parameter.
	* testsuite/27_io/filesystem/path/construct/format.cc: New test.

From-SVN: r254144
2017-10-27 13:01:49 +01:00
Rainer Orth
57e7db041f Update install.texi for Solaris 12 rename
* doc/install.texi (Specific, i?86-*-solaris2.10): Simplify gas
	2.26 caveat.  Update gas and gld versions.
	(Specific, *-*-solaris2*): Update binutils version.  Remove caveat
	reference.

From-SVN: r254143
2017-10-27 11:59:37 +00:00
Prathamesh Kulkarni
0fab169b28 Extend ipa-pure-const pass to propagate malloc attribute.
2017-10-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* cgraph.h (set_malloc_flag): Declare.
	* cgraph.c (set_malloc_flag_1): New function.
	(set_malloc_flag): Likewise.
	* ipa-fnsummary.h (ipa_call_summary): Add new field is_return_callee.
	* ipa-fnsummary.c (ipa_call_summary::reset): Set is_return_callee to
	false.
	(read_ipa_call_summary): Add support for reading is_return_callee.
	(write_ipa_call_summary): Stream is_return_callee.
	* ipa-inline.c (ipa_inline): Remove call to ipa_free_fn_summary.
	* ipa-pure-const.c: Add headers ssa.h, alloc-pool.h, symbol-summary.h,
	ipa-prop.h, ipa-fnsummary.h.
	(pure_const_names): Change to static.
	(malloc_state_e): Define.
	(malloc_state_names): Define.
	(funct_state_d): Add field malloc_state.
	(varying_state): Set malloc_state to STATE_MALLOC_BOTTOM.
	(check_retval_uses): New function.
	(malloc_candidate_p): Likewise.
	(analyze_function): Add support for malloc attribute.
	(pure_const_write_summary): Stream malloc_state.
	(pure_const_read_summary): Add support for reading malloc_state.
	(dump_malloc_lattice): New function.
	(propagate_malloc): New function.
	(warn_function_malloc): New function.
	(ipa_pure_const::execute): Call propagate_malloc and
	ipa_free_fn_summary.
	(pass_local_pure_const::execute): Add support for malloc attribute.
	* ssa-iterators.h (RETURN_FROM_IMM_USE_STMT): New macro.
	* doc/invoke.texi: Document Wsuggest-attribute=malloc.

testsuite/
	* gcc.dg/ipa/propmalloc-1.c: New test-case.
	* gcc.dg/ipa/propmalloc-2.c: Likewise.
	* gcc.dg/ipa/propmalloc-3.c: Likewise.

From-SVN: r254140
2017-10-27 10:48:49 +00:00
Paolo Carlini
e89b556baf re PR c++/71385 (Internal compiler error when using concept as placeholder)
2017-10-27  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/71385
	* g++.dg/concepts/pr71385.C: New.

From-SVN: r254139
2017-10-27 10:45:25 +00:00
Paolo Carlini
001ee39a52 re PR c++/80739 (Accessing value of X through a Y glvalue in a constant expression)
2017-10-27  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/80739
	* g++.dg/cpp1y/constexpr-80739.C: New.

From-SVN: r254138
2017-10-27 08:53:08 +00:00
Martin Liska
ddcb1c887b Document --coverage and fork-like functions (PR gcov-profile/82457).
2017-10-27  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/82457
	* doc/invoke.texi: Document that one needs a non-strict ISO mode
	for fork-like functions to be properly instrumented.

From-SVN: r254137
2017-10-27 08:34:56 +00:00
Richard Biener
830717d0a3 re PR middle-end/81659 (ICE in verify_dominators, at dominance.c:1184)
2017-10-27  Richard Biener  <rguenther@suse.de>

	PR middle-end/81659
	* tree-eh.c (pass_lower_eh_dispatch::execute): Free dominator
	info when we redirected EH.

	* g++.dg/torture/pr81659.C: New testcase.

From-SVN: r254136
2017-10-27 08:03:16 +00:00
Michael Collison
22be0d084c aarch64.md (<optab>_trunc><vf><GPI:mode>2): New pattern.
2017-10-26  Michael Collison  <michael.collison@arm.com>

	* config/aarch64/aarch64.md(<optab>_trunc><vf><GPI:mode>2):
	New pattern.
	(<optab>_trunchf<GPI:mode>2: New pattern.
	(<optab>_trunc<vgp><GPI:mode>2: New pattern.
	* config/aarch64/iterators.md (wv): New mode attribute.
	(vf, VF): New mode attributes.
	(vgp, VGP): New mode attributes.
	(s): Update attribute with SImode and DImode prefixes.
	* testsuite/gcc.target/aarch64/fix_trunc1.c: New testcase.
	* testsuite/gcc.target/aarch64/vect-vcvt.c: Fix scan-assembler
	directives to allow float or integer destination registers for
	fcvtz[su].

From-SVN: r254133
2017-10-27 06:05:58 +00:00
GCC Administrator
acec245b35 Daily bump.
From-SVN: r254131
2017-10-27 00:16:19 +00:00
Jonathan Wakely
d67be4437a Protect more algorithms from overloaded comma operators
* include/bits/stl_algo.h (__find_if_not_n, generate_n): Cast to void
	to ensure overloaded comma not used.
	* include/bits/stl_algobase.h (__fill_n_a, equal): Likewise.
	* include/bits/stl_uninitialized.h (__uninitialized_fill_n)
	(__uninitialized_fill_n_a, __uninitialized_default_n_1)
	(__uninitialized_default_n_a, __uninitialized_copy_n)
	(__uninitialized_copy_n_pair): Likewise
	* testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
	Use test iterator wrappers with overloaded comma operator.
	* testsuite/25_algorithms/fill_n/1.cc: Likewise.
	* testsuite/25_algorithms/generate_n/1.cc: New test.
	* testsuite/25_algorithms/stable_partition/1.cc: New test.
	* testsuite/util/testsuite_iterators.h (operator,): Add deleted
	non-member comma operator with iterator wrappers as right operand.

From-SVN: r254128
2017-10-27 00:50:40 +01:00
Ian Lance Taylor
e1b76fde8f compiler: explicitly convert between type aliases
Otherwise we can get a crash in the backend.
    
    Test case is https://golang.org/cl/73790.
    
    Reviewed-on: https://go-review.googlesource.com/73810

From-SVN: r254126
2017-10-26 23:04:12 +00:00
Sandra Loosemore
1cef1159db constraints.md ("S"): Match r0rel_constant_p too.
2017-10-26  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* config/nios2/constraints.md ("S"): Match r0rel_constant_p too.
	* config/nios2/nios2-protos.h (r0rel_constant_p): Declare.
	* config/nios2/nios2.c: (nios2_r0rel_sec_regex): New.
	(nios2_option_overide): Initialize it.  Don't allow R0-relative 
	addressing with PIC.
	(nios2_rtx_costs): Handle r0rel_constant_p like gprel_constant_p.
	(nios2_symbolic_constant_p): Likewise.
	(nios2_legitimate_address_p): Likewise.
	(nios2_r0rel_section_name_p): New.
	(nios2_symbol_ref_in_r0rel_data_p): New.
	(nios2_emit_move_sequence): Handle r0rel_constant_p.
	(r0rel_constant_p): New.
	(nios2_print_operand_address): Handle r0rel_constant_p.
	(nios2_cdx_narrow_form_p): Likewise.
	* config/nios2/nios2.opt (mr0rel-sec=): New option.
	* doc/invoke.texi (Option Summary): Add -mr0rel-sec.
	(Nios II Options): Document -mr0rel-sec.

	gcc/testsuite/
	* gcc.target/nios2/gpopt-r0rel-sec.c: New.

From-SVN: r254124
2017-10-26 16:52:15 -04:00
Sandra Loosemore
de10fca02a nios2.c: Include xregex.h.
2017-10-26  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* config/nios2/nios2.c: Include xregex.h.
	(nios2_gprel_sec_regex): New.
	(nios2_option_overide): Initialize it.  Don't allow GP-relative 
	addressing with PIC.
	(nios2_small_section_name_p): Check for regex match.
	* config/nios2/nios2.opt (mgprel-sec=): New option.
	* doc/invoke.texi (Option Summary): Add -mgprel-sec.
	(Nios II Options): Document -mgprel-sec.

	gcc/testsuite/
	* gcc.target/nios2/gpopt-gprel-sec.c: New.

From-SVN: r254123
2017-10-26 16:49:48 -04:00
Jim Wilson
31498bee1a Fix hyphenation build-time path and install-time path.
gcc/
	* doc/invoke.texi (-fdebug-prefix-map): Expand documentation.

From-SVN: r254122
2017-10-26 13:44:58 -07:00
James E Wilson
1cf6c17b6d Add some usage info -fdebug-prefix-map= docs.
gcc/
	* doc/invoke.texi (-fdebug-prefix-map): Expand documentation.

From-SVN: r254121
2017-10-26 13:41:20 -07:00
Tom de Vries
8a866b8296 Fix unsharing of GIMPLE_OMP_{SINGLE,TARGET,TEAMS} in gimple_copy
2017-10-26  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/82707
	* gimple.c (gimple_copy): Fix unsharing of
	GIMPLE_OMP_{SINGLE,TARGET,TEAMS}.

From-SVN: r254120
2017-10-26 20:09:24 +00:00
Olga Makhotina
7e23f4a6f8 Adding missing CMP* intrinsics
gcc/
	* config/i386/avx512fintrin.h (_mm512_cmpeq_pd_mask,
	_mm512_cmple_pd_mask, _mm512_cmplt_pd_mask,
	_mm512_cmpneq_pd_mask, _mm512_cmpnle_pd_mask,
	_mm512_cmpnlt_pd_mask, _mm512_cmpord_pd_mask,
	_mm512_cmpunord_pd_mask, _mm512_mask_cmpeq_pd_mask,
	_mm512_mask_cmple_pd_mask, _mm512_mask_cmplt_pd_mask,
	_mm512_mask_cmpneq_pd_mask, _mm512_mask_cmpnle_pd_mask,
	_mm512_mask_cmpnlt_pd_mask, _mm512_mask_cmpord_pd_mask,
	_mm512_mask_cmpunord_pd_mask, _mm512_cmpeq_ps_mask,
	_mm512_cmple_ps_mask, _mm512_cmplt_ps_mask,
	_mm512_cmpneq_ps_mask, _mm512_cmpnle_ps_mask,
	_mm512_cmpnlt_ps_mask, _mm512_cmpord_ps_mask,
	_mm512_cmpunord_ps_mask, _mm512_mask_cmpeq_ps_mask,
	_mm512_mask_cmple_ps_mask, _mm512_mask_cmplt_ps_mask,
	_mm512_mask_cmpneq_ps_mask, _mm512_mask_cmpnle_ps_mask,
	_mm512_mask_cmpnlt_ps_mask, _mm512_mask_cmpord_ps_mask,
	_mm512_mask_cmpunord_ps_mask): New intrinsics.
gcc/testsuite/
	* gcc.target/i386/avx512f-vcmpps-1.c (_mm512_cmpeq_ps_mask,
	_mm512_cmple_ps_mask, _mm512_cmplt_ps_mask,
	_mm512_cmpneq_ps_mask, _mm512_cmpnle_ps_mask,
	_mm512_cmpnlt_ps_mask, _mm512_cmpord_ps_mask,
	_mm512_cmpunord_ps_mask, _mm512_mask_cmpeq_ps_mask,
	_mm512_mask_cmple_ps_mask, _mm512_mask_cmplt_ps_mask,
	_mm512_mask_cmpneq_ps_mask, _mm512_mask_cmpnle_ps_mask,
	_mm512_mask_cmpnlt_ps_mask, _mm512_mask_cmpord_ps_mask,
	_mm512_mask_cmpunord_ps_mask): Test new intrinsics.
	* gcc.target/i386/avx512f-vcmpps-2.c (_mm512_cmpeq_ps_mask,
	_mm512_cmple_ps_mask, _mm512_cmplt_ps_mask,
	_mm512_cmpneq_ps_mask, _mm512_cmpnle_ps_mask,
	_mm512_cmpnlt_ps_mask, _mm512_cmpord_ps_mask,
	_mm512_cmpunord_ps_mask, _mm512_mask_cmpeq_ps_mask,
	_mm512_mask_cmple_ps_mask, _mm512_mask_cmplt_ps_mask,
	_mm512_mask_cmpneq_ps_mask, _mm512_mask_cmpnle_ps_mask,
	_mm512_mask_cmpnlt_ps_mask, _mm512_mask_cmpord_ps_mask,
	_mm512_mask_cmpunord_ps_mask): Test new intrinsics.
	* gcc.target/i386/avx512f-vcmppd-1.c (_mm512_cmpeq_pd_mask,
	_mm512_cmple_pd_mask, _mm512_cmplt_pd_mask,
	_mm512_cmpneq_pd_mask, _mm512_cmpnle_pd_mask,
	_mm512_cmpnlt_pd_mask, _mm512_cmpord_pd_mask,
	_mm512_cmpunord_pd_mask, _mm512_mask_cmpeq_pd_mask,
	_mm512_mask_cmple_pd_mask, _mm512_mask_cmplt_pd_mask,
	_mm512_mask_cmpneq_pd_mask, _mm512_mask_cmpnle_pd_mask,
	_mm512_mask_cmpnlt_pd_mask, _mm512_mask_cmpord_pd_mask,
	_mm512_mask_cmpunord_pd_mask): Test new intrinsics.
	* gcc.target/i386/avx512f-vcmppd-2.c (_mm512_cmpeq_pd_mask,
	_mm512_cmple_pd_mask, _mm512_cmplt_pd_mask,
	_mm512_cmpneq_pd_mask, _mm512_cmpnle_pd_mask,
	_mm512_cmpnlt_pd_mask, _mm512_cmpord_pd_mask,
	_mm512_cmpunord_pd_mask, _mm512_mask_cmpeq_pd_mask,
	_mm512_mask_cmple_pd_mask, _mm512_mask_cmplt_pd_mask,
	_mm512_mask_cmpneq_pd_mask, _mm512_mask_cmpnle_pd_mask,
	_mm512_mask_cmpnlt_pd_mask, _mm512_mask_cmpord_pd_mask,
	_mm512_mask_cmpunord_pd_mask): Test new intrinsics.

From-SVN: r254118
2017-10-26 18:18:56 +00:00
Michael Meissner
73b0ac0b82 aix.h (TARGET_IEEEQUAD_DEFAULT): Set long double default to IBM.
[gcc]
2017-10-26  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/aix.h (TARGET_IEEEQUAD_DEFAULT): Set long double
	default to IBM.
	* config/rs6000/darwin.h (TARGET_IEEEQUAD_DEFAULT): Likewise.
	* config/rs6000/rs6000.opt (-mabi=ieeelongdouble): Move the
	warning to rs6000.c.  Remove the Undocumented flag, since it has
	been documented.
	(-mabi=ibmlongdouble): Likewise.
	* config/rs6000/rs6000.c (TARGET_IEEEQUAD_DEFAULT): If it is not
	already set, set the default format for long double.
	(rs6000_debug_reg_global): Print whether long double is IBM or
	IEEE.
	(rs6000_option_override_internal): Rework setting long double
	format.  Only warn if the user is changing the long double default
	and they did not use -Wno-psabi.
	* doc/invoke.texi (PowerPC options): Update the documentation for
	-mabi=ieeelongdouble and -mabi=ibmlongdouble.

From-SVN: r254116
2017-10-26 17:33:38 +00:00
Richard Sandiford
bd5a2c67cf Add wider_subreg_mode helper functions
This patch adds helper functions that say which of the two modes
involved in a subreg is the larger, preferring the outer mode in
the event of a tie.  It also converts IRA and reload to track modes
instead of byte sizes, since this is slightly more convenient when
variable-sized modes are added later.

2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

gcc/
	* rtl.h (wider_subreg_mode): New function.
	* ira.h (ira_sort_regnos_for_alter_reg): Take a machine_mode *
	rather than an unsigned int *.
	* ira-color.c (regno_max_ref_width): Replace with...
	(regno_max_ref_mode): ...this new variable.
	(coalesced_pseudo_reg_slot_compare): Update accordingly.
	Use wider_subreg_mode.
	(ira_sort_regnos_for_alter_reg): Likewise.  Take a machine_mode *
	rather than an unsigned int *.
	* lra-constraints.c (uses_hard_regs_p): Use wider_subreg_mode.
	(process_alt_operands): Likewise.
	(invariant_p): Likewise.
	* lra-spills.c (assign_mem_slot): Likewise.
	(add_pseudo_to_slot): Likewise.
	* lra.c (collect_non_operand_hard_regs): Likewise.
	(add_regs_to_insn_regno_info): Likewise.
	* reload1.c (regno_max_ref_width): Replace with...
	(regno_max_ref_mode): ...this new variable.
	(reload): Update accordingly.  Update call to
	ira_sort_regnos_for_alter_reg.
	(alter_reg): Update to use regno_max_ref_mode.  Call wider_subreg_mode.
	(init_eliminable_invariants): Update to use regno_max_ref_mode.
	(scan_paradoxical_subregs): Likewise.

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>

From-SVN: r254115
2017-10-26 16:53:43 +00:00
Wilco Dijkstra
204d2c03ac Introduce emit_frame_chain
The current frame code combines the separate concepts of a frame chain
(saving old FP,LR in a record and pointing new FP to it) and a frame
pointer used to access locals.  Add emit_frame_chain to the aarch64_frame
descriptor and use it in the prolog and epilog code.  For now just
initialize it as before, so generated code is identical.

Also correctly set EXIT_IGNORE_STACK.  The current AArch64 epilog code 
restores SP from FP if alloca is used.  If a frame pointer is used but
there is no alloca, SP must remain valid for the epilog to work correctly.

    gcc/
	* config/aarch64/aarch64.h (EXIT_IGNORE_STACK): Set if alloca is used.
	(aarch64_frame): Add emit_frame_chain boolean.
	* config/aarch64/aarch64.c (aarch64_frame_pointer_required)
	Move eh_return case to aarch64_layout_frame.
	(aarch64_layout_frame): Initialize emit_frame_chain.
	(aarch64_expand_prologue): Use emit_frame_chain.

From-SVN: r254114
2017-10-26 16:51:37 +00:00