Commit Graph

163884 Commits

Author SHA1 Message Date
Matthew Malcomson
3c5af60836 [AARCH64] Use STLUR for atomic_store
Use the STLUR instruction introduced in Armv8.4-a.
This instruction has the store-release semantic like STLR but can take a
9-bit unscaled signed immediate offset.

Example test case:
```
void
foo ()
{
    int32_t *atomic_vals = calloc (4, sizeof (int32_t));
    atomic_store_explicit (atomic_vals + 1, 2, memory_order_release);
}
```

Before patch generates
```
foo:
	stp	x29, x30, [sp, -16]!
	mov	x1, 4
	mov	x0, x1
	mov	x29, sp
	bl	calloc
	mov	w1, 2
	add	x0, x0, 4
	stlr	w1, [x0]
	ldp	x29, x30, [sp], 16
	ret
```

After patch generates
```
foo:
	stp	x29, x30, [sp, -16]!
	mov	x1, 4
	mov	x0, x1
	mov	x29, sp
	bl	calloc
	mov	w1, 2
	stlur	w1, [x0, 4]
	ldp	x29, x30, [sp], 16
	ret
```

We introduce a new feature flag to indicate the presence of this instruction.
The feature flag is called AARCH64_ISA_RCPC8_4 and is included when targeting
armv8.4 architecture.

We also introduce an "arch" attribute to be checked called "rcpc8_4" after this
feature flag.

gcc/

2018-09-19  Matthew Malcomson  <matthew.malcomson@arm.com>

	* config/aarch64/aarch64-protos.h
	(aarch64_offset_9bit_signed_unscaled_p): New declaration.
	* config/aarch64/aarch64.md (arches): New "rcpc8_4" attribute value.
	(arch_enabled): Add check for "rcpc8_4" attribute value of "arch".
	* config/aarch64/aarch64.h (AARCH64_FL_RCPC8_4): New bitfield.
	(AARCH64_FL_FOR_ARCH8_4): Include AARCH64_FL_RCPC8_4.
	(AARCH64_FL_PROFILE): Move index so flags are ordered.
	(AARCH64_ISA_RCPC8_4): New flag.
	* config/aarch64/aarch64.c (offset_9bit_signed_unscaled_p): Renamed
	to aarch64_offset_9bit_signed_unscaled_p.
	* config/aarch64/atomics.md (atomic_store<mode>): Allow offset
	and use stlur.
	* config/aarch64/constraints.md (Ust): New constraint.
	* config/aarch64/predicates.md.
	(aarch64_9bit_offset_memory_operand): New predicate.
	(aarch64_rcpc_memory_operand): New predicate.

gcc/testsuite/

2018-09-19  Matthew Malcomson  <matthew.malcomson@arm.com>

	* gcc.target/aarch64/atomic-store.c: New.

From-SVN: r264421
2018-09-19 10:24:59 +00:00
Eric Botcazou
574f5885f7 re PR rtl-optimization/87361 (gcc.target/sparc/20161111-1.c FAILs)
PR rtl-optimization/87361
	* rtlanal.c (nonzero_bits1): Revert accidental change.

From-SVN: r264420
2018-09-19 10:12:04 +00:00
Richard Biener
d4eb08fe02 re PR tree-optimization/87349 (ICE: Segmentation fault (in useless_type_conversion_p or is_gimple_reg_type))
2018-09-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/87349
	PR tree-optimization/87342
	* tree-ssa-sccvn.c (do_rpo_vn): Iterate max_rpo computation.

	* gcc.dg/torture/pr87349-1.c: New testcase.
	* gcc.dg/torture/pr87349-2.c: Likewise.
	* gcc.dg/torture/pr87342.c: Likewise.

From-SVN: r264419
2018-09-19 07:10:42 +00:00
Simon Marchi
907739318d libgnuintl.h (_INTL_MAY_RETURN_STRING_ARG, [...]): Backport changes from upstream gettext.
* libgnuintl.h (_INTL_MAY_RETURN_STRING_ARG, gettext, dgettext,
	dcgettext, ngettext, dngettext, dcngettext): Backport changes
	from upstream gettext.

