Commit Graph

164772 Commits

Author SHA1 Message Date
GCC Administrator
03f7544f8d Daily bump.
From-SVN: r265514
2018-10-26 00:17:05 +00:00
Ian Lance Taylor
34489eb2af compiler: improve name mangling for packpaths
The current implementation of Gogo::pkgpath_for_symbol was written in
    a way that allowed two distinct package paths to map to the same
    symbol, which could cause collisions at link- time or compile-time.
    
    Switch to a better mangling scheme to insure that we get a unique
    packagepath symbol for each package. In the new scheme instead of having
    separate mangling schemes for identifiers and package paths, the
    main identifier mangler ("go_encode_id") now handles mangling of
    both packagepath characters and identifier characters.
    
    The new mangling scheme is more intrusive: "foo/bar.Baz" is mangled as
    "foo..z2fbar.Baz" instead of "foo_bar.Baz". To mitigate this, this
    patch also adds a demangling capability so that function names
    returned from runtime.CallersFrames are converted back to their
    original unmangled form.
    
    Changing the pkgpath_for_symbol scheme requires updating a number of
    //go:linkname directives and C "__asm__" directives to match the new
    scheme, as well as updating the 'gotest' driver (which makes
    assumptions about the correct mapping from pkgpath symbol to package
    name).
    
    Fixes golang/go#27534.
    
    Reviewed-on: https://go-review.googlesource.com/c/135455

From-SVN: r265510
2018-10-25 22:18:08 +00:00
Carl Love
fc756f9f46 rs6000-c.c (P9V_BUILTIN_VEC_VSCEDPGT, [...]): Rename base overloaded name.
gcc/ChangeLog:

2018-10-25  Carl Love  <cel@us.ibm.com>

	* config/rs6000/rs6000-c.c (P9V_BUILTIN_VEC_VSCEDPGT,
	P9V_BUILTIN_VEC_VSCEDPLT, P9V_BUILTIN_VEC_VSCEDPEQ,
	P9V_BUILTIN_VEC_VSCEDPUO): Rename base overloaded name.  Add quad
	precicion entry for each overloaded builtin.
	* config/rs6000/rs6000-builtin.def (VSCEDPGT, VSCEDPLT, VSCEDPEQ,
	VSCEDPUO): Rename overloaded name.
	(VSCEDPGT, VSCEQPGT, VSCEDPLT, VSCEQPLT, VSCEDPEQ, VSCEQPEQ,
	VSCEDPUO, VSCEQPUO): Add defitions for overloaded builtins.
	* config/rs6000/vsx.md (xscmpexpqp_<code>_<mode>): Add
	define_expand for xscmpexqp instruction.
	(*xscmpexpqp): Add define_insn for the xscmpexqp instruction.

gcc/testsuite/ChangeLog:

2018-10-25  Carl Love  <cel@us.ibm.com>

	* gcc.target/powerpc/float128-cmp2-runnable.c: New test file.

From-SVN: r265509
2018-10-25 20:41:57 +00:00
Bill Schmidt
80a2dd51de emmintrin.h (_mm_slli_epi16): Replace deprecated function with vec_sl.
2018-10-25  Bill Schmidt  <wschmidt@linux.ibm.com>
	    Jinsong Ji <jji@us.ibm.com>

	* config/rs6000/emmintrin.h (_mm_slli_epi16): Replace deprecated
	function with vec_sl.
	(_mm_slli_epi32): Likewise.
	(_mm_slli_epi64): Likewise.
	(_mm_srai_epi16): Replace deprecated function with vec_sra.
	(_mm_srai_epi32): Likewise.
	(_mm_srli_epi16): Replace deprecated function with vec_sr.
	(_mm_srli_epi32): Likewise.
	(_mm_srli_epi64): Likewise.
	(_mm_sll_epi16): Replace deprecated function with vec_sl.
	(_mm_sll_epi32): Likewise.
	(_mm_sll_epi64): Likewise.
	(_mm_sra_epi16): Replace deprecated function with vec_sra.
	(_mm_sra_epi32): Likewise.
	(_mm_srl_epi16): Replace deprecated function with vec_sr.
	(_mm_srl_epi32): Likewise.
	(_mm_srl_epi64): Likewise.


Co-Authored-By: Jinsong Ji <jji@us.ibm.com>

From-SVN: r265508
2018-10-25 20:16:39 +00:00
Bill Schmidt
1d3d27032b emmintrin.h (_mm_sll_epi16): Replace comparison operators with vec_cmp* for compatibility due to unfortunate...
2018-10-25  Bill Schmidt  <wschmidt@linux.ibm.com>
	    Jinsong Ji <jji@us.ibm.com>

	* gcc/config/rs6000/emmintrin.h (_mm_sll_epi16): Replace
	comparison operators with vec_cmp* for compatibility due to
	unfortunate history; clean up formatting and use types more
	appropriately.
	(_mm_sll_epi32): Likewise.
	(_mm_sll_epi64): Likewise.
	(_mm_srl_epi16): Likewise.
	(_mm_srl_epi32): Likewise.
	(_mm_srl_epi64): Likewise.


