157234 Commits

Author SHA1 Message Date
Bernhard Reutner-Fischer
d185db140a match.c (gfc_match_type_is): Fix typo in error message
2017-10-25  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* match.c (gfc_match_type_is): Fix typo in error message.

From-SVN: r254082
2017-10-25 21:10:15 +02:00
Jonathan Wakely
5fdbeb16d7 Update C++17 library status documentation
* doc/xml/manual/status_cxx2017.xml: Update C++17 status, and
	information on feature-test macros.
	* doc/html/*: Regenerate.

From-SVN: r254078
2017-10-25 15:06:12 +01:00
Jonathan Wakely
30e0aed183 PR libstdc++/82716 avoid stupid -Wmismatched-tags warnings
PR libstdc++/82716
	* include/std/array (tuple_size, tuple_element): Change class-key
	from class to struct, to avoid annoying Clang warnings.

From-SVN: r254077
2017-10-25 14:55:56 +01:00
Jonathan Wakely
220645d019 PR libstdc++/79283 fix filesystem::read_symlink for /proc
PR libstdc++/79283
	* src/filesystem/ops.cc (read_symlink): Handle st_size being zero.
	* src/filesystem/std-ops.cc (read_symlink): Likewise.
	(do_copy_file) [!NEED_DO_COPY_FILE]: Avoid multiple definitions.

From-SVN: r254076
2017-10-25 13:42:58 +01:00
Jonathan Wakely
eeb517d3e7 Fix filesystem::path::lexically_normal algorithm
* src/filesystem/std-path.cc (path::lexically_normal): Add missing
	step to algorithm, for removing dot-dot elements after root-directory.
	* testsuite/27_io/filesystem/operations/canonical.cc: Use
	compare_paths for more exhaustive checks.
	* testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
	* testsuite/27_io/filesystem/path/append/path.cc: Likewise.
	* testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
	* testsuite/27_io/filesystem/path/concat/strings.cc: Fix comment.
	* testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
	* testsuite/27_io/filesystem/path/decompose/root_directory.cc:
	Likewise.
	* testsuite/27_io/filesystem/path/generation/normal.cc: Use
	compare_paths for more exhaustive checks. Add extra testcases.
	* testsuite/27_io/filesystem/path/generation/proximate.cc: Use
	compare_paths for more exhaustive checks.
	* testsuite/27_io/filesystem/path/generation/relative.cc: Likewise.
	* testsuite/27_io/filesystem/path/generic/generic_string.cc: Remove
	unused header.
	* testsuite/27_io/filesystem/path/modifiers/make_preferred.cc: Fix
	comment.
	* testsuite/27_io/filesystem/path/modifiers/remove_filename.cc: Use
	compare_paths for more exhaustive checks.
	* testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
	Likewise.
	* testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
	Likewise.
	* testsuite/util/testsuite_fs.h (compare_paths): Also compare native
	strings.

From-SVN: r254075
2017-10-25 13:42:53 +01:00
Richard Biener
5de583cc18 tree-ssa-sccvn.h (vn_eliminate): Declare.
2017-10-25  Richard Biener  <rguenther@suse.de>

	* tree-ssa-sccvn.h (vn_eliminate): Declare.
	* tree-ssa-pre.c (class eliminate_dom_walker, eliminate,
	class pass_fre): Move to ...
	* tree-ssa-sccvn.c (class eliminate_dom_walker, vn_eliminate,
	class pass_fre): ... here and adjust for statistics.

From-SVN: r254074
2017-10-25 10:20:37 +00:00
Richard Biener
a596f4970e re PR tree-optimization/82436 (465.tonto ICE in vect_get_slp_vect_defs, at tree-vect-slp.c:3410)
2017-10-25  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/82436
	* gcc.dg/torture/pr82436-2.c: New testcase.

From-SVN: r254073
2017-10-25 09:59:39 +00:00
Paolo Carlini
7e252d9b9b re PR c++/71820 (ICE on valid C++ code: in arg_assoc_type, at cp/name-lookup.c:5583)
2017-10-25  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/71820
	* g++.dg/ext/typeof12.C: New.

From-SVN: r254072
2017-10-25 09:55:21 +00:00
Tom de Vries
7e65575a0e Fix scan-assembler in tree-ssa/loop-1.c for nvptx
2017-10-25  Tom de Vries  <tom@codesourcery.com>

	* gcc.dg/tree-ssa/loop-1.c: Add xfail for nvptx in scan-assembler-times
	line, and add nvptx-specific version.

From-SVN: r254071
2017-10-25 09:43:54 +00:00
Rainer Orth
5dd9af4977 Fix gcc.target/i386/cet-sjlj-5.c on Solaris
* gcc.target/i386/cet-sjlj-5.c: Allow for emtpy user label prefix
	in setjmp call.

From-SVN: r254070
2017-10-25 09:15:30 +00:00
Jakub Jelinek
bc1a75dda2 re PR libstdc++/81706 (std::sin vectorization bug)
PR libstdc++/81706
	* attribs.c (attribute_value_equal): Use omp_declare_simd_clauses_equal
	for comparison of OMP_CLAUSEs regardless of flag_openmp{,_simd}.
	(duplicate_one_attribute, copy_attributes_to_builtin): New functions.
	* attribs.h (duplicate_one_attribute, copy_attributes_to_builtin): New
	declarations.

	* c-decl.c (merge_decls): Copy "omp declare simd" attributes from
	newdecl to corresponding __builtin_ if any.

	* decl.c (duplicate_decls): Copy "omp declare simd" attributes from
	newdecl to corresponding __builtin_ if any.

	* gcc.target/i386/pr81706.c: New test.
	* g++.dg/ext/pr81706.C: New test.

From-SVN: r254069
2017-10-25 10:05:58 +02:00
Richard Biener
57904e87b9 tree-ssa-pre.c (need_eh_cleanup, [...]): Move inside...
2017-10-25  Richard Biener  <rguenther@suse.de>

	* tree-ssa-pre.c (need_eh_cleanup, need_ab_cleanup, el_to_remove,
	el_to_fixup, el_todo, el_avail, el_avail_stack, eliminate_avail,
	eliminate_push_avail, eliminate_insert): Move inside...
	(class eliminate_dom_walker): ... this class in preparation
	of move.
	(fini_eliminate): Remove by merging with ...
	(eliminate): ... this function.  Adjust for class changes.
	(pass_pre::execute): Remove fini_eliminate call.
	(pass_fre::execute): Likewise.

From-SVN: r254068
2017-10-25 07:08:12 +00:00
Jonathan Wakely
e921c7e5a6 PR libstdc++/82706 fix test for case where operations succeed
PR libstdc++/82706
	* testsuite/27_io/filesystem/operations/permissions.cc: Fix test.

From-SVN: r254067
2017-10-25 01:27:10 +01:00
GCC Administrator
03ca5c55f9 Daily bump.
From-SVN: r254066
2017-10-25 00:16:17 +00:00
François Dumont
8468bfe8cb libstdc++.exp (check_v3_target_normal_mode): Add c++config.h include.
2017-10-24  François Dumont  <fdumont@gcc.gnu.org>

	* testsuite/lib/libstdc++.exp (check_v3_target_normal_mode): Add
	c++config.h include.
	(check_v3_target_normal_namespace): New.
	* testsuite/lib/dg-options.exp (dg-require-normal-namespace): New.
	* testsuite/18_support/headers/limits/synopsis.cc: Add latter.
	* testsuite/20_util/from_chars/requirements.cc: Likewise.
	* testsuite/20_util/headers/functional/synopsis.cc: Likewise.
	* testsuite/20_util/headers/memory/synopsis.cc: Likewise.
	* testsuite/20_util/headers/utility/synopsis.cc: Likewise.
	* testsuite/20_util/to_chars/requirements.cc: Likewise.
	* testsuite/21_strings/headers/string/synopsis.cc: Likewise.
	* testsuite/22_locale/headers/locale/synopsis.cc: Likewise.
	* testsuite/23_containers/headers/bitset/synopsis.cc: Likewise.
	* testsuite/23_containers/headers/deque/synopsis.cc: Likewise.
	* testsuite/23_containers/headers/forward_list/synopsis.cc: Likewise.
	* testsuite/23_containers/headers/list/synopsis.cc: Likewise.
	* testsuite/23_containers/headers/map/synopsis.cc: Likewise.
	* testsuite/23_containers/headers/queue/synopsis.cc: Likewise.
	* testsuite/23_containers/headers/set/synopsis.cc: Likewise.
	* testsuite/23_containers/headers/stack/synopsis.cc: Likewise.
	* testsuite/23_containers/headers/vector/synopsis.cc: Likewise.
	* testsuite/23_containers/map/modifiers/erase/abi_tag.cc: Likewise.
	* testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc: Likewise.
	* testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc: Likewise.
	* testsuite/23_containers/set/modifiers/erase/abi_tag.cc: Likewise.
	* testsuite/24_iterators/headers/iterator/synopsis.cc: Likewise.
	* testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: Likewise.
	* testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: Likewise.
	* testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: Likewise.
	* testsuite/26_numerics/complex/abi_tag.cc: Likewise.
	* testsuite/26_numerics/headers/complex/synopsis.cc: Likewise.
	* testsuite/26_numerics/headers/valarray/synopsis.cc: Likewise.
	* testsuite/27_io/headers/fstream/synopsis.cc: Likewise.
	* testsuite/27_io/headers/ios/synopsis.cc: Likewise.
	* testsuite/27_io/headers/istream/synopsis.cc: Likewise.
	* testsuite/27_io/headers/ostream/synopsis.cc: Likewise.
	* testsuite/27_io/headers/sstream/synopsis.cc: Likewise.
	* testsuite/27_io/headers/streambuf/synopsis.cc: Likewise.

From-SVN: r254060
2017-10-24 20:20:12 +00:00
Jakub Jelinek
6ab5a6f30f re PR target/82460 (AVX512: choose between vpermi2d and vpermt2d to save mov instructions. Also, fails to optimize away shifts before shuffle)
PR target/82460
	* config/i386/sse.md (UNSPEC_VPERMI2, UNSPEC_VPERMI2_MASK): Remove.
	(VPERMI2, VPERMI2I): New mode iterators.
	(<avx512>_vpermi2var<mode>3_maskz): Remove 3 define_expand patterns.
	(<avx512>_vpermi2var<mode>3<sd_maskz_name>): Remove 3 define_insn
	patterns.
	(<avx512>_vpermi2var<mode>3_mask): New define_expand using VPERMI2
	mode iterator.  Remove 3 old define_insn patterns.
	(*<avx512>_vpermi2var<mode>3_mask): 2 new define_insn patterns.
	(<avx512>_vpermt2var<mode>3_maskz): Adjust 1 define_expand to use
	VPERMI2 mode iterator, remove the other two expanders.
	(<avx512>_vpermt2var<mode>3<sd_maskz_name>): Adjust 1 define_insn
	to use VPERMI2 mode iterator, add another alternative for vpermi2*
	instructions, remove the other two patterns.
	(<avx512>_vpermt2var<mode>3_mask): Adjust 1 define_insn to use VPERMI2
	mode iterator, remove the other two patterns.
	* config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Renamed to ...
	(ix86_expand_vec_perm_vpermt2): ... this.  Swap mask and op0
	arguments, use gen_*vpermt2* expanders instead of gen_*vpermi2*
	and adjust argument order accordingly.
	(ix86_expand_vec_perm): Adjust caller.
	(expand_vec_perm_1): Likewise.
	(expand_vec_perm_vpermi2_vpshub2): Rename to ...
	(expand_vec_perm_vpermt2_vpshub2): ... this.
	(ix86_expand_vec_perm_const_1): Adjust caller.
	(ix86_vectorize_vec_perm_const_ok): Adjust comments.

	* gcc.target/i386/pr82460-1.c: New test.
	* gcc.target/i386/pr82460-2.c: New test.
	* gcc.target/i386/avx512f-vpermt2pd-1.c: Adjust scan-assembler*
	regexps to allow vpermt2* to vpermi2* replacement or vice versa
	where possible.
	* gcc.target/i386/avx512vl-vpermt2pd-1.c: Likewise.
	* gcc.target/i386/avx512f-vpermt2d-1.c: Likewise.
	* gcc.target/i386/vect-pack-trunc-2.c: Likewise.
	* gcc.target/i386/avx512vl-vpermt2ps-1.c: Likewise.
	* gcc.target/i386/avx512vl-vpermt2q-1.c: Likewise.
	* gcc.target/i386/avx512f-vpermt2ps-1.c: Likewise.
	* gcc.target/i386/avx512vl-vpermt2d-1.c: Likewise.
	* gcc.target/i386/avx512bw-vpermt2w-1.c: Likewise.
	* gcc.target/i386/avx512vbmi-vpermt2b-1.c: Likewise.
	* gcc.target/i386/avx512f-vpermt2q-1.c: Likewise.

From-SVN: r254059
2017-10-24 21:35:37 +02:00
Jakub Jelinek
5c0331f62d re PR target/82370 (AVX512 can use a memory operand for immediate-count vpsrlw, but gcc doesn't.)
PR target/82370
	* config/i386/sse.md (VIMAX_AVX2): Remove V4TImode.
	(VIMAX_AVX2_AVX512BW, VIMAX_AVX512VL): New mode iterators.
	(vec_shl_<mode>): Remove unused expander.
	(avx512bw_<shift_insn><mode>3): New define_insn.
	(<sse2_avx2>_ashl<mode>3, <sse2_avx2>_lshr<mode>3): Replaced by ...
	(<sse2_avx2>_<shift_insn><mode>3): ... this.  New define_insn.

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

From-SVN: r254058
2017-10-24 21:34:06 +02:00
Paolo Carlini
ff1ff960f5 re PR c++/82466 (Missing warning for re-declaration of built-in function as variable)
2017-10-24  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/82466
	* doc/invoke.texi ([Wbuiltin-declaration-mismatch]): Extend
	description.

/cp
2017-10-24  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/82466
	* decl.c (duplicate_decls): Warn for built-in functions declared as
	non-function, use OPT_Wbuiltin_declaration_mismatch.

	* decl.c (duplicate_decls): Avoid redundant '+' in warning_at.

/c
2017-10-24  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/82466
	* c-decl.c (diagnose_mismatched_decls): Use
	OPT_Wbuiltin_declaration_mismatch.

/testsuite
2017-10-24  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/82466
	* c-c++-common/Wbuiltin-declaration-mismatch-1.c: New.
	* c-c++-common/Wno-builtin-declaration-mismatch-1.c: Likewise.
	* g++.dg/warn/Wbuiltin_declaration_mismatch-1.C: Likewise.
	* g++.dg/parse/builtin2.C: Adjust.
	* g++.old-deja/g++.mike/p811.C: Likewise.

From-SVN: r254057
2017-10-24 19:01:03 +00:00
Wilco Dijkstra
f9f43fb3a8 Cleanup autopref scheduling
r253236 broke AArch64 bootstrap. Earlier revision r253071 changed scheduling
behaviour on AArch64 as autopref scheduling no longer checks the base.

This patch fixes the bootstrap failure and cleans up autopref scheduling.
The code is greatly simplified.  Sort accesses on the offset first, and
only if the offsets are the same fall back to other comparisons in
rank_for_schedule.  This doesn't at all restore the original behaviour
since we no longer compare the base address, but it now defines a total
sorting order.  More work will be required to improve the sorting so
that only loads/stores with the same base are affected.

    gcc/
	PR rtl-optimization/82396
	* gcc/haifa-sched.c (ready_sort_real): Remove qsort workaround.
	(autopref_multipass_init): Simplify initialization.
	(autopref_rank_data): Simplify sort order.
	* gcc/sched-int.h (autopref_multipass_data_): Remove
	multi_mem_insn_p, min_offset and max_offset.

From-SVN: r254056
2017-10-24 17:21:19 +00:00
Wilco Dijkstra
acea40ac74 PR60580: Fix frame pointer option magic
To fix PR60580 simplify the logic in aarch64_override_options_after_change_1 (). 
If the frame pointer is enabled, set it to a special value that behaves similar
to frame pointer omission.  If we don't do this all leaf functions will get a
frame pointer even if flag_omit_leaf_frame_pointer is set.

If flag_omit_frame_pointer has this special value, we must force the frame
pointer if not in a leaf function.  We also need to force it in a leaf function
if flag_omit_frame_pointer is not set or if LR is used.

Doing this allows both -fomit-frame-pointer and -fomit-leaf-frame-pointer to be
independently set and changed in each function with the expected behaviour.

    gcc/
	PR middle-end/60580
	* config/aarch64/aarch64.c (aarch64_frame_pointer_required)
	Check special value of flag_omit_frame_pointer.
	(aarch64_can_eliminate): Likewise.
	(aarch64_override_options_after_change_1): Simplify handling of
	-fomit-frame-pointer and -fomit-leaf-frame-pointer.

From-SVN: r254052
2017-10-24 16:58:02 +00:00
Paolo Carlini
02b0c08c2c re PR c++/80991 (ICE with __is_trivially_constructible in template)
/cp
2017-10-24  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/80991
	* pt.c (value_dependent_expression_p, [TRAIT_EXPR]): Handle
	a TREE_LIST as TRAIT_EXPR_TYPE2.

/testsuite
2017-10-24  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/80991
	* g++.dg/ext/is_trivially_constructible5.C: New.

From-SVN: r254051
2017-10-24 16:41:05 +00:00
Rainer Orth
5cc75a43b1 Fix gcc.target/i386/387-ficom-[12].c on Solaris
* gcc.target/i386/387-ficom-1.c: Allow for ficomp without s
	suffix.
	* gcc.target/i386/387-ficom-2.c: Likewise.

From-SVN: r254050
2017-10-24 16:30:44 +00:00
Rainer Orth
2f5124a6e9 Fix gcc.target/i386/cet-sjlj-3.c on Solaris
* gcc.target/i386/cet-sjlj-3.c: Allow for emtpy user label prefix
	in setjmp call.

From-SVN: r254049
2017-10-24 16:29:20 +00:00
Richard Biener
da76b2532f re PR tree-optimization/82697 (Wrong optimization with aliasing and "if")
2017-10-24  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/82697
	* tree-ssa-phiopt.c (cond_store_replacement): Use alias-set
	zero for conditional load and unconditional store.

	* gcc.dg/torture/pr82697.c: New testcase.

From-SVN: r254047
2017-10-24 13:51:45 +00:00
Mukesh Kapoor
eab01c18fd re PR c++/82307 (unscoped enum-base incorrect cast)
/cp
2017-10-24  Mukesh Kapoor  <mukesh.kapoor@oracle.com>
	    Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/82307
	* cvt.c (type_promotes_to): Implement C++17, 7.6/4, about unscoped
	enumeration type whose underlying type is fixed.

/testsuite
2017-10-24  Mukesh Kapoor  <mukesh.kapoor@oracle.com>
	    Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/82307
	* g++.dg/cpp0x/enum35.C: New.
	* g++.dg/cpp0x/enum36.C: Likewise.

Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>

From-SVN: r254046
2017-10-24 13:49:13 +00:00
Jonathan Wakely
d56a36834f Avoid -Wattribute-alias warnings for long double compat symbols
* config/locale/gnu/c_locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Ignore
	-Wattribute-alias warnings.
	* src/c++11/istream-inst.cc: Likewise.
	* src/c++11/locale-inst.cc: Likewise.
	* src/c++11/ostream-inst.cc: Likewise.
	* src/c++11/wlocale-inst.cc: Likewise.
	* src/c++98/hash-long-double-tr1-aux.cc: Likewise.

From-SVN: r254045
2017-10-24 14:18:59 +01:00
Jonathan Wakely
02e2a7d8ef Refactor std::basic_string_view members and add noexcept
* include/bits/string_view.tcc (find_first_of, find_last_of)
	(find_first_not_of, find_last_not_of): Add noexcept.
	* include/std/string_view (basic_string_view(const _CharT*))
	(basic_string_view(const _CharT*, size_type))
	(front, back, remove_prefix, remove_suffix, find, rfind)
	(find_first_of, find_first_not_of): Add noexcept.
	(at(size_type), _S_compare(size_type, size_type)): Replace conditional
	expressions with if statements.
	(copy(_CharT*, size_type, size_type), substr(size_type, size_type)):
	Use _M_check for length checks.
	(compare(basic_string_view)): Reformat.
	(_M_check(size_type, const char)): Add noexcept(false).
	(_M_limit(size_type, size_type)): Use noexcept not _GLIBCXX_NOEXCEPT.

From-SVN: r254044
2017-10-24 14:18:52 +01:00
H.J. Lu
c58a9f350a Add bootstrap-cet.mk to bootstrap GCC with Intel CET
Bootstrap GCC with Intel CET by configuring GCC with

--with-build-config="bootstrap-cet bootstrap-debug"

Tested on Linux/i686 and Linux/x86-64.

config/

	* bootstrap-cet.mk: New file.

gcc/

	* doc/install.texi: Document bootstrap-cet.

From-SVN: r254043
2017-10-24 05:50:03 -07:00
Alan Modra
160826fefd PR82687, g++.dg/asan/default-options-1.C fails with PR82575 fix
The problem with making discarded symbols hidden is that the
non-default visibility is sticky.  When symbols other than the
__gnu_lto ones are discarded that turns out to be a bad idea.

	PR lto/82687
	PR lto/82575
	* simple-object-elf.c (simple_object_elf_copy_lto_debug_sections):
	Only make __gnu_lto symbols hidden.  Delete outdated comment.
	Silence ISO C warning.

From-SVN: r254042
2017-10-24 23:15:01 +10:30
Jonathan Wakely
6a19d2a2ee PR libstdc++/82685 add 'noexcept' to string_view literals
PR libstdc++/82685
	* include/experimental/string_view (operator""sv): Add noexcept.
	* include/std/string_view (operator""sv): Likewise.

From-SVN: r254041
2017-10-24 12:28:40 +01:00
H.J. Lu
ec8f7ce607 i386: Don't insert ENDBR at function entrance when called directly
There is no need to insert ENDBR instruction at function entrance if
function is only called directly.

gcc/

	PR target/82659
	* config/i386/i386.c (rest_of_insert_endbranch): Don't insert
	ENDBR instruction at function entrance if function is only
	called directly.

gcc/testsuite/

	PR target/82659
	* gcc.target/i386/cet-label-2.c: New test.
	* gcc.target/i386/cet-sjlj-4.c: Likewise.
	* gcc.target/i386/cet-sjlj-5.c: Likewise.
	* gcc.target/i386/cet-switch-3.c: Likewise.
	* gcc.target/i386/pr82659-1.c: Likewise.
	* gcc.target/i386/pr82659-2.c: Likewise.
	* gcc.target/i386/pr82659-3.c: Likewise.
	* gcc.target/i386/pr82659-4.c: Likewise.
	* gcc.target/i386/pr82659-5.c: Likewise.
	* gcc.target/i386/pr82659-6.c: Likewise.

From-SVN: r254040
2017-10-24 03:52:50 -07:00
Jakub Jelinek
b75200689b re PR rtl-optimization/82628 (wrong code at -Os on x86_64-linux-gnu in the 32-bit mode)
PR target/82628
	* config/i386/i386.md (addcarry<mode>, subborrow<mode>): Change
	patterns to better describe from which operation the CF is computed.
	(addcarry<mode>_0, subborrow<mode>_0): New patterns.
	* config/i386/i386.c (ix86_expand_builtin) <case handlecarry>: Pass
	one LTU with [DT]Imode and another one with [SD]Imode.  If arg0
	is 0, use _0 suffixed expanders instead of emitting a comparison
	before it.

From-SVN: r254039
2017-10-24 12:44:56 +02:00
Sergey Shalnov
585a449d73 Avoid 512-bit mode MOV for prefer-avx256 option in Intel AVX512 configuration
gcc/
	* config/i386/i386.md(*movsf_internal, *movdf_internal):
	Avoid 512-bit AVX modes for TARGET_PREFER_AVX256.

From-SVN: r254038
2017-10-24 10:34:55 +00:00
Eric Botcazou
bc2a7cebfd re PR middle-end/82569 (failure in 177.mesa cpu2000 test case after r253530)
PR middle-end/82569
	* tree-outof-ssa.h (always_initialized_rtx_for_ssa_name_p): Delete.
	* expr.c (expand_expr_real_1) <expand_decl_rtl>: Revert latest change.
	* loop-iv.c (iv_get_reaching_def): Likewise.
	* cfgexpand.c (expand_one_ssa_partition): Initialize the RTX if the 
	variable is promoted and the partition contains undefined values.

From-SVN: r254037
2017-10-24 07:26:52 +00:00
Richard Biener
d32bc875d2 re PR tree-optimization/82672 ([GRAPHITE] ICE in verify_gimple_in_cfg)
2017-10-23  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/82672
	* graphite-isl-ast-to-gimple.c (graphite_copy_stmts_from_block):
	Fold the stmt if we propagated into it.

	* gfortran.dg/graphite/pr82672.f90: New testcase.

From-SVN: r254036
2017-10-24 07:02:48 +00:00
Sandra Loosemore
57f6a200e3 cdx-branch.c: Fix broken test.
2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/testsuite/
	* gcc.target/nios2/cdx-branch.c:  Fix broken test.
	* gcc.target/nios2/lo-addr-bypass.c: New.
	* gcc.target/nios2/lo-addr-char.c: New.
	* gcc.target/nios2/lo-addr-int.c: New.
	* gcc.target/nios2/lo-addr-pic.c: New.
	* gcc.target/nios2/lo-addr-short.c: New.
	* gcc.target/nios2/lo-addr-tls.c: New.
	* gcc.target/nios2/lo-addr-uchar.c: New.
	* gcc.target/nios2/lo-addr-ushort.c: New.
	* gcc.target/nios2/lo-addr-volatile.c: New.

From-SVN: r254035
2017-10-23 22:39:11 -04:00
Sandra Loosemore
efd5897cdf nios2.c (nios2_rtx_costs): Make costs better reflect reality.
2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* config/nios2/nios2.c (nios2_rtx_costs): Make costs better
	reflect reality.
	(nios2_address_cost): Define.
	(nios2_legitimize_address): Recognize (exp + constant) directly.
	(TARGET_ADDRESS_COST): Define.

From-SVN: r254034
2017-10-23 22:37:02 -04:00
Sandra Loosemore
82348675ee nios2-protos.h (nios2_large_constant_p): Declare.
2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* config/nios2/nios2-protos.h (nios2_large_constant_p): Declare.
	(nios2_symbolic_memory_operand_p): Declare.
	(nios2_split_large_constant): Declare.
	(nios2_split_symbolic_memory_operand): Declare.
	* config/nios2/nios2.c: Adjust includes.
	(nios2_symbolic_constant_allowed): New.
	(nios2_symbolic_constant_p): New.
	(nios2_plus_symbolic_constant_p): New.
	(nios2_valid_addr_expr_p): Recognize addresses involving 
	symbolic constants.
	(nios2_legitimate_address_p): Likewise, also LO_SUM.
	(nios2_symbolic_memory_operand_p): New.
	(nios2_large_constant_p): New.
	(nios2_split_large_constant): New.
	(nios2_split_plus_large_constant): New.
	(nios2_split_symbolic_memory_operand): New.
	(nios2_legitimize_address): Code refactoring.  Handle addresses
	involving symbolic constants.
	(nios2_emit_move_sequence): Likewise.
	(nios2_print_operand): Improve error output.
	(nios2_print_operand_address): Handle LO_SUM.
	(nios2_cdx_narrow_form_p): Likewise.
	* config/nios2/nios2.md (movqi_internal): Add splitter for memory
	operands involving symbolic constants.
	(movhi_internal, movsi_internal): Likewise.
	(zero_extendhisi2, zero_extendqi<mode>2): Likewise.
	(extendhisi2, extendqi<mode>2): Likewise.

From-SVN: r254033
2017-10-23 22:35:50 -04:00
Sandra Loosemore
6642bfb2b8 tree-pass.h (PROP_rtl_split_insns): Define.
2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* tree-pass.h (PROP_rtl_split_insns): Define.
	* recog.c (pass_data_split_all_insns): Provide PROP_rtl_split_insns.

From-SVN: r254032
2017-10-23 22:24:34 -04:00
Sandra Loosemore
a6d9541dc3 nios2.c (TARGET_LRA_P): Don't override.
2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* config/nios2/nios2.c (TARGET_LRA_P): Don't override.

From-SVN: r254031
2017-10-23 22:00:34 -04:00
GCC Administrator
71818649d7 Daily bump.
From-SVN: r254030
2017-10-24 00:16:15 +00:00
Paolo Carlini
403226f0ed re PR c++/80449 (ICE reporting failed partial class template specialization class template argument deduction)
/cp
2017-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/80449
	* semantics.c (finish_compound_literal): Check do_auto_deduction
	return value for error_mark_node.

/testsuite
2017-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/80449
	* g++.dg/cpp1z/class-deduction46.C: New.

From-SVN: r254026
2017-10-23 21:37:59 +00:00
Jakub Jelinek
6b10f1741a re PR debug/82630 (Bogus DW_AT_GNU_call_site_value)
PR debug/82630
	* target.def (const_not_ok_for_debug_p): Default to
	default_const_not_ok_for_debug_p instead of hook_bool_rtx_false.
	* targhooks.h (default_const_not_ok_for_debug_p): New declaration.
	* targhooks.c (default_const_not_ok_for_debug_p): New function.
	* dwarf2out.c (const_ok_for_output_1): Only reject UNSPECs for
	which targetm.const_not_ok_for_debug_p returned true.
	* config/arm/arm.c (arm_const_not_ok_for_debug_p): Return true
	for UNSPECs.
	* config/powerpcspe/powerpcspe.c (rs6000_const_not_ok_for_debug_p):
	Likewise.
	* config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): Likewise.
	* config/i386/i386.c (ix86_delegitimize_address_1): Don't delegitimize
	UNSPEC_GOTOFF with addend into addend - _GLOBAL_OFFSET_TABLE_ + symbol
	if !base_term_p.
	(ix86_const_not_ok_for_debug_p): New function.
	(i386_asm_output_addr_const_extra): Handle UNSPEC_GOTOFF.
	(TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.

	* g++.dg/guality/pr82630.C: New test.

From-SVN: r254025
2017-10-23 22:39:59 +02:00
David Malcolm
b367de5dc3 Add INCLUDE_UNIQUE_PTR and use it (PR bootstrap/82610)
gcc/ChangeLog:
	PR bootstrap/82610
	* system.h: Conditionally include "unique-ptr.h" if
	INCLUDE_UNIQUE_PTR is defined.
	* unique-ptr-tests.cc: Remove include of "unique-ptr.h" in favor
	of defining INCLUDE_UNIQUE_PTR before including "system.h".

include/ChangeLog:
	* unique-ptr.h: Make include of <memory> conditional on C++11 or
	later.

From-SVN: r254024
2017-10-23 20:25:58 +00:00
Jason Merrill
802561b2cc PR c++/77369 - wrong noexcept handling in C++14 and below
* tree.c (strip_typedefs): Canonicalize TYPE_RAISES_EXCEPTIONS.

From-SVN: r254022
2017-10-23 15:06:37 -04:00
Jason Merrill
52c91d3aaf * g++.dg/opt/pr82577: Fix for C++17.
From-SVN: r254021
2017-10-23 15:06:32 -04:00
Uros Bizjak
33029fa9d2 re PR target/82662 (ifcvt is not performed on double-word compare)
PR target/82662
	* gcc.target/i386/pr82662.c: New test.

From-SVN: r254020
2017-10-23 21:01:38 +02:00
Sebastian Perta
5feee954e8 rl78.md: New define_expand "subdi3".
* config/rl78/rl78.md: New define_expand "subdi3".
* config/rl78/subdi3.S: New assembly file.
* config/rl78/t-rl78: Added subdi3.S to LIB2ADD.

From-SVN: r254019
2017-10-23 13:54:02 -04:00
Sebastian Perta
8cb41ec663 Forgot to add the new file :-P 2017-10-13 Sebastian Perta <sebastian.perta@renesas.com>
Forgot to add the new file :-P
2017-10-13  Sebastian Perta  <sebastian.perta@renesas.com>
* config/rl78/adddi3.S: New assembly file.
* config/rl78/t-rl78: Added adddi3.S to LIB2ADD.

From-SVN: r254016
2017-10-23 13:30:22 -04:00
Marek Polacek
d104746519 re PR c/82681 (c-warn.c:1218: typo in warning message)
PR c/82681
	* c-warn.c (warnings_for_convert_and_check): Fix typos.

	* gcc.dg/c90-const-expr-11.c: Fix typos in dg-warning.
	* gcc.dg/overflow-warn-5.c: Likewise.
	* gcc.dg/overflow-warn-8.c: Likewise.

From-SVN: r254014
2017-10-23 17:03:11 +00:00