From-SVN: r264418
2018-09-18 22:08:49 -06:00
GCC Administrator
709f7ea13d Daily bump.
From-SVN: r264417
2018-09-19 00:16:46 +00:00
François Dumont
a521e62615 re PR libstdc++/87135 ([C++17] unordered containers violate iterator validity requirements)
2018-09-18  François Dumont  <fdumont@gcc.gnu.org>

	PR libstdc++/87135
	* src/c++11/hashtable_c++0x.cc:
	(_Prime_rehash_policy::_M_next_bkt): Return a prime no smaller than
	requested size, but not necessarily greater.
	(_Prime_rehash_policy::_M_need_rehash): Rehash only if target size is
	strictly greater than next resize threshold.
	* testsuite/23_containers/unordered_map/modifiers/reserve.cc: Adapt test
	to validate that there is no rehash as long as number of insertion is
	lower or equal to the reserved number of elements.

From-SVN: r264413
2018-09-18 20:36:16 +00:00
Thomas Koenig
998511a610 re PR fortran/29550 (Optimize -fexternal-blas calls for conjg())
2018-09-18  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/29550
	* gfortran.h (gfc_expr): Add external_blas flag.
	* frontend-passes.c (matrix_case): Add case A2TB2T.
	(optimize_namespace): Handle flag_external_blas by
	calling call_external_blas.
	(get_array_inq_function): Add argument okind. If
	it is nonzero, use it as the kind of argument
	to be used.
	(inline_limit_check): Remove m_case argument, add
	limit argument instead.  Remove assert about m_case.
	Set the limit for inlining from the limit argument.
	(matmul_lhs_realloc): Handle case A2TB2T.
	(inline_matmul_assign): Handle inline limit for other cases with
	two rank-two matrices.  Remove no-op calls to inline_limit_check.
	(call_external_blas): New function.
	* trans-intrinsic.c (gfc_conv_intrinsic_funcall): Do not add
	argument to external BLAS if external_blas is already set.

2018-09-18  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/29550
	* gfortran.dg/inline_matmul_13.f90: Adjust count for
	_gfortran_matmul.
	* gfortran.dg/inline_matmul_16.f90: Likewise.
	* gfortran.dg/promotion_2.f90: Add -fblas-matmul-limit=1.  Scan
	for dgemm instead of dgemm_.  Add call to random_number to make
	standard conforming.
	* gfortran.dg/matmul_blas_1.f90: New test.
	* gfortran.dg/matmul_bounds_14.f: New test.
	* gfortran.dg/matmul_bounds_15.f: New test.
	* gfortran.dg/matmul_bounds_16.f: New test.
	* gfortran.dg/blas_gemm_routines.f: New test / additional file for
	preceding tests.

From-SVN: r264412
2018-09-18 20:18:09 +00:00
Thomas Koenig
5c470e0f07 re PR fortran/29550 (Optimize -fexternal-blas calls for conjg())
2018-09-18  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/29550
	* gfortran.h (gfc_expr): Add external_blas flag.
	* frontend-passes.c (matrix_case): Add case A2TB2T.
	(optimize_namespace): Handle flag_external_blas by
	calling call_external_blas.
	(get_array_inq_function): Add argument okind. If
	it is nonzero, use it as the kind of argument
	to be used.
	(inline_limit_check): Remove m_case argument, add
	limit argument instead.  Remove assert about m_case.
	Set the limit for inlining from the limit argument.
	(matmul_lhs_realloc): Handle case A2TB2T.
	(inline_matmul_assign): Handle inline limit for other cases with
	two rank-two matrices.  Remove no-op calls to inline_limit_check.
	(call_external_blas): New function.
	* trans-intrinsic.c (gfc_conv_intrinsic_funcall): Do not add
	argument to external BLAS if external_blas is already set.

2018-09-18  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/29550
	* gfortran.dg/inline_matmul_13.f90: Adjust count for
	_gfortran_matmul.
	* gfortran.dg/inline_matmul_16.f90: Likewise.
	* gfortran.dg/promotion_2.f90: Add -fblas-matmul-limit=1.  Scan
	for dgemm instead of dgemm_.  Add call to random_number to make
	standard conforming.
	* gfortran.dg/matmul_blas_1.f90: New test.
	* gfortran.dg/matmul_bounds_14.f: New test.
	* gfortran.dg/matmul_bounds_15.f: New test.
	* gfortran.dg/matmul_bounds_16.f: New test.
	* gfortran.dg/blas_gemm_routines.f: New test / additional file for
	preceding tests.

From-SVN: r264411
2018-09-18 19:59:46 +00:00
Paul Thomas
f435162f88 re PR fortran/87239 (ICE in deferred-length string)
2018-09-18  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/87239
	* trans-expr.c (gfc_trans_assignment_1): The rse.pre for the
	assignment of deferred character elemental function results to
	a realocatable lhs must not be added to the exterior block but
	must go to the loop body.

2018-09-18  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/87239
	* gfortran.dg/elemental_function_2.f90 : New test.