Co-Authored-By: Jinsong Ji <jji@us.ibm.com>

From-SVN: r265507
2018-10-25 20:14:40 +00:00
Bill Schmidt
71c3949eea emmintrin.h (_mm_sll_epi64): Remove wrong cast.
2018-10-25  Bill Schmidt  <wschmidt@linux.ibm.com>
	    Jinsong Ji <jji@us.ibm.com>

	* config/rs6000/emmintrin.h (_mm_sll_epi64): Remove wrong cast.
	* config/rs6000/xmmintrin.h (_mm_min_ps): Change m's type to
	__vector __bool int.  Use vec_cmpgt in preference to deprecated
	function vec_vcmpgtfp.
	(_mm_max_ps): Likewise.


Co-Authored-By: Jinsong Ji <jji@us.ibm.com>

From-SVN: r265506
2018-10-25 20:09:24 +00:00
Jeff Law
7959b94e08 rl78.c (insn_ok_now): Always re-recognize the insn if returning false.
* config/rl78/rl78.c (insn_ok_now): Always re-recognize the insn
	if returning false.

From-SVN: r265505
2018-10-25 13:35:52 -06:00
Jason Merrill
b15e280216 * parser.c (cp_parser_sizeof_operand): Remove redundant grokdeclarator.
From-SVN: r265503
2018-10-25 15:23:33 -04:00
Martin Sebor
8145e6a0cc extend.texi (aligned): Expand attribute description.
gcc/ChangeLog:

	* doc/extend.texi (aligned): Expand attribute description.
	(Alignment): Rename section.  Discuss function arguments.

From-SVN: r265498
2018-10-25 10:34:36 -06:00
Martin Liska
30e874615f Use signed char in a test (PR testsuite/87739).
2018-10-25  Martin Liska  <mliska@suse.cz>

	PR testsuite/87739
	* gcc.dg/tree-ssa/pr84436-5.c (foo): Use signed char.

From-SVN: r265495
2018-10-25 15:36:48 +00:00
Martin Liska
3239d72683 Revert partially changes from r265454 (PR other/87735).
2018-10-25  Martin Liska  <mliska@suse.cz>

	PR other/87735
	* gcc.dg/tree-prof/time-profiler-1.c: Revert.
	* gcc.dg/tree-prof/time-profiler-2.c: Likewise.
	* gcc.dg/tree-prof/time-profiler-3.c: Likewise.
2018-10-25  Martin Liska  <mliska@suse.cz>

	PR other/87735
	* libgcov-profiler.c: Revert.

From-SVN: r265494
2018-10-25 15:36:12 +00:00
Jonathan Wakely
71e093897c PR libstdc++/87749 fix (and optimize) string move construction
The move constructor for the SSO string uses assign(const basic_string&)
when either:

(1) the source string is "local" and so the contents of the small string
buffer need to be copied, or

(2) the allocator does not propagate and is_always_equal is false.

Case (1) is suboptimal, because the assign member is not noexcept and
the compiler isn't smart enough to see it won't actually throw in this
case. This causes extra code in the move assignment operator so that any
exception will be turned into a call to std::terminate. This can be
fixed by copying small strings inline instead of calling assign.

Case (2) is a bug, because the specific instances of the allocators
could be equal even if is_always_equal is false. This can result in an
unnecessary deep copy (and potentially-throwing allocation) when the
storage should be moved. This can be fixed by simply checking if the
allocators are equal.

	PR libstdc++/87749
	* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
	(basic_string::operator=(basic_string&&)): For short strings copy the
	buffer inline. Only fall back to using assign(const basic_string&) to
	do a deep copy when reallocation is needed.
	* testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc:
	New test.
	* testsuite/21_strings/basic_string/modifiers/assign/char/
	move_assign_optim.cc: New test.
	* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc:
	New test.
	* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/
	move_assign_optim.cc: New test.

From-SVN: r265493
2018-10-25 16:34:04 +01:00
Jan Hubicka
1afca3f426 ipa-devirt.c (main_odr_variant): Remove.
* ipa-devirt.c (main_odr_variant): Remove.
	(hash_odr_name, types_same_for_odr, types_odr_comparable,
	odr_name_hasher::equal, odr_subtypes_equivalent_p):
	Drop use of main_odr_variant.
	(add_type_duplicate): Silence confused warnings on integer types.
	(get_odr_type): Always look for main variant.
	(register_odr_type): Simplify.

From-SVN: r265492
2018-10-25 14:33:27 +00:00
Richard Biener
303d8f7792 tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Initialize ng to silence error with release checking bootstrap.
2018-10-25  Richard Biener  <rguenther@suse.de>

	* tree-vect-data-refs.c (vect_analyze_data_ref_accesses):
	Initialize ng to silence error with release checking bootstrap.

