1. 29 Oct, 2017 3 commits
  2. 28 Oct, 2017 7 commits
  3. 27 Oct, 2017 30 commits
    • re PR c++/82218 ([C++1x] constexpr on static member function causes segfault) · df7a517d
      2017-10-27  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/82218
      	* g++.dg/cpp1y/constexpr-82218.C: New.
      
      From-SVN: r254189
      Paolo Carlini committed
    • bb-reorder.c (find_traces_1_round): Fix off-by-one index. · eada55b9
      	* 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
      Eric Botcazou committed
    • PR target/82268 Correct FAIL when configured --with-cpu · a3123cd8
      	* gcc.target/i386/pr82196-1.c (dg-options): Add -mno-avx.
      
      From-SVN: r254186
      Daniel Santos committed
    • i386-protos.h (ix86_fp_compare_mode): Remove prototype. · b5176e0a
      	* config/i386/i386-protos.h (ix86_fp_compare_mode): Remove prototype.
      
      From-SVN: r254184
      Uros Bizjak committed
    • builtins.c (CASE_MATHFN_FLOATN): New helper macro to add cases for math… · ee5fd23a
      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
      Michael Meissner committed
    • re PR target/82692 (Ordered comparisons used for unordered built-ins) · 3f563e0b
      	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
      Uros Bizjak committed
    • fold-vec-neg-char.c: New. · 759ebd17
      [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
      Will Schmidt committed
    • re PR libfortran/81938 (valgrind error message and heap-buffer-overflow on… · 730de5a5
      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
      Jerry DeLisle committed
    • Simplify _Node_insert_return to avoid including <tuple> · 6c6705a9
      	* include/bits/node_handle.h (_Node_insert_return::get): Avoid
      	use of std::tie and std::get.
      
      From-SVN: r254162
      Jonathan Wakely committed
    • List headers in Makefile in alphabetical order · 5880ce18
      	* include/Makefile.am: Put headers in alphabetical order.
      	* include/Makefile.in: Regenerate.
      
      From-SVN: r254161
      Jonathan Wakely committed
    • Remove noexcept from filesystem iterators and operations (LWG 3013, 3014) · 29453a9f
      	* 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
      Jonathan Wakely committed
    • Make filesystem::file_status default constructor non-explicit (LWG 2787) · 9a3effa4
      	* 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
      Jonathan Wakely committed
    • pt.c (invalid_nontype_parm_type_p): Return a bool instead of an int. · ba05366b
      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
      Paolo Carlini committed
    • re PR fortran/56342 (MATMUL with PARAMETER: Simplification usually doesn't work) · 6c6bde30
      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
      Thomas Koenig committed
    • gimple-ssa-sprintf.c: Include domwalk.h. · a09ca93a
      	* 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
      Jeff Law committed
    • tree-vrp.c (check_all_array_refs): Do not use wi->info to smuggle gimple statement locations. · a565d95c
      	* 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
      Jeff Law committed
    • RISC-V: Correct and improve the "-mabi" documentation · f44d7b24
      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
      Palmer Dabbelt committed
    • x86-tune.def (X86_TUNE_PARTIAL_REG_DEPENDENCY, [...]): Disable for Haswell and newer CPUs. · 4c249d97
      
      	* config/i386/x86-tune.def (X86_TUNE_PARTIAL_REG_DEPENDENCY,
      	X86_TUNE_MOVX): Disable for Haswell and newer CPUs.
      
      From-SVN: r254152
      Jan Hubicka committed
    • Fix profiledbootstrap. · 7181cca3
      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
      Martin Liska committed
    • Provide filesystem::path overloads for file streams (LWG 2676, partial) · d49f254a
      	* 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
      Jonathan Wakely committed
    • * gcc.target/i386/pr70021.c: Add -mtune=skylake. · 9333319b
      From-SVN: r254147
      Jan Hubicka committed
    • re PR target/82703 (Wrong addition of std::array components with -O2… · 76ff5c24
      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
      Jakub Jelinek committed
    • Define std::filesystem::path::format enum (P0430R2) · 0348dd00
      	* 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
      Jonathan Wakely committed
    • Update install.texi for Solaris 12 rename · 57e7db04
      	* 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
      Rainer Orth committed
    • Extend ipa-pure-const pass to propagate malloc attribute. · 0fab169b
      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
      Prathamesh Kulkarni committed
    • re PR c++/71385 (Internal compiler error when using concept as placeholder) · e89b556b
      2017-10-27  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/71385
      	* g++.dg/concepts/pr71385.C: New.
      
      From-SVN: r254139
      Paolo Carlini committed
    • re PR c++/80739 (Accessing value of X through a Y glvalue in a constant expression) · 001ee39a
      2017-10-27  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/80739
      	* g++.dg/cpp1y/constexpr-80739.C: New.
      
      From-SVN: r254138
      Paolo Carlini committed
    • Document --coverage and fork-like functions (PR gcov-profile/82457). · ddcb1c88
      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
      Martin Liska committed
    • re PR middle-end/81659 (ICE in verify_dominators, at dominance.c:1184) · 830717d0
      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
      Richard Biener committed