From-SVN: r264409
2018-09-18 19:35:53 +00:00
Marek Polacek
bf8d83098f P1064R0 - Allowing Virtual Function Calls in Constant Expressions
P1064R0 - Allowing Virtual Function Calls in Constant Expressions
	* call.c (build_over_call): No longer check if we're outside a template
	function.
	* class.c (build_vtbl_initializer): Build vtable's constructor with
	indexes.
	* constexpr.c (cxx_eval_constant_expression): Don't ignore _vptr's
	initializer.  Handle OBJ_TYPE_REF.
	(potential_constant_expression_1): Handle OBJ_TYPE_REF.
	* decl.c (maybe_commonize_var): Bail out for any DECL_ARTIFICIAL.
	(initialize_artificial_var): Mark the variable as constexpr.
	(grokdeclarator): Change error to pedwarn.  Only warn when
	pedantic and not C++2a.

	* gimple-fold.c (gimple_get_virt_method_for_vtable): Adjust assert.

	* g++.dg/cpp0x/constexpr-virtual5.C: Adjust dg-error.
	* g++.dg/cpp2a/constexpr-virtual1.C: New test.
	* g++.dg/cpp2a/constexpr-virtual2.C: New test.
	* g++.dg/cpp2a/constexpr-virtual3.C: New test.
	* g++.dg/cpp2a/constexpr-virtual4.C: New test.
	* g++.dg/cpp2a/constexpr-virtual5.C: New test.
	* g++.dg/cpp2a/constexpr-virtual6.C: New test.
	* g++.dg/cpp2a/constexpr-virtual7.C: New test.
	* g++.dg/cpp2a/constexpr-virtual8.C: New test.
	* g++.dg/cpp2a/constexpr-virtual9.C: New test.
	* g++.dg/diagnostic/virtual-constexpr.C: Skip for C++2a.  Use
	-pedantic-errors.  Adjust dg-error.

From-SVN: r264408
2018-09-18 19:16:28 +00:00
Paul Thomas
e8db6cd5fb re PR fortran/87336 (wrong output for pointer dummy assiocated to target actual argument)
2018-09-18  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/87336
	* trans-array.c (gfc_get_array_span): Try to get the element
	length of incomplete types. Return NULL_TREE otherwise.
	(gfc_conv_expr_descriptor): Only set the 'span' field if the
	above does not return NULL_TREE. Set 'span' field if possible
	for all new descriptors.

2018-09-18  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/87336
	* gfortran.dg/pointer_array_10.f90 : New test.
	* gfortran.dg/assign_10.f90 : Increase 'parm' count to 20.
	* gfortran.dg/transpose_optimization_2.f90 : Increase 'parm'
	count to 72.

From-SVN: r264405
2018-09-18 17:58:20 +00:00
Segher Boessenkool
b819cc44a1 rs6000: Remove old "Cygnus sibcall" comment
This comment is quite cryptic and very out-of-date by now.  Committing.


	* config/rs6000/rs6000.md: Remove old "Cygnus sibcall" comment.

From-SVN: r264403
2018-09-18 19:37:40 +02:00
Paolo Carlini
c99fcadae8 re PR c++/85065 ([concepts] ICE with invalid use of a concept)
/cp
2018-09-18  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/85065
	* cp-tree.h (NON_ERROR): New.
	* pt.c (auto_hash::hash): Use it.
	(do_auto_deduction): Likewise.

/testsuite
2018-09-18  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/85065
	* g++.dg/concepts/pr85065.C: New.

From-SVN: r264402
2018-09-18 16:35:27 +00:00
Segher Boessenkool
b7663a763f Handle CLOBBER in reg_overlap_mentioned_p (PR86882)
Combine will put CLOBBER (with a non-void mode) anywhere in a pattern
to poison it.  reg_overlap_mentioned_p did not handle this.  This patch
fixes that.


	PR rtl-optimization/86882
	* rtlanal.c (reg_overlap_mentioned_p): Handle CLOBBER.

From-SVN: r264400
2018-09-18 18:19:56 +02:00
Jonathan Wakely
a12c16de52 Fix location of invocable check for unique_ptr deleter
The deleter only needs to be invocable when the unique_ptr destructor
and reset member function are instantiated. In other contexts it might
not be possible to pass unique_ptr<T, D>::pointer to the deleter, if
that requires a derived-to-base conversion from T* and T is incomplete.

	* include/bits/unique_ptr.h (__uniq_ptr_impl): Remove static assertion
	checking invocable condition.
	(unique_ptr::~unique_ptr, unique_ptr::reset): Restore static assertion
	here, where types must be complete. Pass pointer to deleter as an
	rvalue.
	* testsuite/20_util/unique_ptr/requirements/incomplete.cc: New test.