From-SVN: r265491
2018-10-25 14:28:18 +00:00
Ilya Leoshkevich
b6f517556c S/390: Merge movdi_larl into movdi_64
Consider the following RTL:

(insn (set (mem/f/c:DI (reg/f:DI 60))
           (const:DI (plus:DI (symbol_ref:DI ("*.LANCHOR0"))
                              (const_int 8)))))

generated by cse2 pass.  It is matched to movdi_64, resulting in
the following inefficient code:

	larl	%r5,.L6			# Load literal pool@
	lg	%r1,.L7-.L6(%r5)	# Load .LANCHOR0+8
	stgrl	%r1,.LANCHOR0
	br	%r14

Matching it to movdi_larl improves the code, eliminating one
instruction and the literal pool entry:

	larl	%r1,.LANCHOR0+8
	stgrl	%r1,.LANCHOR0
	br	%r14

Taking it one step further, there is no reason to keep movdi_64 and
movdi_larl separate, since this could potentially improve code in other
ways by giving lra one more alternative to choose from.

gcc/ChangeLog:

2018-10-25  Ilya Leoshkevich  <iii@linux.ibm.com>

	* config/s390/constraints.md (ZL): New constraint.
	* config/s390/s390.c (legitimate_pic_operand_p): Accept LARL
	operands.
	* config/s390/s390.md (movdi_larl): Remove.
	(movdi_64): Add the LARL alternative.

gcc/testsuite/ChangeLog:

2018-10-25  Ilya Leoshkevich  <iii@linux.ibm.com>

	* gcc.target/s390/global-array-almost-huge-element.c: New test.
	* gcc.target/s390/global-array-almost-negative-huge-element.c: New test.
	* gcc.target/s390/global-array-element-pic.c: New test.
	* gcc.target/s390/global-array-even-element.c: New test.
	* gcc.target/s390/global-array-huge-element.c: New test.
	* gcc.target/s390/global-array-negative-huge-element.c: New test.
	* gcc.target/s390/global-array-odd-element.c: New test.

From-SVN: r265490
2018-10-25 14:23:31 +00:00
Richard Biener
4dd7c0dcd8 tree-if-conv.c: Include tree-ssa-sccvn.h.
2018-10-25  Richard Biener  <rguenther@suse.de>

	* tree-if-conv.c: Include tree-ssa-sccvn.h.
	(tree_if_conversion): Run CSE on the if-converted loop body.

From-SVN: r265489
2018-10-25 14:03:24 +00:00
Ilya Leoshkevich
cd747405e4 Fix rtx_code_size static initialization order fiasco
r264556 and r264537 changed the format of EQ_ATTR_ALT RTXs to "ww",
which also required adjusting rtx_code_size initializer.  In order to
simplify things, the list of rtx_codes known to use HOST_WIDE_INTs was
replaced by the format string check.  However, unlike the old one, this
new check cannot be always performed at compile time, in which case a
static constructor is generated.  This may lead to a static
initialization order fiasco with respect to other static constructors
in the compiler, in case of PR87747, cselib's pool_allocator.

gcc/ChangeLog:

2018-10-25  Ilya Leoshkevich  <iii@linux.ibm.com>

	PR bootstrap/87747
	* rtl.c (RTX_CODE_HWINT_P_1): New helper macro.
	(RTX_CODE_HWINT_P): New macro.
	(rtx_code_size): Use RTX_CODE_HWINT_P ().

From-SVN: r265488
2018-10-25 13:47:10 +00:00
Marc Glisse
0f317ef762 Relocation (= move+destroy)
2018-10-25  Marc Glisse  <marc.glisse@inria.fr>

	PR libstdc++/87106
	* include/bits/alloc_traits.h (_S_construct, _S_destroy, construct,
	destroy): Add noexcept specification.
	* include/bits/allocator.h (construct, destroy): Likewise.
	* include/ext/alloc_traits.h (construct, destroy): Likewise.
	* include/ext/malloc_allocator.h (construct, destroy): Likewise.
	* include/ext/new_allocator.h (construct, destroy): Likewise.
	* include/bits/stl_uninitialized.h (__relocate_object_a, __relocate_a,
	__relocate_a_1): New functions.
	(__is_trivially_relocatable): New class.
	* include/bits/stl_vector.h (__use_relocate): New static member.
	* include/bits/vector.tcc (reserve, _M_realloc_insert,
	_M_default_append): Use __relocate_a.
	(reserve, _M_assign_aux, _M_realloc_insert, _M_fill_insert,
	_M_default_append, _M_range_insert): Move _GLIBCXX_ASAN_ANNOTATE_REINIT
	after _Destroy.
	* testsuite/23_containers/vector/modifiers/push_back/49836.cc:
	Replace CopyConsOnlyType with DelAnyAssign.