From-SVN: r264399
2018-09-18 17:05:36 +01:00
Uros Bizjak
f96c8666f5 i386.md (*<code>extend<mode>xf2): Macroize insn from *<code>extendsfxf2 and *<code>extenddfxf2 using MODEF mode...
* config/i386/i386.md (*<code>extend<mode>xf2): Macroize insn from
	*<code>extendsfxf2 and *<code>extenddfxf2 using MODEF mode iterator.

From-SVN: r264398
2018-09-18 17:51:54 +02:00
Cesar Philippidis
2049befdd0 [nvptx] Remove use of CUDA unified memory in libgomp
libgomp/
	* plugin/plugin-nvptx.c (struct cuda_map): New.
	(struct ptx_stream): Replace d, h, h_begin, h_end, h_next, h_prev,
	h_tail with (cuda_map *) map.
	(cuda_map_create): New function.
	(cuda_map_destroy): New function.
	(map_init): Update to use a linked list of cuda_map objects.
	(map_fini): Likewise.
	(map_pop): Likewise.
	(map_push): Likewise.  Return CUdeviceptr instead of void.
	(init_streams_for_device): Remove stales references to ptx_stream
	members.
	(select_stream_for_async): Likewise.
	(nvptx_exec): Update call to map_init.

From-SVN: r264397
2018-09-18 08:41:54 -07:00
Jonathan Wakely
5e594075c8 PR other/87353 fix formatting and grammar in manual
The changes to invoke.texi in r242433 left some unwanted spaces that
texi2pod.pl interprets as verbatim formatting. There are also some
grammatical errors due to the removal of references to GCJ, where the
G++ driver is referred to in the plural.

	PR other/87353
	* doc/invoke.texi (Link Options): Fix formatting and grammar.

From-SVN: r264395
2018-09-18 15:19:55 +01:00
Nathan Sidwell
538d2d7e7f Fix dg-do target
From-SVN: r264394
2018-09-18 14:14:57 +00:00
Kyrylo Tkachov
89e1963a20 Add PR marker to previous commit
From-SVN: r264393
2018-09-18 14:09:54 +00:00
Kyrylo Tkachov
6902e3a01d Fix gcc.dg/warn-abs-1.c for arm and aarch64-none-elf
This new test has some difficulties on the fabsl function.
On arm this is because we don't support the _Float128 type which the test uses.
This is handled in the patch by requiring a float128 target selector.

On aarch64-none-elf, a Newlib target, it fails because fabsl is not available.
long double support is known to be incomplete in newlib, and the fabsl function is not available
for targets where long double is larger than a double.
Therefore this patch skips the test on such targets.


	* gcc.dg/warn-abs-1.c: Require float128 target.
	Skip if large_long_double newlib target.

From-SVN: r264392
2018-09-18 13:54:36 +00:00
Nathan Sidwell
3897f13410 [PATCH c++/86881] -Wshadow-local-compatible ICE
https://gcc.gnu.org/ml/gcc-patches/2018-09/msg00984.html
	PR c++/86881
	cp/
	* name-lookup.c (check_local_shadow): Ignore auto types.

	testsuite/
	* g++.dg/warn/pr86881.C: New.

From-SVN: r264391
2018-09-18 13:52:30 +00:00
Kyrylo Tkachov
0dce552628 [AArch64][committed] Fix gcc.target/aarch64/spellcheck_1.c and spellcheck_4.c
These two tests started failing after commit r264335 that adjusted the cutoff point at which the diagnostic suggestions machinery decides a suggestion is meaningful.
For these tests it means we no longer suggest anything as an alternative to "armv8-a-typo" as an "arch=" pargma value. We do still list the valid options, we just don't prefer one particular value over the others.

When I first wrote this test it wasn't with a particular architecture suggestion in mind, but rather to test that the suggestion machinery is being sanely invoked.
So this patch changes the dg-message check to treat the "did you mean...?" hunk as optional (in case the heuristics in the suggestions machinery change again).

With this patch the two tests PASS again on aarch64. 

    * gcc.target/aarch64/spellcheck_1.c:
    Make architecture suggestion optional.
    * gcc.target/aarch64/spellcheck_4.c:
    Likewise.

From-SVN: r264390
2018-09-18 13:32:12 +00:00
Kyrylo Tkachov
92cb1fbc27 [AArch64][testsuite][committed] Fix gcc.target/aarch64/combine_bfxil.c for -mabi=ilp32
As described in https://gcc.gnu.org/ml/gcc-patches/2018-09/msg00963.html this test generates UXTW instructions with -mabi=ilp32
because the foo* functions take pointers and store results into them. In ILP32 the callee clears the top bits with a UXTW.
This trips the scan-assembler-not UXTW test that checks that the zero_extend form of the BFXIL pattern is used, which it is.

This patch avoids this problem by not passing pointers to the results, but instead using global variables for which the foo* functions
will synthesise the address using ADRP, avoiding the UXTW instructions.

With this patch the test PASSes fully with -mabi=ilp32 and still PASSes on LP64.

	* gcc.target/aarch64/combine_bfxil.c: Avoid passing pointers to
	functions.

From-SVN: r264389
2018-09-18 13:28:50 +00:00
Richard Biener
6a8aa2e11b re PR middle-end/63155 (memory hog)
2018-09-18  Richard Biener  <rguenther@suse.de>

	PR middle-end/63155
	* tree-ssa-coalesce.c (tree_int_map_hasher): Remove.
	(compute_samebase_partition_bases): Likewise.
	(coalesce_ssa_name): Always use compute_optimized_partition_bases.
	(gimple_can_coalesce_p): Simplify.

From-SVN: r264388
2018-09-18 13:26:05 +00:00
Rainer Orth
53c6feb2b2 Use v2 map syntax in libgcc-unwind.map if Solaris ld supports it
* configure.ac (solaris_ld_v2_maps): New test.
	* configure: Regenerate.
	* Makefile.in (solaris_ld_v2_maps): New variable.
	* config/t-slibgcc-sld (libgcc-unwind.map): Emit v2 mapfile syntax
	if supported.

From-SVN: r264382
2018-09-18 07:04:15 +00:00
Hans-Peter Nilsson
e6bf23cce3 Handle a library implementation of ffs calling __builtin_ffs.
* config/mmix/mmix.c (TARGET_INIT_LIBFUNCS): Override with...
	(mmix_init_libfuncs): New function: make __builtin_ffs expand
	to __ffsdi2.

From-SVN: r264381
2018-09-18 02:42:15 +00:00
GCC Administrator
18b0a76251 Daily bump.
From-SVN: r264380
2018-09-18 00:16:45 +00:00
David Malcolm
9c4a4b3cbd Add range_idx param to range_label::get_text
This patch updates the pure virtual function range_label::get_text
(and its implementations) so that the index of the range is passed
in, allowing for one label instance to be shared by multiple ranges.

gcc/c-family/ChangeLog:
	* c-format.c (range_label_for_format_type_mismatch::get_text):
	Update for new param.

gcc/c/ChangeLog:
	* c-objc-common.c (range_label_for_type_mismatch::get_text):
	Update for new param.
	* c-typeck.c (maybe_range_label_for_tree_type_mismatch::get_text):
	Likewise.

gcc/cp/ChangeLog:
	* error.c (range_label_for_type_mismatch::get_text): Update for
	new param.

gcc/ChangeLog:
	* diagnostic-show-locus.c (class layout_range): Add field
	"m_original_idx".
	(layout_range::layout_range): Add "original_idx" param and use it
	to initialize new field.
	(make_range): Use 0 for original_idx.
	(layout::layout): Pass in index to calls to
	maybe_add_location_range.
	(layout::maybe_add_location_range): Add param "original_idx" and
	pass it on to layout_range.
	(layout::print_any_labels): Pass on range->m_original_idx to
	get_text call.
	(gcc_rich_location::add_location_if_nearby): Use 0 for
	original_idx.
	* gcc-rich-location.h (text_range_label::get_text): Update for new
	param.
	(range_label_for_type_mismatch::get_text): Likewise.

libcpp/ChangeLog:
	* include/line-map.h (range_label::get_text): Add param
	"range_idx".

From-SVN: r264376
2018-09-17 23:32:12 +00:00
Uros Bizjak
71b731be7a i386.c (ix86_emit_i387_log1p): Emit fldln2 earlier.
* config/i386/i386.c (ix86_emit_i387_log1p): Emit fldln2 earlier.

From-SVN: r264373
2018-09-17 22:33:04 +02:00
David Malcolm
c896ecfeab substring-locations: add class format_string_diagnostic_t
With the addition of ranges in r263564, format_warning_at_substring_n
has 10 arguments.

Reduce the number of args by bundling the shared ones into a
class format_string_diagnostic_t.