From-SVN: r265485
2018-10-25 13:03:13 +00:00
Jan Hubicka
09d3f04eae ipa-devirt.c (odr_types_equivalent_p): Do not ICE if one of types is anonymous.
* ipa-devirt.c (odr_types_equivalent_p): Do not ICE if one of types
	is anonymous.
	* g++.dg/lto/odr-1_0.C: New test.
	* g++.dg/lto/odr-1_1.C: New test.

From-SVN: r265484
2018-10-25 12:18:28 +00:00
Thomas Preud'homme
46ec926100 dg-cmp-results: display NA->FAIL & NA->UNRESOLVED by default
Currently, dg-cmp-results will not print anything for a test that was
not run before, even if it is a FAIL or UNRESOLVED now. This means that
when contributing a code change together with a testcase in the same
commit one must run dg-cmp-results twice: once to check for regression
on a full testsuite run and once against the new testcase with -v -v.
This also prevents using dg-cmp-results on sum files generated with
test_summary since these would not contain PASS.

This patch changes dg-cmp-results to print NA->FAIL and NA->UNRESOLVED
changes by default.

2018-10-25  Thomas Preud'homme  <thomas.preudhomme@linaro.org>

    contrib/
    * dg-cmp-results.sh: Print NA-FAIL and NA->UNRESOLVED changes at
    default verbosity.

From-SVN: r265483
2018-10-25 10:35:21 +00:00
Thomas Preud'homme
541eccada3 [testsuite] Fix sibcall-9 & sibcall-10 with -fPIC
gcc.dg/sibcall-9.c and gcc.dg/sibcall-10.c give execution failure
on ARM when compiled with -fPIC due to the PIC access to volatile
variable v creating an extra spill which causes the frame size of the
two recursive functions to be different. Making the variable static
solve the issue because the variable can be access in a PC-relative way
and avoid the spill, while still testing sibling call as originally
intended.

2018-10-25  Thomas Preud'homme  <thomas.preudhomme@linaro.org>

gcc/testsuite/
    * gcc.dg/sibcall-9.c: Make v static.
    * gcc.dg/sibcall-10.c: Likewise.

From-SVN: r265482
2018-10-25 10:19:49 +00:00
Richard Biener
7852940e7b re PR tree-optimization/87665 (gcc HEAD (svn: 265340) breaks elements on resize)
2018-10-25  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/87665
	PR tree-optimization/87745
	* tree-vectorizer.h (get_earlier_stmt): Remove.
	(get_later_stmt): Pick up UID from the original non-pattern stmt.

	* gfortran.dg/20181025-1.f: New testcase.

From-SVN: r265481
2018-10-25 08:59:07 +00:00
Sam Tebbs
86f36311bc [DOC] Relocate list under Deprecated in options.texi to Var
gcc/doc
2018-10-25  Sam Tebbs  <sam.tebbs@arm.com>

	* options.texi (Deprecated): Move list to Var section.

From-SVN: r265480
2018-10-25 08:57:24 +00:00
Jakub Jelinek
37bc33f72c re PR fortran/87725 (OpenMP 4.5 clause schedule(simd,monotonic:static) not understood)
PR fortran/87725
	* openmp.c (gfc_match_omp_clauses): Parse simd, monotonic and
	nonmonotonic modifiers regardless of if they have been parsed
	already or if the opposite one has.  Fix up check whether
	comma after modifier should be parsed.
	(resolve_omp_clauses): Diagnose schedule modifier restrictions.

	* c-c++-common/gomp/schedule-modifiers-1.c (bar): Separate modifier
	from kind with a colon rather than comma.
	* gfortran.dg/gomp/schedule-modifiers-1.f90: New test.
	* gfortran.dg/gomp/schedule-modifiers-2.f90: New test.

From-SVN: r265479
2018-10-25 09:56:55 +02:00
GCC Administrator
872324bed4 Daily bump.
From-SVN: r265478
2018-10-25 00:16:38 +00:00
Segher Boessenkool
b8ac95761a combine: Don't do make_more_copies for dest PC (PR87720)
Jumps are written in RTL as moves to PC.  But the latter has no mode,
so we shouldn't try to use it.  Since the optimization this routine
does does not really help for jumps at all, let's just skip it.


	PR rtl-optimization/87720
	* combine.c (make_more_copies): Skip if the dest is pc_rtx.

From-SVN: r265474
2018-10-25 00:34:40 +02:00
Alexandre Oliva
f8719680bf gOlogy: do not change code in isolate-paths for warnings only
The isolate-paths pass is activated by various -f flags, but also by
-Wnull-dereference.  Most of its codegen changes are conditioned on at
least one of the -f flags, but those that detect, warn about and
isolate paths that return the address of local variables are enabled
even if the pass is activated only by -Wnull-dereference.

-W flags should not cause codegen changes, so this patch makes the
codegen changes conditional on the presence of any of the -f flags
that activate the pass.  Should we have a separate option to activate
only this kind of transformation?