gcc/c-family/ChangeLog:
	* c-format.c (format_warning_at_char): Update for introduction of
	format_string_diagnostic_t.
	(format_type_warning): Likewise.

gcc/ChangeLog:
	* gimple-ssa-sprintf.c (fmtwarn): Update for introduction of
	format_string_diagnostic_t.
	(fmtwarn_n): Likewise.
	* substring-locations.c
	(format_string_diagnostic_t::format_string_diagnostic_t) New ctor.
	(format_warning_n_va): Convert to...
	(format_string_diagnostic_t::emit_warning_n_va): ...this.
	(format_warning_va): Convert to...
	(format_string_diagnostic_t::emit_warning_va): ...this.
	(format_warning_at_substring): Convert to...
	(format_string_diagnostic_t::emit_warning): ...this.
	(format_warning_at_substring_n): Convert to...
	(format_string_diagnostic_t::emit_warning_n): ...this.
	* substring-locations.h (class format_string_diagnostic_t): New
	class.
	(format_warning_va): Convert to
	format_string_diagnostic_t::emit_warning_va.
	(format_warning_n_va): Convert to
	format_string_diagnostic_t::emit_warning_n_va.
	(format_warning_at_substring): Convert to
	format_string_diagnostic_t::emit_warning.
	(format_warning_at_substring_n): Convert to
	format_string_diagnostic_t::emit_warning_n.

From-SVN: r264372
2018-09-17 20:31:01 +00:00
Cesar Philippidis
69d7aabfd8 [nvptx] Add atomic_fetch* support for SImode arguments.
gcc/
	* config/nvptx/nvptx.md (atomic_fetch_<logic><mode>): Enable with
	SImode args.

	gcc/testsuite/
	* gcc.target/nvptx/atomic-fetch-2.c: Rename to ...
	* gcc.target/nvptx/atomic_fetch-2.c: ... this.
	* gcc.target/nvptx/atomic_fetch-3.c: New test.


Co-Authored-By: Bernd Schmidt <bernds_cb1@t-online.de>

From-SVN: r264371
2018-09-17 12:59:19 -07:00
Uros Bizjak
fa540cecf5 i386.md (truncxf<mode>2_i387_noop_unspec): Change operand 0 predicate to nonimmediate operand.
* config/i386/i386.md (truncxf<mode>2_i387_noop_unspec): Change
	operand 0 predicate to nonimmediate operand.
	(rint<mode>2_frndint): Remove insn pattern.
	(rint<mode>2): Change operand 1 predicate to general_operand.
	Extend operand 1 to XFmode and generate rintxf2 insn.
	(frndintxf2_<rounding>): Rename from frndint<mode>2_<rounding>.
	Do not use X87MODEF mode macro.
	(frndintxf2_<rounding>_i387): Rename from
	frndint<mode>2_<rounding>_i387.  Do not use X87MODEF mode macro.
	(<rounding_insn><mode>2): For non-SSE modes, extend operand 1
	to XFmode and generate significandxf3 insn.

From-SVN: r264370
2018-09-17 17:00:57 +02:00
Richard Biener
5d721887ef re PR tree-optimization/87328 (ICE in do_rpo_vn, at tree-ssa-sccvn.c:6566)
2018-09-17  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/87328
	* tree-ssa-sccvn.c (process_bb): Remove assertion about not
	visiting unexecutable backedges when not iterating.
	(do_rpo_vn): Mark all edges not executable even when not
	iterating.

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

From-SVN: r264369
2018-09-17 13:28:04 +00:00
Martin Jambor
80c6d1f446 Add -Wabsolute-value
2018-09-17  Martin Jambor  <mjambor@suse.cz>

	gcc/
	* doc/invoke.texi (Warning Options): Likewise.

	gcc/c-family/
	* c.opt (Wabsolute-value): New.

	gcc/c/
	* c-parser.c: (warn_for_abs): New function.
	(c_parser_postfix_expression_after_primary): Call it.

	testsuite/
	* gcc.dg/warn-abs-1.c: New test.
	* gcc.dg/dfp/warn-abs-2.c: Likewise.

From-SVN: r264368
2018-09-17 15:12:12 +02:00
Bernd Edlinger
3ab3a92e8e ms-sysv.exp: Don't pass TEST_ALWAYS_FLAGS to HOSTCXX.
2018-09-17  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * gcc.target/x86_64/abi/ms-sysv/ms-sysv.exp: Don't pass
        TEST_ALWAYS_FLAGS to HOSTCXX.

From-SVN: r264367
2018-09-17 12:41:58 +00:00
Paul Thomas
d44235fbe0 re PR fortran/64120 ([F03] Wrong handling of allocatable character string)
2018-09-17  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/64120
	* trans-decl.c (gfc_get_symbol_decl): Flag allocatable, scalar
	characters with a variable length expression for deferred init.
	(gfc_trans_deferred_vars): Perform the assignment for these
	symbols by calling gfc_conv_string_length.

2018-09-17  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/64120
	* gfortran.dg/allocatable_scalar_14.f90 : New test.

From-SVN: r264365
2018-09-17 11:22:27 +00:00
Richard Biener
ecfb64f692 re PR tree-optimization/87301 (ICE: verify_gimple failed (error: statement marked for throw, but doesn't))
2018-09-17  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/87301
	* tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_cleanup): Properly
	clean EH info from leftover copy assignments.

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

From-SVN: r264364
2018-09-17 10:21:21 +00:00
Martin Liska
dda107dfb4 Fix out-of-bounds in gcov.c (PR gcov-profile/85871).
2018-09-17  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/85871
	* gcov.c (output_intermediate_file): Fix out of bounds
	access.

From-SVN: r264363
2018-09-17 10:19:02 +00:00
Vineet Gupta
dd1fd744cc [ARC] Enable DBNZ for core3 and newer CPUs.
2018-09-17  Vineet Gupta  <vgupta@synopsys.com>

	* config/arc/arc.c: Object attributes for core4 not reflected
	correctly.
	* config/arc/arc.h: Don't restrict DBNZ to core3 (core4 includes
	core3).

From-SVN: r264362
2018-09-17 10:52:22 +02:00
Alexey Brodkin
5305a279c0 [ARC] Update LINK_EH_SPEC linker spec.
With no trailing space in LINK_EH_SPEC linker spec gets generated as:
------------------------>8---------------------
%{!r:--build-id} --eh-frame-hdr%{h*} ...
------------------------>8---------------------

or even worse if hash style is added:
------------------------>8---------------------
%{!r:--build-id} --eh-frame-hdr--hash-style=sysv %{h*} ...
------------------------>8---------------------

Now if that spec is really used by LD then it fails inevitably
saying that it doesn't know option "--eh-frame-hdr--hash-style=sysv".

2018-09-17  Alexey Brodkin  <abrodkin@synopsys.com>

	* config/arc/linux.h (LINK_EH_SPEC): Add missing space.

From-SVN: r264361
2018-09-17 10:52:10 +02:00
Martin Liska
d6683f8912 gcov: emit hotness colors to easily find hot code.
2018-09-17  Martin Liska  <mliska@suse.cz>

	* doc/gcov.texi: Document new option --use-hotness-colors.
	* gcov.c (struct source_info): Declare new field.
	(source_info::source_info): Set default for maximum_count.
	(print_usage): Add new -q option.
	(process_args): Process it.
	(accumulate_line_info): Save src->maximum_count.
	(output_line_beginning): Make color line number if
	flag_use_hotness_colors is set.
	(output_line_details): Pass default argument value.
	(output_lines): Pass src->maximum_count.

From-SVN: r264360
2018-09-17 08:49:09 +00:00
Martin Liska
7dc58b5053 i386: move alignment defaults to processor_costs.
2018-09-17  Martin Liska  <mliska@suse.cz>

	* common/config/i386/i386-common.c (ix86_get_valid_option_values):
	Use processor_names table.
	* config/i386/i386.c (ix86_default_align): Use
	processor_cost_table for alignment values.
	(ix86_option_override_internal): Use processor_names.
	(ix86_function_specific_print): Likewise.
	* config/i386/i386.h (struct processor_costs):
	Add alignment values.
	(struct ptt): Remove and replace with const char *.
	* config/i386/x86-tune-costs.h (struct processor_costs):
	Declare default alignments for all costs.

From-SVN: r264359
2018-09-17 08:47:38 +00:00
Paul Thomas
ca32d61bab re PR fortran/85954 (ICE in make_ssa_name_fn, at tree-ssanames.c:266)
2018-09-17  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/85954
	* resolve.c (resolve_assoc_var): If the target expression is a
	deferred charlen dummy and the associate name shares the
	charlen, generate a new one. Make sure that new charlens are in
	the namespace list so that they get cleaned up.
	* trans-array.c (gfc_is_reallocatable_lhs): Associate names are
	not reallocatable.
	* trans-decl.c (gfc_get_symbol_decl): Put deferred character
	length dummy and result arrays on the deferred initialization
	list so that the variable length arrays can be correctly dealt
	with.
	* trans-expr.c (gfc_conv_string_length): Return if 'expr' is
	NULL rather than ICEing..