for  gcc/ChangeLog

	* gimple-ssa-isolate-paths.c
	(find_implicit_erroneous_behavior): Do not change code if the
	pass is running for warnings only.
	(find_explicit_erroneous_behavior): Likewise.

From-SVN: r265473
2018-10-24 21:55:39 +00:00
Michael Meissner
f78f04627d rs6000.c (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define as rs6000_mangle_decl_assembler_name.
[gcc]
2018-10-24  Michael Meissner  <meissner@linux.ibm.com>

	* config/rs6000/rs6000.c (TARGET_MANGLE_DECL_ASSEMBLER_NAME):
	Define as rs6000_mangle_decl_assembler_name.
	(rs6000_mangle_decl_assembler_name): If the user switched from IBM
	long double to IEEE long double, switch the names of the long
	double built-in functions to be <func>f128 instead of <func>l.

[gcc/testsuite]
2018-10-24  Michael Meissner  <meissner@linux.ibm.com>

	* gcc.target/powerpc/float128-math.c: New test to make sure the
	long double built-in function names use the f128 form if the user
	switched from IBM long double to IEEE long double.
	* gcc.target/powerpc/ppc-fortran/ieee128-math.f90: Likewise.

From-SVN: r265471
2018-10-24 20:16:31 +00:00
Jakub Jelinek
df51934dce re PR c++/86288 (Recognize __gnu and/or __gnu__ as attribute-namespace)
PR c++/86288
	* parser.c (cp_parser_std_attribute): Canonicalize attr_ns, and when
	:: is not present and attr_ns non-NULL, canonicalize also attr_id.
	(cp_parser_attribute_spec): Fix comment typo.

	* g++.dg/cpp0x/gen-attrs-66.C: New test.

From-SVN: r265470
2018-10-24 21:39:23 +02:00
Martin Sebor
a703b16ba4 extend.texi (nonnull): List no-argument form.
gcc/ChangeLog:

	* doc/extend.texi (nonnull): List no-argument form.  Reference
	-fno-delete-null-pointer-checks and -fisolate-erroneous-paths-attribute.

From-SVN: r265469
2018-10-24 13:33:56 -06:00
Martin Sebor
fd85b88869 PR c++/84851 - missing -Wclass-memaccess for a memcpy in a copy ctor with a non-trivial member
gcc/cp/ChangeLog:

	PR c++/84851
	* call.c (maybe_warn_class_memaccess): Tighten up.

gcc/testsuite/ChangeLog:

	PR c++/84851
	* g++.dg/Wclass-memaccess-4.C: Remove XFAIL.

From-SVN: r265467
2018-10-24 12:06:14 -06:00
Richard Biener
313c39912b tree-ssa-sccvn.c (do_rpo_vn): Free rpo_state.
2018-10-24  Richard Biener  <rguenther@suse.de>

	* tree-ssa-sccvn.c (do_rpo_vn): Free rpo_state.

From-SVN: r265465
2018-10-24 14:31:17 +00:00
William Schmidt
28d2dc757e emmintrin.h (_mm_cvtpd_epi32): Change deprecated __vector long to __vector long long.
2018-10-24  Bill Schmidt  <wschmidt@linux.ibm.com>
	    Jinsong Ji <jji@us.ibm.com>

	* config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Change deprecated
	__vector long to __vector long long.
	(_mm_cvtpd_ps): Likewise.
	(_mm_cvttpd_epi32): Likewise.
	(_mm_cvtpi32_pd): Likewise.
	(_mm_unpackhi_epi64): Likewise.
	(_mm_unpacklo_epi64): Likewise.

From-SVN: r265464
2018-10-24 14:29:11 +00:00
Martin Liska
767d455188 Switch conversion: support any ax + b transformation (PR tree-optimization/84436).
2018-10-24  Martin Liska  <mliska@suse.cz>

	PR tree-optimization/84436
	* tree-switch-conversion.c (switch_conversion::contains_same_values_p):
	Remove.
	(switch_conversion::contains_linear_function_p): New.
	(switch_conversion::build_one_array): Support linear
	transformation on input.
	* tree-switch-conversion.h (struct switch_conversion): Add
	contains_linear_function_p declaration.
2018-10-24  Martin Liska  <mliska@suse.cz>

	PR tree-optimization/84436
	* gcc.dg/tree-ssa/pr84436-1.c: New test.
	* gcc.dg/tree-ssa/pr84436-2.c: New test.
	* gcc.dg/tree-ssa/pr84436-3.c: New test.
	* gcc.dg/tree-ssa/pr84436-4.c: New test.
	* gcc.dg/tree-ssa/pr84436-5.c: New test.

From-SVN: r265463
2018-10-24 13:52:21 +00:00
Richard Biener
b5d0cdc9c8 Return hash of ADDR_EXPR if its argument is CONSTANT_CLASS_P.
2018-10-24  Richard Biener  <rguenther@suse.de>

	* varasm.c (const_hash_1): Return hash of ADDR_EXPR
	if its argument is CONSTANT_CLASS_P.

From-SVN: r265462
2018-10-24 13:49:47 +00:00
Jan Hubicka
9a97772f93 ipa-utils.h (type_with_linkage_p): No longer check for TYPE_STUB_DECL; it is wrong for forward declarations.
* ipa-utils.h (type_with_linkage_p): No longer check for TYPE_STUB_DECL;
	it is wrong for forward declarations.

From-SVN: r265460
2018-10-24 12:50:25 +00:00
Ilya Leoshkevich
04193ea0e6 Add myself to MAINTAINERS
ChangeLog:

2018-10-24  Ilya Leoshkevich  <iii@linux.ibm.com>

	* MAINTAINERS (Write After Approval): Add myself.

From-SVN: r265459
2018-10-24 12:10:58 +00:00
Ilya Leoshkevich
6f7133ec4f S/390: Fix ICE in s390_check_qrst_address ()
In r265371 (S/390: Make "b" constraint match literal pool references)
the CONSTANT_POOL_ADDRESS_P () check was moved from
s390_loadrelative_operand_p () to s390_check_qrst_address ().  However,
in the original code it was guarded by SYMBOL_REF_P (), which was not
added to the new code.

gcc/ChangeLog:

2018-10-24  Ilya Leoshkevich  <iii@linux.ibm.com>

	* config/s390/s390.c (s390_check_qrst_address): Add the missing
	SYMBOL_REF_P () check.

gcc/testsuite/ChangeLog:

2018-10-24  Ilya Leoshkevich  <iii@linux.ibm.com>

	* gcc.target/s390/20181024-1.c: New test.

From-SVN: r265458
2018-10-24 12:04:53 +00:00
Richard Biener
be43a8877e re PR tree-optimization/87105 (Autovectorization [X86, SSE2, AVX2, DoublePrecision])
2018-10-24  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/87105
	* tree-vect-data-refs.c (vect_analyze_group_access_1): Adjust
	dump classification.
	(vect_analyze_data_ref_accesses): Handle duplicate loads and
	stores by splitting the affected group after the fact.
	* tree-vect-slp.c (vect_build_slp_tree_2): Dump when we
	fail the SLP build because of size constraints.

	* gcc.dg/vect/bb-slp-39.c: New testcase.
	* gfortran.dg/vect/pr83232.f90: Un-XFAIL.

From-SVN: r265457
2018-10-24 11:46:58 +00:00
Rainer Orth
dc6b6330c5 Disable string merging with alignment > 1 before Solaris 11.4/SPARC
* configure.ac (gcc_cv_ld_aligned_shf_merge): New test.
	* configure: Regenerate.
	* config.in: Regenerate.
	* varasm.c (mergeable_string_section): Use readonly_data_section
	if linker doesn't support SHF_MERGE with alignment > 8.
	(mergeable_constant_section): Likewise.

From-SVN: r265456
2018-10-24 11:27:35 +00:00
Richard Biener
53b8a7107e re PR tree-optimization/84013 (wrong __restrict clique with inline asm operand)
2018-10-24  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/84013
	* tree-ssa-structalias.c (struct msdi_data): New struct for
	marshalling data to walk_stmt_load_store_ops.
	(maybe_set_dependence_info): Refactor as callback for
	walk_stmt_load_store_ops.
	(compute_dependence_clique): Set restrict info on all stmt kinds.

	* gcc.dg/tree-ssa/restrict-9.c: New testcase.

From-SVN: r265455
2018-10-24 09:42:19 +00:00
Martin Liska
19b5595858 Remove reduntant dumps and make tp_first_run dump more compact.
2018-10-24  Martin Liska  <mliska@suse.cz>

	* cgraph.c (cgraph_node::dump):
	Remove reduntant dumps and make tp_first_run dump more compact.
2018-10-24  Martin Liska  <mliska@suse.cz>

	* libgcov-profiler.c: Start from 1 in order to distinguish
	functions which were seen and these that were not.

From-SVN: r265454
2018-10-24 08:47:59 +00:00
Richard Biener
bf32992748 re PR tree-optimization/87665 (gcc HEAD (svn: 265340) breaks elements on resize)
2018-10-24  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/87665
	* tree-vect-data-refs.c (vect_preserves_scalar_order_p): Adjust
	to reflect reality.

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

From-SVN: r265452
2018-10-24 06:52:45 +00:00
François Dumont
4b763deedb 2018-10-24 François Dumont <fdumont@gcc.gnu.org>
* include/debug/safe_unordered_container.h
	(_Safe_unordered_container<>::_M_invalidate_locals): Take lambda
	parameter type from local end variable.
	(_Safe_unordered_container<>::_M_invalidate_all): Likewise.
	* include/debug/unordered_map
	(unordered_map<>::begin()): Use C++11 direct initialization.
	(unordered_map<>::end()): Likewise.
	(unordered_map<>::cbegin()): Likewise.
	(unordered_map<>::cend()): Likewise.
	(unordered_map<>::begin(size_type)): Likewise.
	(unordered_map<>::end(size_type)): Likewise.
	(unordered_map<>::cbegin(size_type)): Likewise.
	(unordered_map<>::cend(size_type)): Likewise.
	(unordered_map<>::emplace<>(_Args&&...)): Likewise.
	(unordered_map<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
	(unordered_map<>::insert(const value_type&)): Likewise.
	(unordered_map<>::insert(value_type&&)): Likewise.
	(unordered_map<>::insert<>(_Pair&&)): Likewise.
	(unordered_map<>::insert(const_iterator, const value_type&)): Likewise.
	(unordered_map<>::insert(const_iterator, value_type&&)): Likewise.
	(unordered_map<>::insert<>(const_iterator, _Pair&&)): Likewise.
	(unordered_map<>::try_emplace<>(const key_type&, _Args&&...)): Likewise.
	(unordered_map<>::try_emplace<>(key_type&&, _Args&&...)): Likewise.
	(unordered_map<>::try_emplace<>(const_iterator, const key_type&,
	_Args&&...)): Likewise.
	(unordered_map<>::try_emplace<>(const_iterator, key_type&&,
	_Args&&...)): Likewise.
	(unordered_map<>::insert_or_assign<>(const key_type&, _Obj&&)): Likewise.
	(unordered_map<>::insert_or_assign<>(key_type&&, _Obj&&)): Likewise.
	(unordered_map<>::insert_or_assign<>(const_iterator, const key_type&,
	_Obj&&)): Likewise.
	(unordered_map<>::insert_or_assign<>(const_iterator, key_type&&,
	_Obj&&)): Likewise.
	(unordered_map<>::insert(note_type&&)): Likewise.
	(unordered_map<>::find(const key_type&)): Likewise.
	(unordered_map<>::equal_range(const key_type&)): Likewise.
	(unordered_map<>::_M_extract): New.
	(unordered_map<>::extract(const_iterator)): Use latter.
	(unordered_map<>::extract(const key_type&)): Likewise.
	(unordered_map<>::_M_erase): New.
	(unordered_map<>::erase(const key_type&)): Use latter.
	(unordered_map<>::erase(const_iterator)): Likewise.
	(unordered_map<>::erase(iterator)): Likewise.
	(unordered_map<>::_M_invalidate): New.
	(unordered_map<>::erase(const_iterator, const_iterator)): Use latter.
	(unordered_multimap<>::begin()): Use C++11 direct initialization.
	(unordered_multimap<>::end()): Likewise.
	(unordered_multimap<>::cbegin()): Likewise.
	(unordered_multimap<>::cend()): Likewise.
	(unordered_multimap<>::begin(size_type)): Likewise.
	(unordered_multimap<>::end(size_type)): Likewise.
	(unordered_multimap<>::cbegin(size_type)): Likewise.
	(unordered_multimap<>::cend(size_type)): Likewise.
	(unordered_multimap<>::emplace<>(_Args&&...)): Likewise.
	(unordered_multimap<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
	(unordered_multimap<>::insert(const value_type&)): Likewise.
	(unordered_multimap<>::insert(const_iterator, const value_type&)): Likewise.
	(unordered_multimap<>::insert(const_iterator, value_type&&)): Likewise.
	(unordered_multimap<>::insert<>(_Pair&&)): Likewise.
	(unordered_multimap<>::insert<>(const_iterator, _Pair&&)): Likewise.
	(unordered_multimap<>::insert(note_type&&)): Likewise.
	(unordered_multimap<>::insert(const_iterator, note_type&&)): Likewise.
	(unordered_multimap<>::find(const key_type&)): Likewise.
	(unordered_multimap<>::equal_range(const key_type&)): Likewise.
	(unordered_multimap<>::_M_extract): New.
	(unordered_multimap<>::extract(const_iterator)): Use latter.
	(unordered_multimap<>::extract(const key_type&)): Likewise.
	(unordered_multimap<>::_M_erase): New.
	(unordered_multimap<>::erase(const_iterator)): Likewise.
	(unordered_multimap<>::erase(iterator)): Likewise.
	(unordered_multimap<>::_M_invalidate): New.
	(unordered_multimap<>::erase(const key_type&)): Use latter.
	(unordered_multimap<>::erase(const_iterator, const_iterator)): Likewise.
	* include/debug/unordered_set
	(unordered_set<>::begin()): Use C++11 direct initialization.
	(unordered_set<>::end()): Likewise.
	(unordered_set<>::cbegin()): Likewise.
	(unordered_set<>::cend()): Likewise.
	(unordered_set<>::begin(size_type)): Likewise.
	(unordered_set<>::end(size_type)): Likewise.
	(unordered_set<>::cbegin(size_type)): Likewise.
	(unordered_set<>::cend(size_type)): Likewise.
	(unordered_set<>::emplace<>(_Args&&...)): Likewise.
	(unordered_set<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
	(unordered_set<>::insert(const value_type&)): Likewise.
	(unordered_set<>::insert(value_type&&)): Likewise.
	(unordered_set<>::insert(const_iterator, const value_type&)): Likewise.
	(unordered_set<>::insert(const_iterator, value_type&&)): Likewise.
	(unordered_set<>::insert(note_type&&)): Likewise.
	(unordered_set<>::insert(const_iterator, note_type&&)): Likewise.
	(unordered_set<>::find(const key_type&)): Likewise.
	(unordered_set<>::equal_range(const key_type&)): Likewise.
	(unordered_set<>::_M_extract): New.
	(unordered_set<>::extract(const_iterator)): Use latter.
	(unordered_set<>::extract(const key_type&)): Likewise.
	(unordered_set<>::_M_erase): New.
	(unordered_set<>::erase(const key_type&)): Use latter.
	(unordered_set<>::erase(const_iterator)): Likewise.
	(unordered_set<>::erase(iterator)): Likewise.
	(unordered_set<>::_M_invalidate): New.
	(unordered_set<>::erase(const_iterator, const_iterator)): Use latter.
	(unordered_multiset<>::begin()): Use C++11 direct initialization.
	(unordered_multiset<>::end()): Likewise.
	(unordered_multiset<>::cbegin()): Likewise.
	(unordered_multiset<>::cend()): Likewise.
	(unordered_multiset<>::begin(size_type)): Likewise.
	(unordered_multiset<>::end(size_type)): Likewise.
	(unordered_multiset<>::cbegin(size_type)): Likewise.
	(unordered_multiset<>::cend(size_type)): Likewise.
	(unordered_multiset<>::emplace<>(_Args&&...)): Likewise.
	(unordered_multiset<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
	(unordered_multiset<>::insert(const value_type&)): Likewise.
	(unordered_multiset<>::insert(const_iterator, const value_type&)): Likewise.
	(unordered_multiset<>::insert(value_type&&)): Likewise.
	(unordered_multiset<>::insert(const_iterator, value_type&&)): Likewise.
	(unordered_multiset<>::insert(node_type&&)): Likewise.
	(unordered_multiset<>::insert(const_iterator, node_type&&)): Likewise.
	(unordered_multiset<>::find(const key_type&)): Likewise.
	(unordered_multiset<>::equal_range(const key_type&)): Likewise.
	(unordered_multiset<>::_M_extract): New.
	(unordered_multiset<>::extract(const_iterator)): Use latter.
	(unordered_multiset<>::extract(const key_type&)): Likewise.
	(unordered_multiset<>::_M_erase): New.
	(unordered_multiset<>::erase(const_iterator)): Likewise.
	(unordered_multiset<>::erase(iterator)): Likewise.
	(unordered_multiset<>::_M_invalidate): New.
	(unordered_multiset<>::erase(const key_type&)): Use latter.
	(unordered_multiset<>::erase(const_iterator, const_iterator)): Likewise.

From-SVN: r265451
2018-10-24 05:40:25 +00:00
François Dumont
a01fc83fea cstddef: Add versioned namespace.
2018-10-24  François Dumont  <fdumont@gcc.gnu.org>

	* include/c_global/cstddef: Add versioned namespace.

From-SVN: r265450
2018-10-24 05:20:35 +00:00
GCC Administrator
d21dad9827 Daily bump.
From-SVN: r265448
2018-10-24 00:16:54 +00:00
Jeff Law
040e0e4410 h8300.c (h8300_expand_prologue): Fix stm generation for H8/S.
* config/h8300/h8300.c (h8300_expand_prologue): Fix stm generation
	for H8/S.

From-SVN: r265444
2018-10-23 16:51:25 -06:00
Iain Buclaw
72eda5f274 MAINTAINERS (Write After Approval): Remove myself.
2018-10-23  Iain Buclaw  <ibuclaw@gdcproject.org>

	* MAINTAINERS (Write After Approval): Remove myself.

From-SVN: r265442
2018-10-23 21:42:23 +00:00
Iain Buclaw
4c029cee5c MAINTAINERS: Add myself as D front-end and libphobos maintainer.
2018-10-23  Iain Buclaw  <ibuclaw@gdcproject.org>

	* MAINTAINERS: Add myself as D front-end and libphobos maintainer.

From-SVN: r265441
2018-10-23 21:04:51 +00:00
Ian Lance Taylor
8dd2ae4bc7 re PR go/87661 (libgo bootstrap failure on arm-linux-gnueabihf (redefinition of constants))
PR go/87661
    runtime: remove unused armArch, hwcap and hardDiv
    
    After CL 140057 these are only written but never read in gccgo.
    
    Reviewed-on: https://go-review.googlesource.com/c/141077

From-SVN: r265439
2018-10-23 19:02:29 +00:00