2018-09-17  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/85954
	* gfortran.dg/deferred_character_21.f90 : New test.

From-SVN: r264358
2018-09-17 07:18:17 +00:00
Aldy Hernandez
3cc2fdfd93 tree-vrp.c (extract_range_from_unary_expr): Do not special case symbolics or VR_VARYING ranges for ABS_EXPR.
* tree-vrp.c (extract_range_from_unary_expr): Do not special case
	symbolics or VR_VARYING ranges for ABS_EXPR.
	* wide-int-range.cc (wide_int_range_abs): Return positive numbers
	when range will wrap.

From-SVN: r264356
2018-09-17 06:07:52 +00:00
GCC Administrator
baeab78db2 Daily bump.
From-SVN: r264355
2018-09-17 00:16:33 +00:00
Janus Weil
74b08343da fix PR 86484 and PR 84543
2018-09-16  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/86484
	PR fortran/84543
	* match.c (gfc_match_assignment): For a polymorphic assignment,
	make sure that the vtab for the rhs type is generated.

2018-09-16  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/86484
	PR fortran/84543
	* gfortran.dg/class_assign_2.f90: New test case.
	* gfortran.dg/class_assign_3.f90: New test case.

From-SVN: r264350
2018-09-16 21:57:52 +02:00
Thomas Koenig
ed33417a64 re PR fortran/37802 (Improve wording for matmul bound checking)
2018-09-16  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/37802
	* frontend-passes.c (B_ERROR): New macro for matmul bounds
	checking error messages.
	(C_ERROR): Likewise.
	(inline_matmul_assign): Reorganize bounds checking, use B_ERROR
	and C_ERROR macros.

2018-09-16  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/37802
	* gfortran.dg/matmul_bounds_13.f90: New test case.
	* gfortran.dg/inline_matmul_15.f90:  Adjust test for runtime
	error.
	* gfortran.dg/matmul_5.f90: Likewise.
	* gfortran.dg/matmul_bounds_10.f90: Likewise.
	* gfortran.dg/matmul_bounds_11.f90: Likewise.
	* gfortran.dg/matmul_bounds_2.f90: Likewise.
	* gfortran.dg/matmul_bounds_4.f90: Likewise.
	* gfortran.dg/matmul_bounds_5.f90: Likewise.

2018-09-16  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/37802
	* m4/matmul_internal.m4: Adjust error messages.
        * generated/matmul_c10.c: Regenerated.
        * generated/matmul_c16.c: Regenerated.
        * generated/matmul_c4.c: Regenerated.
        * generated/matmul_c8.c: Regenerated.
        * generated/matmul_i1.c: Regenerated.
        * generated/matmul_i16.c: Regenerated.
        * generated/matmul_i2.c: Regenerated.
        * generated/matmul_i4.c: Regenerated.
        * generated/matmul_i8.c: Regenerated.
        * generated/matmul_r10.c: Regenerated.
        * generated/matmul_r16.c: Regenerated.
        * generated/matmul_r4.c: Regenerated.
        * generated/matmul_r8.c: Regenerated.
        * generated/matmulavx128_c10.c: Regenerated.
        * generated/matmulavx128_c16.c: Regenerated.
        * generated/matmulavx128_c4.c: Regenerated.
        * generated/matmulavx128_c8.c: Regenerated.
        * generated/matmulavx128_i1.c: Regenerated.
        * generated/matmulavx128_i16.c: Regenerated.
        * generated/matmulavx128_i2.c: Regenerated.
        * generated/matmulavx128_i4.c: Regenerated.
        * generated/matmulavx128_i8.c: Regenerated.
        * generated/matmulavx128_r10.c: Regenerated.
        * generated/matmulavx128_r16.c: Regenerated.
        * generated/matmulavx128_r4.c: Regenerated.
        * generated/matmulavx128_r8.c: Regenerated.

From-SVN: r264349
2018-09-16 19:37:44 +00:00
GCC Administrator
c546dbdc4a Daily bump.
From-SVN: r264346
2018-09-16 00:16:43 +00:00
Eric Botcazou
ae486e6281 re PR middle-end/86864 (ICE in commit_one_edge_insertion on switch construct)
PR middle-end/86864
	* cfgexpand.c (expand_gimple_basic_block): Be prepared for a BARRIER
	before and after a JUMP_TABLE_DATA.

From-SVN: r264342
2018-09-15 09:21:09 +00:00