]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
7 years ago * symtab.c (symtab_node::increase_alignment): Correct max
pkoning [Mon, 22 Oct 2018 23:51:05 +0000 (23:51 +0000)] 
* symtab.c (symtab_node::increase_alignment): Correct max
alignment check.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265404 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-22 Yury Gribov <tetra2005@gmail.com>
ygribov [Mon, 22 Oct 2018 20:26:32 +0000 (20:26 +0000)] 
2018-10-22  Yury Gribov  <tetra2005@gmail.com>

gcc/
PR tree-optimization/87633
* match.pd: Do not generate unordered integer comparisons.

gcc/testsuite/
PR tree-optimization/87633
* g++.dg/pr87633.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265399 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agocombine: Do not combine moves from hard registers
segher [Mon, 22 Oct 2018 20:23:39 +0000 (20:23 +0000)] 
combine: Do not combine moves from hard registers

On most targets every function starts with moves from the parameter
passing (hard) registers into pseudos.  Similarly, after every call
there is a move from the return register into a pseudo.  These moves
usually combine with later instructions (leaving pretty much the same
instruction, just with a hard reg instead of a pseudo).

This isn't a good idea.  Register allocation can get rid of unnecessary
moves just fine, and moving the parameter passing registers into many
later instructions tends to prevent good register allocation.  This
patch disallows combining moves from a hard (non-fixed) register.

This also avoid the problem mentioned in PR87600 #c3 (combining hard
registers into inline assembler is problematic).

Because the register move can often be combined with other instructions
*itself*, for example for setting some condition code, this patch adds
extra copies via new pseudos after every copy-from-hard-reg.

On some targets this reduces average code size.  On others it increases
it a bit, 0.1% or 0.2% or so.  (I tested this on all *-linux targets).

PR rtl-optimization/87600
* combine.c: Add include of expr.h.
(cant_combine_insn_p): Do not combine moves from any hard non-fixed
register to a pseudo.
(make_more_copies): New function, add a copy to a new pseudo after
the moves from hard registers into pseudos.
(rest_of_handle_combine): Declare rebuild_jump_labels_after_combine
later.  Call make_more_copies.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265398 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago PR testsuite/87694
mpolacek [Mon, 22 Oct 2018 20:01:56 +0000 (20:01 +0000)] 
PR testsuite/87694
* g++.dg/concepts/memfun-err.C: Make it a compile test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265397 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoDon't double-count early-clobber matches.
ams [Mon, 22 Oct 2018 14:23:37 +0000 (14:23 +0000)] 
Don't double-count early-clobber matches.

Given a pattern with a number of operands:

(match_operand 0 "" "=&v")
(match_operand 1 "" " v0")
(match_operand 2 "" " v0")
(match_operand 3 "" " v0")

GCC will currently increment "reject" once, for operand 0, and then decrement
it once for each of the other operands, ending with reject == -2 and an
assertion failure.  If there's a conflict then it might try to decrement reject
yet again.

Incidentally, what these patterns are trying to achieve is an allocation in
which operand 0 may match one of the other operands, but may not partially
overlap any of them.  Ideally there'd be a better way to do this.

In any case, it will affect any pattern in which multiple operands may (or
must) match an early-clobber operand.

The patch only allows a reject-- when one has not already occurred, for that
operand.

2018-10-22  Andrew Stubbs  <ams@codesourcery.com>

gcc/
* lra-constraints.c (process_alt_operands): New local array,
matching_early_clobber.  Check matching_early_clobber before
decrementing reject, and set matching_early_clobber after.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265393 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agors6000: Handle print_operand_address for unexpected RTL (PR87598)
segher [Mon, 22 Oct 2018 14:03:22 +0000 (14:03 +0000)] 
rs6000: Handle print_operand_address for unexpected RTL (PR87598)

As the PR shows, the user can force this to be called on at least some
RTL that is not a valid address.  Most targets treat this as if the
user knows best; let's do the same.

PR target/87598
* config/rs6000/rs6000.c (print_operand_address): For unexpected RTL
call output_addr_const and hope for the best.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265392 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-22 Richard Biener <rguenther@suse.de>
rguenth [Mon, 22 Oct 2018 13:57:47 +0000 (13:57 +0000)] 
2018-10-22  Richard Biener  <rguenther@suse.de>

* gimple-ssa-evrp-analyze.c
(evrp_range_analyzer::record_ranges_from_incoming_edge): Be
smarter about what ranges to use.
* tree-vrp.c (add_assert_info): Dump here.
(register_edge_assert_for_2): Instead of here at multiple but
not all places.

* gcc.dg/tree-ssa/evrp12.c: New testcase.
* gcc.dg/predict-6.c: Adjust.
* gcc.dg/tree-ssa/vrp33.c: Disable EVRP.
* gcc.dg/tree-ssa/vrp02.c: Likewise.
* gcc.dg/tree-ssa/cunroll-9.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265391 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-22 Steven Bosscher <steven@gcc.gnu.org>
rguenth [Mon, 22 Oct 2018 13:54:23 +0000 (13:54 +0000)] 
2018-10-22  Steven Bosscher <steven@gcc.gnu.org>
Richard Biener  <rguenther@suse.de>

* bitmap.h: Update data structure documentation, including a
description of bitmap views as either linked-lists or splay trees.
(struct bitmap_element_def): Update comments for splay tree bitmaps.
(struct bitmap_head_def): Likewise.
(bitmap_list_view, bitmap_tree_view): New prototypes.
(bitmap_initialize_stat): Initialize a bitmap_head's indx and
tree_form fields.
(bmp_iter_set_init): Assert the iterated bitmaps are in list form.
(bmp_iter_and_init, bmp_iter_and_compl_init): Likewise.
* bitmap.c (bitmap_elem_to_freelist): Unregister overhead of a
released bitmap element here.
(bitmap_element_free): Remove.
(bitmap_elt_clear_from): Work on splay tree bitmaps.
(bitmap_list_link_element): Renamed from bitmap_element_link.  Move
this function similar ones such that linked-list bitmap implementation
functions are grouped.
(bitmap_list_unlink_element): Renamed from bitmap_element_unlink,
and moved for grouping.
(bitmap_list_insert_element_after): Renamed from
bitmap_elt_insert_after, and moved for grouping.
(bitmap_list_find_element): New function spliced from bitmap_find_bit.
(bitmap_tree_link_left, bitmap_tree_link_right,
bitmap_tree_rotate_left, bitmap_tree_rotate_right, bitmap_tree_splay,
bitmap_tree_link_element, bitmap_tree_unlink_element,
bitmap_tree_find_element): New functions for splay-tree bitmap
implementation.
(bitmap_element_link, bitmap_element_unlink, bitmap_elt_insert_after):
Renamed and moved, see above entries.
(bitmap_tree_listify_from): New function to convert part of a splay
tree bitmap to a linked-list bitmap.
(bitmap_list_view): Convert a splay tree bitmap to linked-list form.
(bitmap_tree_view): Convert a linked-list bitmap to splay tree form.
(bitmap_find_bit): Remove.
(bitmap_clear, bitmap_clear_bit, bitmap_set_bit,
bitmap_single_bit_set_p, bitmap_first_set_bit, bitmap_last_set_bit):
Handle splay tree bitmaps.
(bitmap_copy, bitmap_count_bits, bitmap_and, bitmap_and_into,
bitmap_elt_copy, bitmap_and_compl, bitmap_and_compl_into,
bitmap_compl_and_into, bitmap_elt_ior, bitmap_ior, bitmap_ior_into,
bitmap_xor, bitmap_xor_into, bitmap_equal_p, bitmap_intersect_p,
bitmap_intersect_compl_p, bitmap_ior_and_compl,
bitmap_ior_and_compl_into, bitmap_set_range, bitmap_clear_range,
bitmap_hash): Reject trying to act on splay tree bitmaps.  Make
corresponding changes to use linked-list specific bitmap_element
manipulation functions as applicable for efficiency.
(bitmap_tree_to_vec): New function.
(debug_bitmap_elt_file): New function split out from ...
(debug_bitmap_file): ... here.  Handle splay tree bitmaps.
(bitmap_print): Likewise.

PR tree-optimization/63155
* tree-ssa-propagate.c (ssa_prop_init): Use tree-view for the
SSA edge worklists.
* tree-ssa-coalesce.c (coalesce_ssa_name): Populate used_in_copies
in tree-view.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265390 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoIndex: gcc/config/rs6000/emmintrin.h
wschmidt [Mon, 22 Oct 2018 13:38:32 +0000 (13:38 +0000)] 
Index: gcc/config/rs6000/emmintrin.h
===================================================================
--- gcc/config/rs6000/emmintrin.h (revision 265318)
+++ gcc/config/rs6000/emmintrin.h (working copy)
@@ -85,7 +85,7 @@ typedef double __m128d __attribute__ ((__vector_si
 typedef long long __m128i_u __attribute__ ((__vector_size__ (16), __may_alias__, __aligned__ (1)));
 typedef double __m128d_u __attribute__ ((__vector_size__ (16), __may_alias__, __aligned__ (1)));

-/* Define two value permute mask */
+/* Define two value permute mask.  */
 #define _MM_SHUFFLE2(x,y) (((x) << 1) | (y))

 /* Create a vector with element 0 as F and the rest zero.  */
@@ -201,7 +201,7 @@ _mm_store_pd (double *__P, __m128d __A)
 extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 _mm_storeu_pd (double *__P, __m128d __A)
 {
-  *(__m128d *)__P = __A;
+  *(__m128d_u *)__P = __A;
 }

 /* Stores the lower DPFP value.  */
@@ -2175,7 +2175,7 @@ _mm_maskmoveu_si128 (__m128i __A, __m128i __B, cha
 {
   __v2du hibit = { 0x7f7f7f7f7f7f7f7fUL, 0x7f7f7f7f7f7f7f7fUL};
   __v16qu mask, tmp;
-  __m128i *p = (__m128i*)__C;
+  __m128i_u *p = (__m128i_u*)__C;

   tmp = (__v16qu)_mm_loadu_si128(p);
   mask = (__v16qu)vec_cmpgt ((__v16qu)__B, (__v16qu)hibit);
Index: gcc/config/rs6000/xmmintrin.h
===================================================================
--- gcc/config/rs6000/xmmintrin.h (revision 265318)
+++ gcc/config/rs6000/xmmintrin.h (working copy)
@@ -85,6 +85,10 @@
    vector types, and their scalar components.  */
 typedef float __m128 __attribute__ ((__vector_size__ (16), __may_alias__));

+/* Unaligned version of the same type.  */
+typedef float __m128_u __attribute__ ((__vector_size__ (16), __may_alias__,
+        __aligned__ (1)));
+
 /* Internal data types for implementing the intrinsics.  */
 typedef float __v4sf __attribute__ ((__vector_size__ (16)));

@@ -172,7 +176,7 @@ _mm_store_ps (float *__P, __m128 __A)
 extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 _mm_storeu_ps (float *__P, __m128 __A)
 {
-  *(__m128 *)__P = __A;
+  *(__m128_u *)__P = __A;
 }

 /* Store four SPFP values in reverse order.  The address must be aligned.  */

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265389 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoRevert r263947.
marxin [Mon, 22 Oct 2018 13:09:33 +0000 (13:09 +0000)] 
Revert r263947.

2018-10-22  Martin Liska  <mliska@suse.cz>

  PR tree-optimization/87686
Revert
2018-08-29  Martin Liska  <mliska@suse.cz>

* tree-switch-conversion.c (switch_conversion::expand):
Strenghten assumption about gswitch statements.
2018-10-22  Martin Liska  <mliska@suse.cz>

  PR tree-optimization/87686
* g++.dg/tree-ssa/pr87686.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265388 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoIterate -std=c++-* in i386.exp.
marxin [Mon, 22 Oct 2018 12:25:39 +0000 (12:25 +0000)] 
Iterate -std=c++-* in i386.exp.

2018-10-22  Jakub Jelinek  <jakub@redhat.com>

* g++.target/i386/i386.exp: Use g++-dg-runtest to iterate
properly -std= options.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265387 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoSimplify comparison of attrs in IPA ICF.
marxin [Mon, 22 Oct 2018 12:04:16 +0000 (12:04 +0000)] 
Simplify comparison of attrs in IPA ICF.

2018-10-22  Martin Liska  <mliska@suse.cz>

* ipa-icf.c (sem_item::compare_attributes): Remove.
(sem_item::compare_referenced_symbol_properties): Use
attribute_list_equal instead.
(sem_function::equals_wpa): Likewise.
* ipa-icf.h: Remove compare_attributes.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265386 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-22 Richard Biener <rguenther@suse.de>
rguenth [Mon, 22 Oct 2018 11:33:48 +0000 (11:33 +0000)] 
2018-10-22  Richard Biener  <rguenther@suse.de>

* gcc.dg/graphite/scop-4.c: Avoid out-of-bound access.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265385 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago * gcc-interface/utils.c (unchecked_convert): Use local variables for
ebotcazou [Mon, 22 Oct 2018 11:03:17 +0000 (11:03 +0000)] 
* gcc-interface/utils.c (unchecked_convert): Use local variables for
the biased and reverse SSO attributes of both types.
Further extend the processing of integral types in the presence of
reverse SSO to all scalar types.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265381 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago * gcc-interface/trans.c (Pragma_to_gnu) <Pragma_Inspection_Point>: Use
ebotcazou [Mon, 22 Oct 2018 10:43:20 +0000 (10:43 +0000)] 
* gcc-interface/trans.c (Pragma_to_gnu) <Pragma_Inspection_Point>: Use
a simple memory constraint in all cases.

* gcc-interface/lang-specs.h: Bump copyright year.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265378 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago * gnat.dg/warn19.ad[sb]: New test.
ebotcazou [Mon, 22 Oct 2018 10:29:57 +0000 (10:29 +0000)] 
* gnat.dg/warn19.ad[sb]: New test.
* gnat.dg/warn19_pkg.ads: New helper.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265377 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-22 Richard Biener <rguenther@suse.de>
rguenth [Mon, 22 Oct 2018 10:25:28 +0000 (10:25 +0000)] 
2018-10-22  Richard Biener  <rguenther@suse.de>

PR middle-end/87682
* mem-stats.h (mem_usage::operator==): Fix pasto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265376 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-22 Richard Biener <rguenther@suse.de>
rguenth [Mon, 22 Oct 2018 10:22:48 +0000 (10:22 +0000)] 
2018-10-22  Richard Biener  <rguenther@suse.de>

PR tree-optimization/87640
* tree-vrp.c (set_value_range_with_overflow): Decompose
incomplete result.
(extract_range_from_binary_expr_1): Adjust.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265375 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoS/390: Add the forgotten test for r265371
iii [Mon, 22 Oct 2018 08:39:18 +0000 (08:39 +0000)] 
S/390: Add the forgotten test for r265371

The test is part of the originally posted change
(https://gcc.gnu.org/ml/gcc-patches/2018-10/msg01173.html), but was
forgotten during svn commit.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265373 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoAdd a fun parameter to three stmt_could_throw... functions
jamborm [Mon, 22 Oct 2018 08:27:50 +0000 (08:27 +0000)] 
Add a fun parameter to three stmt_could_throw... functions

This long patch only does one simple thing, adds an explicit function
parameter to predicates stmt_could_throw_p, stmt_can_throw_external
and stmt_can_throw_internal.

My motivation was ability to use stmt_can_throw_external in IPA
analysis phase without the need to push cfun.  As I have discovered,
we were already doing that in cgraph.c, which this patch avoids as
well.  In the process, I had to add a struct function parameter to
stmt_could_throw_p and decided to also change the interface of
stmt_can_throw_internal just for the sake of some minimal consistency.

In the process I have discovered that calling method
cgraph_node::create_version_clone_with_body (used by ipa-split,
ipa-sra, OMP simd and multiple_target) leads to calls of
stmt_can_throw_external with NULL cfun.  I have worked around this by
making stmt_can_throw_external and stmt_could_throw_p gracefully
accept NULL and just be pessimistic in that case.  The problem with
fixing this in a better way is that struct function for the clone is
created after cloning edges where we attempt to push the yet not
existing cfun, and moving it before would require a bit of surgery in
tree-inline.c.  A slightly hackish but simpler fix might be to
explicitely pass the "old" function to symbol_table::create_edge
because it should be just as good at that moment.  In any event, that
is a topic for another patch.

I believe that currently we incorrectly use cfun in
maybe_clean_eh_stmt_fn and maybe_duplicate_eh_stmt_fn, both in
tree-eh.c, and so I have fixed these cases too.  The bulk of other
changes is just mechanical adding of cfun to all users.

Bootstrapped and tested on x86_64-linux (also with extra NULLing and
restoring cfun to double check it is not used in a place I missed), OK
for trunk?

Thanks,

Martin

2018-10-22  Martin Jambor  <mjambor@suse.cz>

* tree-eh.h (stmt_could_throw_p): Add function parameter.
(stmt_can_throw_external): Likewise.
(stmt_can_throw_internal): Likewise.
* tree-eh.c (lower_eh_constructs_2): Pass cfun to stmt_could_throw_p.
(lower_eh_constructs_2): Likewise.
(stmt_could_throw_p): Add fun parameter, use it instead of cfun.
(stmt_can_throw_external): Likewise.
(stmt_can_throw_internal): Likewise.
(maybe_clean_eh_stmt_fn): Pass cfun to stmt_could_throw_p.
(maybe_clean_or_replace_eh_stmt): Pass cfun to stmt_could_throw_p.
(maybe_duplicate_eh_stmt_fn): Pass new_fun to stmt_could_throw_p.
(maybe_duplicate_eh_stmt): Pass cfun to stmt_could_throw_p.
(pass_lower_eh_dispatch::execute): Pass cfun to
stmt_can_throw_external.
(cleanup_empty_eh): Likewise.
(verify_eh_edges): Pass cfun to stmt_could_throw_p.
* cgraph.c (cgraph_edge::set_call_stmt): Pass a function to
stmt_can_throw_external instead of pushing it to cfun.
(symbol_table::create_edge): Likewise.
* gimple-fold.c (fold_builtin_atomic_compare_exchange): Pass cfun to
stmt_can_throw_internal.
* gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Pass cfun
to stmt_could_throw_p.
* gimple-ssa-store-merging.c (handled_load): Pass cfun to
stmt_can_throw_internal.
(pass_store_merging::execute): Likewise.
* gimple-ssa-strength-reduction.c
(find_candidates_dom_walker::before_dom_children): Pass cfun to
stmt_could_throw_p.
* gimplify-me.c (gimple_regimplify_operands): Pass cfun to
stmt_can_throw_internal.
* ipa-pure-const.c (check_call): Pass cfun to stmt_could_throw_p and
to stmt_can_throw_external.
(check_stmt): Pass cfun to stmt_could_throw_p.
(check_stmt): Pass cfun to stmt_can_throw_external.
(pass_nothrow::execute): Likewise.
* trans-mem.c (expand_call_tm): Pass cfun to stmt_can_throw_internal.
* tree-cfg.c (is_ctrl_altering_stmt): Pass cfun to
stmt_can_throw_internal.
(verify_gimple_in_cfg): Pass cfun to stmt_could_throw_p.
(stmt_can_terminate_bb_p): Pass cfun to stmt_can_throw_external.
(gimple_purge_dead_eh_edges): Pass cfun to stmt_can_throw_internal.
* tree-complex.c (expand_complex_libcall): Pass cfun to
stmt_could_throw_p and to stmt_can_throw_internal.
(expand_complex_multiplication): Pass cfun to stmt_can_throw_internal.
* tree-inline.c (copy_edges_for_bb): Likewise.
(maybe_move_debug_stmts_to_successors): Likewise.
* tree-outof-ssa.c (ssa_is_replaceable_p): Pass cfun to
stmt_could_throw_p.
* tree-parloops.c (oacc_entry_exit_ok_1): Likewise.
* tree-sra.c (scan_function): Pass cfun to stmt_can_throw_external.
* tree-ssa-alias.c (stmt_kills_ref_p): Pass cfun to
stmt_can_throw_internal.
* tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise.
* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Pass cfun to
stmt_could_throw_p.
(mark_aliased_reaching_defs_necessary_1): Pass cfun to
stmt_can_throw_internal.
* tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
* tree-ssa-loop-im.c (movement_possibility): Pass cfun to
stmt_could_throw_p.
* tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Likewise.
(add_autoinc_candidates): Pass cfun to stmt_can_throw_internal.
* tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
(convert_mult_to_fma_1): Likewise.
(convert_to_divmod): Likewise.
* tree-ssa-phiprop.c (propagate_with_phi): Likewise.
* tree-ssa-pre.c (compute_avail): Pass cfun to stmt_could_throw_p.
* tree-ssa-propagate.c
(substitute_and_fold_dom_walker::before_dom_children): Likewise.
* tree-ssa-reassoc.c (suitable_cond_bb): Likewise.
(maybe_optimize_range_tests): Likewise.
(linearize_expr_tree): Likewise.
(reassociate_bb): Likewise.
* tree-ssa-sccvn.c (copy_reference_ops_from_call): Likewise.
* tree-ssa-scopedtables.c (hashable_expr_equal_p): Likewise.
* tree-ssa-strlen.c (adjust_last_stmt): Likewise.
(handle_char_store): Likewise.
* tree-vect-data-refs.c (vect_find_stmt_data_reference): Pass cfun to
stmt_can_throw_internal.
* tree-vect-patterns.c (check_bool_pattern): Pass cfun to
stmt_could_throw_p.
* tree-vect-stmts.c (vect_finish_stmt_generation_1): Likewise.
(vectorizable_call): Pass cfun to stmt_can_throw_internal.
(vectorizable_simd_clone_call): Likewise.
* value-prof.c (gimple_ic): Pass cfun to stmt_could_throw_p.
(gimple_stringop_fixed_value): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265372 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoS/390: Make "b" constraint match literal pool references
iii [Mon, 22 Oct 2018 08:21:03 +0000 (08:21 +0000)] 
S/390: Make "b" constraint match literal pool references

Improves the code generation by getting rid of redundant LAs, as seen
in the following example:

- la %r1,0(%r13)
- lg %r4,0(%r1)
+ lg %r4,0(%r13)

Also allows to proceed with the merge of movdi_64 and movdi_larl.
Currently LRA decides to spill literal pool references back to the
literal pool, because it preliminarily chooses alternatives with
CT_MEMORY constraints without calling
satisfies_memory_constraint_p (). Later on it notices that the
constraint is wrong and fixes it by spilling.  The constraint in this
case is "b", and the operand is a literal pool reference.  There is
no reason to reject them.  The current behavior was introduced,
apparently unintentionally, by
https://gcc.gnu.org/ml/gcc-patches/2010-09/msg00812.html

The patch affects a little bit more than mentioned in the subject,
because it changes s390_loadrelative_operand_p (), which is called not
only for checking the "b" constraint.  However, the only caller for
which it should really not accept literal pool references is
s390_check_qrst_address (), so it was changed to explicitly do so.

gcc/ChangeLog:

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

* config/s390/s390.c (s390_loadrelative_operand_p): Accept
literal pool references.
(s390_check_qrst_address): Adapt to the new behavior of
s390_loadrelative_operand_p ().

gcc/testsuite/ChangeLog:

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

* gcc.target/s390/litpool-int.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265371 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoi386: Enable AVX512 memory broadcast for INT andnot
hjl [Mon, 22 Oct 2018 07:35:48 +0000 (07:35 +0000)] 
i386: Enable AVX512 memory broadcast for INT andnot

Many AVX512 vector operations can broadcast from a scalar memory source.
This patch enables memory broadcast for INT andnot operations.

gcc/

PR target/72782
* config/i386/sse.md (*andnot<mode>3_bcst): New.

gcc/testsuite/

PR target/72782
* gcc.target/i386/avx512f-andn-di-zmm-1.c: New test.
* gcc.target/i386/avx512f-andn-si-zmm-1.c: Likewise.
* gcc.target/i386/avx512f-andn-si-zmm-2.c: Likewise.
* gcc.target/i386/avx512f-andn-si-zmm-3.c: Likewise.
* gcc.target/i386/avx512f-andn-si-zmm-4.c: Likewise.
* gcc.target/i386/avx512f-andn-si-zmm-5.c: Likewise.
* gcc.target/i386/avx512vl-andn-si-xmm-1.c: Likewise.
* gcc.target/i386/avx512vl-andn-si-ymm-1.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265370 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoi386: Enable AVX512 memory broadcast for INT logic
hjl [Mon, 22 Oct 2018 07:29:03 +0000 (07:29 +0000)] 
i386: Enable AVX512 memory broadcast for INT logic

Many AVX512 vector operations can broadcast from a scalar memory source.
This patch enables memory broadcast for INT logic operations.

gcc/

PR target/72782
* config/i386/sse.md (*<code><mode>3_bcst): New.

gcc/testsuite/

PR target/72782
* gcc.target/i386/avx512f-and-di-zmm-1.c: New test.
* gcc.target/i386/avx512f-and-si-zmm-1.c: Likewise.
* gcc.target/i386/avx512f-and-si-zmm-2.c: Likewise.
* gcc.target/i386/avx512f-and-si-zmm-3.c: Likewise.
* gcc.target/i386/avx512f-and-si-zmm-4.c: Likewise.
* gcc.target/i386/avx512f-and-si-zmm-5.c: Likewise.
* gcc.target/i386/avx512f-and-si-zmm-6.c: Likewise.
* gcc.target/i386/avx512f-or-di-zmm-1.c: Likewise.
* gcc.target/i386/avx512f-or-si-zmm-1.c: Likewise.
* gcc.target/i386/avx512f-or-si-zmm-2.c: Likewise.
* gcc.target/i386/avx512f-or-si-zmm-3.c: Likewise.
* gcc.target/i386/avx512f-or-si-zmm-4.c: Likewise.
* gcc.target/i386/avx512f-or-si-zmm-5.c: Likewise.
* gcc.target/i386/avx512f-or-si-zmm-6.c: Likewise.
* gcc.target/i386/avx512f-xor-di-zmm-1.c: Likewise.
* gcc.target/i386/avx512f-xor-si-zmm-1.c: Likewise.
* gcc.target/i386/avx512f-xor-si-zmm-2.c: Likewise.
* gcc.target/i386/avx512f-xor-si-zmm-3.c: Likewise.
* gcc.target/i386/avx512f-xor-si-zmm-4.c: Likewise.
* gcc.target/i386/avx512f-xor-si-zmm-5.c: Likewise.
* gcc.target/i386/avx512f-xor-si-zmm-6.c: Likewise.
* gcc.target/i386/avx512vl-and-si-xmm-1.c: Likewise.
* gcc.target/i386/avx512vl-and-si-ymm-1.c: Likewise.
* gcc.target/i386/avx512vl-or-si-xmm-1.c: Likewise.
* gcc.target/i386/avx512vl-or-si-ymm-1.c: Likewise.
* gcc.target/i386/avx512vl-xor-si-xmm-1.c: Likewise.
* gcc.target/i386/avx512vl-xor-si-ymm-1.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265369 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoi386: Enable AVX512 memory broadcast for INT add
hjl [Mon, 22 Oct 2018 07:25:51 +0000 (07:25 +0000)] 
i386: Enable AVX512 memory broadcast for INT add

Many AVX512 vector operations can broadcast from a scalar memory source.
This patch enables memory broadcast for INT add operations.

gcc/

PR target/72782
* config/i386/sse.md (avx512bcst): Updated for V4SI, V2DI, V8SI,
V4DI, V16SI and V8DI.
(*sub<mode>3<mask_name>_bcst): New.
(*add<mode>3<mask_name>_bcst): Likewise.

gcc/testsuite/

PR target/72782
* gcc.target/i386/avx512f-add-di-zmm-1.c: New test.
* gcc.target/i386/avx512f-add-si-zmm-1.c: Likewise.
* gcc.target/i386/avx512f-add-si-zmm-2.c: Likewise.
* gcc.target/i386/avx512f-add-si-zmm-3.c: Likewise.
* gcc.target/i386/avx512f-add-si-zmm-4.c: Likewise.
* gcc.target/i386/avx512f-add-si-zmm-5.c: Likewise.
* gcc.target/i386/avx512f-add-si-zmm-6.c: Likewise.
* gcc.target/i386/avx512f-sub-di-zmm-1.c: Likewise.
* gcc.target/i386/avx512f-sub-si-zmm-1.c: Likewise.
* gcc.target/i386/avx512f-sub-si-zmm-2.c: Likewise.
* gcc.target/i386/avx512f-sub-si-zmm-3.c: Likewise.
* gcc.target/i386/avx512f-sub-si-zmm-4.c: Likewise.
* gcc.target/i386/avx512f-sub-si-zmm-5.c: Likewise.
* gcc.target/i386/avx512vl-add-si-xmm-1.c: Likewise.
* gcc.target/i386/avx512vl-add-si-ymm-1.c: Likewise.
* gcc.target/i386/avx512vl-sub-si-xmm-1.c: Likewise.
* gcc.target/i386/avx512vl-sub-si-ymm-1.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265368 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoDaily bump.
gccadmin [Mon, 22 Oct 2018 00:17:02 +0000 (00:17 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265366 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-21 Bill Schmidt <wschmidt@linux.ibm.com>
wschmidt [Sun, 21 Oct 2018 23:30:51 +0000 (23:30 +0000)] 
2018-10-21  Bill Schmidt  <wschmidt@linux.ibm.com>
    Jinsong Ji  <jji@us.ibm.com>

* config/rs6000/emmintrin.h (_mm_movemask_pd): Replace __vector
__m64 with __vector unsigned long long for compatibility.
(_mm_movemask_epi8): Likewise.
* config/rs6000/xmmintrin.h (_mm_cvtps_pi32): Likewise.
(_mm_cvttps_pi32): Likewise.
(_mm_cvtpi32_ps): Likewise.
(_mm_cvtps_pi16): Likewise.
(_mm_loadh_pi): Likewise.
(_mm_storeh_pi): Likewise.
(_mm_movehl_ps): Likewise.
(_mm_movelh_ps): Likewise.
(_mm_loadl_pi): Likewise.
(_mm_storel_pi): Likewise.
(_mm_movemask_ps): Likewise.
(_mm_shuffle_pi16): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265362 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoMove testsuite ChangeLog entries to testsuite/ChangeLog
hjl [Sun, 21 Oct 2018 20:38:27 +0000 (20:38 +0000)] 
Move testsuite ChangeLog entries to testsuite/ChangeLog

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265360 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoi386: Update AVX512 FMSUB/FNMADD/FNMSUB tests
hjl [Sun, 21 Oct 2018 20:30:06 +0000 (20:30 +0000)] 
i386: Update AVX512 FMSUB/FNMADD/FNMSUB tests

Update AVX512 tests to test the newly added FMSUB, FNMADD and FNMSUB
builtin functions.

PR target/72782
* gcc.target/i386/avx-1.c (__builtin_ia32_vfmsubpd512_mask): New.
(__builtin_ia32_vfmsubpd512_maskz): Likewise.
(__builtin_ia32_vfmsubps512_mask): Likewise.
(__builtin_ia32_vfmsubps512_maskz): Likewise.
(__builtin_ia32_vfnmaddpd512_mask3): Likewise.
(__builtin_ia32_vfnmaddpd512_maskz): Likewise.
(__builtin_ia32_vfnmaddps512_mask3): Likewise.
(__builtin_ia32_vfnmaddps512_maskz): Likewise.
(__builtin_ia32_vfnmsubpd512_maskz): Likewise.
(__builtin_ia32_vfnmsubps512_maskz): Likewise.
* testsuite/gcc.target/i386/sse-13.c
(__builtin_ia32_vfmsubpd512_mask): Likewise.
(__builtin_ia32_vfmsubpd512_maskz): Likewise.
(__builtin_ia32_vfmsubps512_mask): Likewise.
(__builtin_ia32_vfmsubps512_maskz): Likewise.
(__builtin_ia32_vfnmaddpd512_mask3): Likewise.
(__builtin_ia32_vfnmaddpd512_maskz): Likewise.
(__builtin_ia32_vfnmaddps512_mask3): Likewise.
(__builtin_ia32_vfnmaddps512_maskz): Likewise.
(__builtin_ia32_vfnmsubpd512_maskz): Likewise.
(__builtin_ia32_vfnmsubps512_maskz): Likewise.
* testsuite/gcc.target/i386/sse-23.c
(__builtin_ia32_vfmsubpd512_mask): Likewise.
(__builtin_ia32_vfmsubpd512_maskz): Likewise.
(__builtin_ia32_vfmsubps512_mask): Likewise.
(__builtin_ia32_vfmsubps512_maskz): Likewise.
(__builtin_ia32_vfnmaddpd512_mask3): Likewise.
(__builtin_ia32_vfnmaddpd512_maskz): Likewise.
(__builtin_ia32_vfnmaddps512_mask3): Likewise.
(__builtin_ia32_vfnmaddps512_maskz): Likewise.
(__builtin_ia32_vfnmsubpd512_maskz): Likewise.
(__builtin_ia32_vfnmsubps512_maskz): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265359 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoi386: Enable AVX512 memory broadcast for FNMSUB
hjl [Sun, 21 Oct 2018 20:28:56 +0000 (20:28 +0000)] 
i386: Enable AVX512 memory broadcast for FNMSUB

Many AVX512 vector operations can broadcast from a scalar memory source.
This patch enables memory broadcast for FNMSUB operations.  In order to
support AVX512 memory broadcast for FNMSUB, FNMSUB builtin functions are
also added, instead of passing the negated value to FMA builtin functions.

gcc/

PR target/72782
* config/i386/avx512fintrin.h (_mm512_fnmsub_round_pd): Use
__builtin_ia32_vfnmsubpd512_mask.
(_mm512_mask_fnmsub_round_pd): Likewise.
(_mm512_fnmsub_pd): Likewise.
(_mm512_mask_fnmsub_pd): Likewise.
(_mm512_maskz_fnmsub_round_pd): Use
__builtin_ia32_vfnmsubpd512_maskz.
(_mm512_maskz_fnmsub_pd): Likewise.
(_mm512_fnmsub_round_ps): Use __builtin_ia32_vfnmsubps512_mask.
(_mm512_mask_fnmsub_round_ps): Likewise.
(_mm512_fnmsub_ps): Likewise.
(_mm512_mask_fnmsub_ps): Likewise.
(_mm512_maskz_fnmsub_round_ps): Use
__builtin_ia32_vfnmsubps512_maskz.
(_mm512_maskz_fnmsub_ps): Likewise.
* config/i386/avx512vlintrin.h (_mm256_mask_fnmsub_pd): Use
__builtin_ia32_vfnmsubpd256_mask.
(_mm256_maskz_fnmsub_pd): Use __builtin_ia32_vfnmsubpd256_maskz.
(_mm_mask_fnmsub_pd): Use __builtin_ia32_vfmaddpd128_mask
(_mm_maskz_fnmsub_pd): Use __builtin_ia32_vfnmsubpd128_maskz.
(_mm256_mask_fnmsub_ps): Use __builtin_ia32_vfnmsubps256_mask.
(_mm256_mask_fnmsub_ps): Use __builtin_ia32_vfnmsubps256_mask.
(_mm256_maskz_fnmsub_ps): Use __builtin_ia32_vfnmsubps256_maskz.
(_mm_mask_fnmsub_ps): Use __builtin_ia32_vfnmsubps128_mask.
(_mm_maskz_fnmsub_ps): Use __builtin_ia32_vfnmsubps128_maskz.
* config/i386/fmaintrin.h (_mm_fnmsub_pd): Use
__builtin_ia32_vfnmsubpd.
(_mm256_fnmsub_pd): Use __builtin_ia32_vfnmsubpd256.
(_mm_fnmsub_ps): Use __builtin_ia32_vfnmsubps.
(_mm256_fnmsub_ps): Use __builtin_ia32_vfnmsubps256.
(_mm_fnmsub_sd): Use __builtin_ia32_vfnmsubsd3.
(_mm_fnmsub_ss): Use __builtin_ia32_vfnmsubss3.
* config/i386/i386-builtin.def: Add
__builtin_ia32_vfnmsubpd256_mask,
__builtin_ia32_vfnmsubpd256_maskz,
__builtin_ia32_vfnmsubpd128_mask,
__builtin_ia32_vfnmsubpd128_maskz,
__builtin_ia32_vfnmsubps256_mask,
__builtin_ia32_vfnmsubps256_maskz,
__builtin_ia32_vfnmsubps128_mask,
__builtin_ia32_vfnmsubps128_maskz,
__builtin_ia32_vfnmsubpd512_mask,
__builtin_ia32_vfnmsubpd512_maskz,
__builtin_ia32_vfnmsubps512_mask,
__builtin_ia32_vfnmsubps512_maskz, __builtin_ia32_vfnmsubss3,
__builtin_ia32_vfnmsubsd3, __builtin_ia32_vfnmsubps,
__builtin_ia32_vfnmsubpd, __builtin_ia32_vfnmsubps256 and.
__builtin_ia32_vfnmsubpd256.
* config/i386/sse.md (fma4i_fnmsub_<mode>): New.
(<avx512>_fnmsub_<mode>_maskz<round_expand_name>): Likewise.
(*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_1):
Likewise.
(*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_2):
Likewise.
(*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_3):
Likewise.
(fmai_vmfnmsub_<mode><round_name>): Likewise.

gcc/testsuite/

PR target/72782
* gcc.target/i386/avx512f-fnmsub-df-zmm-1.c: New test.
* gcc.target/i386/avx512f-fnmsub-sf-zmm-1.c: Likewise.
* gcc.target/i386/avx512f-fnmsub-sf-zmm-2.c: Likewise.
* gcc.target/i386/avx512f-fnmsub-sf-zmm-3.c: Likewise.
* gcc.target/i386/avx512f-fnmsub-sf-zmm-4.c: Likewise.
* gcc.target/i386/avx512f-fnmsub-sf-zmm-5.c: Likewise.
* gcc.target/i386/avx512f-fnmsub-sf-zmm-6.c: Likewise.
* gcc.target/i386/avx512f-fnmsub-sf-zmm-7.c: Likewise.
* gcc.target/i386/avx512f-fnmsub-sf-zmm-8.c: Likewise.
* gcc.target/i386/avx512vl-fnmsub-sf-xmm-1.c: Likewise.
* gcc.target/i386/avx512vl-fnmsub-sf-ymm-1.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265358 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoi386: Enable AVX512 memory broadcast for FNMADD
hjl [Sun, 21 Oct 2018 20:27:09 +0000 (20:27 +0000)] 
i386: Enable AVX512 memory broadcast for FNMADD

Many AVX512 vector operations can broadcast from a scalar memory source.
This patch enables memory broadcast for FNMADD operations.  In order to
support AVX512 memory broadcast for FNMADD, FNMADD builtin functions are
also added, instead of passing the negated value to FMA builtin functions.

gcc/

PR target/72782
* config/i386/avx512fintrin.h (_mm512_fnmadd_round_pd): Use
__builtin_ia32_vfnmaddpd512_mask.
(_mm512_mask_fnmadd_round_pd): Likewise.
(_mm512_fnmadd_pd): Likewise.
(_mm512_mask_fnmadd_pd): Likewise.
(_mm512_maskz_fnmadd_round_pd): Use
__builtin_ia32_vfnmaddpd512_maskz.
(_mm512_maskz_fnmadd_pd): Likewise.
(_mm512_fnmadd_round_ps): Use __builtin_ia32_vfnmaddps512_mask.
(_mm512_mask_fnmadd_round_ps): Likewise.
(_mm512_fnmadd_ps): Likewise.
(_mm512_mask_fnmadd_ps): Likewise.
(_mm512_maskz_fnmadd_round_ps): Use
__builtin_ia32_vfnmaddps512_maskz.
(_mm512_maskz_fnmadd_ps): Likewise.
* config/i386/avx512vlintrin.h (_mm256_mask_fnmadd_pd): Use
__builtin_ia32_vfnmaddpd256_mask.
(_mm256_maskz_fnmadd_pd): Use __builtin_ia32_vfnmaddpd256_maskz.
(_mm_mask_fnmadd_pd): Use __builtin_ia32_vfmaddpd128_mask
(_mm_maskz_fnmadd_pd): Use __builtin_ia32_vfnmaddpd128_maskz.
(_mm256_mask_fnmadd_ps): Use __builtin_ia32_vfnmaddps256_mask.
(_mm256_mask_fnmadd_ps): Use __builtin_ia32_vfnmaddps256_mask.
(_mm256_maskz_fnmadd_ps): Use __builtin_ia32_vfnmaddps256_maskz.
(_mm_mask_fnmadd_ps): Use __builtin_ia32_vfnmaddps128_mask.
(_mm_maskz_fnmadd_ps): Use __builtin_ia32_vfnmaddps128_maskz.
* config/i386/fmaintrin.h (_mm_fnmadd_pd): Use
__builtin_ia32_vfnmaddpd.
(_mm256_fnmadd_pd): Use __builtin_ia32_vfnmaddpd256.
(_mm_fnmadd_ps): Use __builtin_ia32_vfnmaddps.
(_mm256_fnmadd_ps): Use __builtin_ia32_vfnmaddps256.
(_mm_fnmadd_sd): Use __builtin_ia32_vfnmaddsd3.
(_mm_fnmadd_ss): Use __builtin_ia32_vfnmaddss3.
* config/i386/i386-builtin.def: Add
__builtin_ia32_vfnmaddpd256_mask,
__builtin_ia32_vfnmaddpd256_maskz,
__builtin_ia32_vfnmaddpd128_mask,
__builtin_ia32_vfnmaddpd128_maskz,
__builtin_ia32_vfnmaddps256_mask,
__builtin_ia32_vfnmaddps256_maskz,
__builtin_ia32_vfnmaddps128_mask,
__builtin_ia32_vfnmaddps128_maskz,
__builtin_ia32_vfnmaddpd512_mask,
__builtin_ia32_vfnmaddpd512_maskz,
__builtin_ia32_vfnmaddps512_mask,
__builtin_ia32_vfnmaddps512_maskz, __builtin_ia32_vfnmaddss3,
__builtin_ia32_vfnmaddsd3, __builtin_ia32_vfnmaddps,
__builtin_ia32_vfnmaddpd, __builtin_ia32_vfnmaddps256 and.
__builtin_ia32_vfnmaddpd256.
* config/i386/sse.md (fma4i_fnmadd_<mode>): New.
(<avx512>_fnmadd_<mode>_maskz<round_expand_name>): Likewise.
(*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_1):
Likewise.
(*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_2):
Likewise.
(*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_3):
Likewise.
(fmai_vmfnmadd_<mode><round_name>): Likewise.

gcc/testsuite/

PR target/72782
* gcc.target/i386/avx512f-fnmadd-df-zmm-1.c: New test.
* gcc.target/i386/avx512f-fnmadd-sf-zmm-1.c: Likewise.
* gcc.target/i386/avx512f-fnmadd-sf-zmm-2.c: Likewise.
* gcc.target/i386/avx512f-fnmadd-sf-zmm-3.c: Likewise.
* gcc.target/i386/avx512f-fnmadd-sf-zmm-4.c: Likewise.
* gcc.target/i386/avx512f-fnmadd-sf-zmm-5.c: Likewise.
* gcc.target/i386/avx512f-fnmadd-sf-zmm-6.c: Likewise.
* gcc.target/i386/avx512f-fnmadd-sf-zmm-7.c: Likewise.
* gcc.target/i386/avx512f-fnmadd-sf-zmm-8.c: Likewise.
* gcc.target/i386/avx512vl-fnmadd-sf-xmm-1.c: Likewise.
* gcc.target/i386/avx512vl-fnmadd-sf-ymm-1.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265357 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoEnable AVX512 memory broadcast for FMSUB
hjl [Sun, 21 Oct 2018 20:24:50 +0000 (20:24 +0000)] 
Enable AVX512 memory broadcast for FMSUB

Many AVX512 vector operations can broadcast from a scalar memory source.
This patch enables memory broadcast for FMSUB operations.  In order to
support AVX512 memory broadcast for FMSUB, FMSUB builtin functions are
also added, instead of passing the negated value to FMA builtin functions.

gcc/

PR target/72782
* config/i386/avx512fintrin.h (_mm512_fmsub_round_pd): Use
__builtin_ia32_vfmsubpd512_mask.
(_mm512_mask_fmsub_round_pd): Likewise.
(_mm512_fmsub_pd): Likewise.
(_mm512_mask_fmsub_pd): Likewise.
(_mm512_maskz_fmsub_round_pd): Use
__builtin_ia32_vfmsubpd512_maskz.
(_mm512_maskz_fmsub_pd): Likewise.
(_mm512_fmsub_round_ps): Use __builtin_ia32_vfmsubps512_mask.
(_mm512_mask_fmsub_round_ps): Likewise.
(_mm512_fmsub_ps): Likewise.
(_mm512_mask_fmsub_ps): Likewise.
(_mm512_maskz_fmsub_round_ps): Use
__builtin_ia32_vfmsubps512_maskz.
(_mm512_maskz_fmsub_ps): Likewise.
* config/i386/avx512vlintrin.h (_mm256_mask_fmsub_pd): Use
__builtin_ia32_vfmsubpd256_mask.
(_mm256_maskz_fmsub_pd): Use __builtin_ia32_vfmsubpd256_maskz.
(_mm_mask_fmsub_pd): Use __builtin_ia32_vfmaddpd128_mask
(_mm_maskz_fmsub_pd): Use __builtin_ia32_vfmsubpd128_maskz.
(_mm256_mask_fmsub_ps): Use __builtin_ia32_vfmsubps256_mask.
(_mm256_mask_fmsub_ps): Use __builtin_ia32_vfmsubps256_mask.
(_mm256_maskz_fmsub_ps): Use __builtin_ia32_vfmsubps256_maskz.
(_mm_mask_fmsub_ps): Use __builtin_ia32_vfmsubps128_mask.
(_mm_maskz_fmsub_ps): Use __builtin_ia32_vfmsubps128_maskz.
* config/i386/fmaintrin.h (_mm_fmsub_pd): Use
__builtin_ia32_vfmsubpd.
(_mm256_fmsub_pd): Use __builtin_ia32_vfmsubpd256.
(_mm_fmsub_ps): Use __builtin_ia32_vfmsubps.
(_mm256_fmsub_ps): Use __builtin_ia32_vfmsubps256.
(_mm_fmsub_sd): Use __builtin_ia32_vfmsubsd3.
(_mm_fmsub_ss): Use __builtin_ia32_vfmsubss3.
* config/i386/i386-builtin.def: Add
__builtin_ia32_vfmsubpd256_mask,
__builtin_ia32_vfmsubpd256_maskz,
__builtin_ia32_vfmsubpd128_mask,
__builtin_ia32_vfmsubpd128_maskz,
__builtin_ia32_vfmsubps256_mask,
__builtin_ia32_vfmsubps256_maskz,
__builtin_ia32_vfmsubps128_mask,
__builtin_ia32_vfmsubps128_maskz,
__builtin_ia32_vfmsubpd512_mask,
__builtin_ia32_vfmsubpd512_maskz,
__builtin_ia32_vfmsubps512_mask,
__builtin_ia32_vfmsubps512_maskz, __builtin_ia32_vfmsubss3,
__builtin_ia32_vfmsubsd3, __builtin_ia32_vfmsubps,
__builtin_ia32_vfmsubpd, __builtin_ia32_vfmsubps256 and.
__builtin_ia32_vfmsubpd256.
* config/i386/sse.md (fma4i_fmsub_<mode>): New.
(<avx512>_fmsub_<mode>_maskz<round_expand_name>): Likewise.
(*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_1):
Likewise.
(*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_2):
Likewise.
(*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_3):
Likewise.
(fmai_vmfmsub_<mode><round_name>): Likewise.

gcc/testsuite/

PR target/72782
* gcc.target/i386/avx512f-fmsub-df-zmm-1.c: New test.
* gcc.target/i386/avx512f-fmsub-sf-zmm-1.c: Likewise.
* gcc.target/i386/avx512f-fmsub-sf-zmm-2.c: Likewise.
* gcc.target/i386/avx512f-fmsub-sf-zmm-3.c: Likewise.
* gcc.target/i386/avx512f-fmsub-sf-zmm-4.c: Likewise.
* gcc.target/i386/avx512f-fmsub-sf-zmm-5.c: Likewise.
* gcc.target/i386/avx512f-fmsub-sf-zmm-6.c: Likewise.
* gcc.target/i386/avx512f-fmsub-sf-zmm-7.c: Likewise.
* gcc.target/i386/avx512f-fmsub-sf-zmm-8.c: Likewise.
* gcc.target/i386/avx512vl-fmsub-sf-xmm-1.c: Likewise.
* gcc.target/i386/avx512vl-fmsub-sf-ymm-1.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265356 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-21 Paul Thomas <pault@gcc.gnu.org>
pault [Sun, 21 Oct 2018 17:32:06 +0000 (17:32 +0000)] 
2018-10-21  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/71880
* trans-expr.c (gfc_trans_pointer_assignment): Set the string
length for array valued deferred length lhs.

2018-10-21  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/71880
* gfortran.dg/deferred_character_31.f90 : New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265353 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoi386: Update FP add/sub with AVX512 memory broadcast
hjl [Sun, 21 Oct 2018 10:46:48 +0000 (10:46 +0000)] 
i386: Update FP add/sub with AVX512 memory broadcast

* config/i386/sse.md (*<plusminus_insn><mode>3<mask_name>_bcst_1):
Remove plus.  Renamed to ...
(*sub<mode>3<mask_name>_bcst): This.
(*add<mode>3<mask_name>_bcst_2): Renamede to ...
(*add<mode>3<mask_name>_bcst): This.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265352 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoi386: Enable AVX512 memory broadcast for FP mul
hjl [Sun, 21 Oct 2018 10:35:36 +0000 (10:35 +0000)] 
i386: Enable AVX512 memory broadcast for FP mul

Many AVX512 vector operations can broadcast from a scalar memory source.
This patch enables memory broadcast for FP mul operations.

gcc/

PR target/72782
* config/i386/sse.md (*mul<mode>3<mask_name>_bcst): New.

gcc/testsuite/

PR target/72782
* gcc.target/i386/avx512f-mul-df-zmm-1.c: New test.
* gcc.target/i386/avx512f-mul-sf-zmm-1.c: Likewise.
* gcc.target/i386/avx512f-mul-sf-zmm-2.c: Likewise.
* gcc.target/i386/avx512f-mul-sf-zmm-3.c: Likewise.
* gcc.target/i386/avx512f-mul-sf-zmm-4.c: Likewise.
* gcc.target/i386/avx512f-mul-sf-zmm-5.c: Likewise.
* gcc.target/i386/avx512f-mul-sf-zmm-6.c: Likewise.
* gcc.target/i386/avx512vl-mul-sf-xmm-1.c: Likewise.
* gcc.target/i386/avx512vl-mul-sf-ymm-1.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265351 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoi386: Add missing AVX512VL or/xor intrinsics
hjl [Sun, 21 Oct 2018 10:23:58 +0000 (10:23 +0000)] 
i386: Add missing AVX512VL or/xor intrinsics

gcc/

PR target/87662
* i386/avx512vlintrin.h (_mm256_or_epi32): New.
(_mm_or_epi32): Likewise.
(_mm256_xor_epi32): Likewise.
(_mm_xor_epi32): Likewise.
(_mm256_or_epi64): Likewise.
(_mm_or_epi64): Likewise.
(_mm256_xor_epi64): Likewise.
(_mm_xor_epi64): Likewise.

gcc/testsuite/

PR target/87662
* gcc.target/i386/pr87662.c

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265350 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoDaily bump.
gccadmin [Sun, 21 Oct 2018 00:16:34 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265349 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoi386: Enable AVX512 memory broadcast for FP div
hjl [Sat, 20 Oct 2018 20:41:10 +0000 (20:41 +0000)] 
i386: Enable AVX512 memory broadcast for FP div

Many AVX512 vector operations can broadcast from a scalar memory source.
This patch enables memory broadcast for FP div operations.

gcc/

PR target/72782
* config/i386/sse.md (*<avx512>_div<mode>3<mask_name>_bcst): New.

gcc/testsuite/

PR target/72782
* gcc.target/i386/avx512f-div-df-zmm-1.c: New test.
* gcc.target/i386/avx512f-div-sf-zmm-1.c: Likewise.
* gcc.target/i386/avx512f-div-sf-zmm-2.c: Likewise.
* gcc.target/i386/avx512f-div-sf-zmm-3.c: Likewise.
* gcc.target/i386/avx512f-div-sf-zmm-4.c: Likewise.
* gcc.target/i386/avx512f-div-sf-zmm-5.c: Likewise.
* gcc.target/i386/avx512vl-div-sf-xmm-1.c: Likewise.
* gcc.target/i386/avx512vl-div-sf-ymm-1.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265345 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-20 François Dumont <fdumont@gcc.gnu.org>
fdumont [Sat, 20 Oct 2018 20:00:45 +0000 (20:00 +0000)] 
2018-10-20  François Dumont  <fdumont@gcc.gnu.org>

* testsuite/util/testsuite_containers.h
(forward_members_unordered<>::forward_members_unordered
(const value_type&)): Add local_iterator pre and post increment checks.
* config/abi/pre/gnu.ver: Add GLIBCXX_3.4.26 new symbol.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265344 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago * g++.dg/*.C: Use target c++17 instead of explicit dg-options.
mpolacek [Sat, 20 Oct 2018 17:21:19 +0000 (17:21 +0000)] 
* g++.dg/*.C: Use target c++17 instead of explicit dg-options.
* lib/g++-dg.exp: Don't test C++11 by default.  Add C++17 to
the list of default stds to test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265343 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago PR middle-end/87647
jakub [Sat, 20 Oct 2018 08:58:00 +0000 (08:58 +0000)] 
PR middle-end/87647
* varasm.c (decode_addr_const): Handle COMPOUND_LITERAL_EXPR.

* gcc.c-torture/compile/pr87647.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265341 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago* doc/ux.texi: Move @section directly after @node.
schwab [Sat, 20 Oct 2018 07:29:15 +0000 (07:29 +0000)] 
* doc/ux.texi: Move @section directly after @node.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265340 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoDaily bump.
gccadmin [Sat, 20 Oct 2018 00:17:03 +0000 (00:17 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265339 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago PR middle-end/85488
jakub [Fri, 19 Oct 2018 22:52:06 +0000 (22:52 +0000)] 
PR middle-end/85488
PR middle-end/87649
* omp-low.c (check_omp_nesting_restrictions): Diagnose ordered without
depend closely nested inside of loop with ordered clause with
a parameter.

* c-c++-common/gomp/doacross-2.c: New test.
* c-c++-common/gomp/sink-3.c: Expect another error during error
recovery.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265335 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoSkip tests for GNU extensions when testing with strict mode
redi [Fri, 19 Oct 2018 21:50:15 +0000 (21:50 +0000)] 
Skip tests for GNU extensions when testing with strict mode

Tests for the implicit allocator rebinding extension will fail if the
extension is disabled, so skip them.

* testsuite/23_containers/array/requirements/explicit_instantiation/
3.cc: Skip test when compiled with a -std=c++NN strict mode.
* testsuite/23_containers/deque/requirements/explicit_instantiation/
3.cc: Likewise.
* testsuite/23_containers/forward_list/requirements/
explicit_instantiation/3.cc: Likewise.
* testsuite/23_containers/list/requirements/explicit_instantiation/
3.cc: Likewise.
* testsuite/23_containers/map/requirements/explicit_instantiation/
3.cc: Likewise.
* testsuite/23_containers/multimap/requirements/explicit_instantiation/
3.cc: Likewise.
* testsuite/23_containers/multiset/requirements/explicit_instantiation/
3.cc: Likewise.
* testsuite/23_containers/set/requirements/explicit_instantiation/
3.cc: Likewise.
* testsuite/23_containers/unordered_map/requirements/
explicit_instantiation/3.cc: Likewise.
* testsuite/23_containers/unordered_multimap/requirements/
explicit_instantiation/3.cc: Likewise.
* testsuite/23_containers/unordered_multiset/requirements/
explicit_instantiation/3.cc: Likewise.
* testsuite/23_containers/unordered_set/requirements/
explicit_instantiation/3.cc: Likewise.
* testsuite/23_containers/vector/ext_pointer/explicit_instantiation/
3.cc: Likewise.
* testsuite/23_containers/vector/requirements/explicit_instantiation/
3.cc: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265334 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoFix testsuite failures due to extra errors in strict dialects
redi [Fri, 19 Oct 2018 21:50:03 +0000 (21:50 +0000)] 
Fix testsuite failures due to extra errors in strict dialects

When __STRICT_ANSI__ is defined the incorrect allocators used in these
tests also trigger and additional static assertion. Prune those extra
errors so that the tests don't fail when built with strict dialects.

* testsuite/23_containers/deque/48101_neg.cc: Prune additional errors
printed when __STRICT_ANSI__ is defined.
* testsuite/23_containers/forward_list/48101_neg.cc: Likewise.
* testsuite/23_containers/list/48101_neg.cc: Likewise.
* testsuite/23_containers/multiset/48101_neg.cc: Likewise.
* testsuite/23_containers/set/48101_neg.cc: Likewise.
* testsuite/23_containers/unordered_multiset/48101_neg.cc: Likewise.
* testsuite/23_containers/unordered_set/48101_neg.cc: Likewise.
* testsuite/23_containers/vector/48101_neg.cc: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265333 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoConditionally disable tests of non-standard extensions
redi [Fri, 19 Oct 2018 21:49:49 +0000 (21:49 +0000)] 
Conditionally disable tests of non-standard extensions

These tests include uses of the extension to allow allocators with the
wrong value_type in containers. Skip those parts of the tests when
__STRICT_ANIS__ is defined.

* testsuite/23_containers/forward_list/requirements/
explicit_instantiation/5.cc [__STRICT_ANSI__]: Don't test non-standard
extension.
* testsuite/23_containers/list/requirements/explicit_instantiation/
5.cc [__STRICT_ANSI__]: Likewise.
* testsuite/23_containers/map/requirements/explicit_instantiation/5.cc
[__STRICT_ANSI__]: Likewise.
* testsuite/23_containers/multimap/requirements/explicit_instantiation/
5.cc [__STRICT_ANSI__]: Likewise.
* testsuite/23_containers/multiset/requirements/explicit_instantiation/
5.cc [__STRICT_ANSI__]: Likewise.
* testsuite/23_containers/set/requirements/explicit_instantiation/5.cc
[__STRICT_ANSI__]: Likewise.
* testsuite/23_containers/unordered_map/requirements/debug_container.cc
[__STRICT_ANSI__]: Likewise.
* testsuite/23_containers/unordered_map/requirements/
explicit_instantiation/5.cc [__STRICT_ANSI__]: Likewise.
* testsuite/23_containers/unordered_multimap/requirements/
explicit_instantiation/5.cc [__STRICT_ANSI__]: Likewise.
* testsuite/23_containers/unordered_multiset/requirements/
explicit_instantiation/5.cc [__STRICT_ANSI__]: Likewise.
* testsuite/23_containers/unordered_set/requirements/
explicit_instantiation/5.cc [__STRICT_ANSI__]: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265332 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoFix tests that use allocators with incorrect value types
redi [Fri, 19 Oct 2018 21:49:40 +0000 (21:49 +0000)] 
Fix tests that use allocators with incorrect value types

As a GNU extension we allow containers to be instantiated with
allocators that use a different value type from the container, and
automatically rebind the allocator to the correct type. This extension
is disabled in strict modes (when __STRICT_ANSI__ is defined, i.e.
-std=c++NN dialects). These testcases unintentionally rely on the
extension and so fail for strict modes.

Tests which intentionally make use of the extension will still fail in
strict dialects, but will be addressed in a later change.

* testsuite/20_util/scoped_allocator/1.cc: Use allocator with correct
value type for the container.
* testsuite/23_containers/forward_list/cons/14.cc: Likewise.
* testsuite/23_containers/map/56613.cc: Likewise.
* testsuite/23_containers/unordered_map/55043.cc: Likewise.
* testsuite/23_containers/unordered_map/allocator/copy.cc: Likewise.
* testsuite/23_containers/unordered_map/allocator/copy_assign.cc:
Likewise.
* testsuite/23_containers/unordered_map/allocator/minimal.cc:
Likewise.
* testsuite/23_containers/unordered_map/allocator/move.cc: Likewise.
* testsuite/23_containers/unordered_map/allocator/move_assign.cc:
Likewise.
* testsuite/23_containers/unordered_map/allocator/noexcept.cc:
Likewise.
* testsuite/23_containers/unordered_map/cons/81891.cc: Likewise.
* testsuite/23_containers/unordered_map/requirements/exception/
basic.cc: Likewise.
* testsuite/23_containers/unordered_map/requirements/exception/
generation_prohibited.cc: Likewise.
* testsuite/23_containers/unordered_map/requirements/exception/
propagation_consistent.cc: Likewise.
* testsuite/23_containers/unordered_multimap/55043.cc: Likewise.
* testsuite/23_containers/unordered_multimap/allocator/copy.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/allocator/copy_assign.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/allocator/minimal.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/allocator/move.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/allocator/move_assign.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/allocator/noexcept.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/requirements/exception/
basic.cc: Likewise.
* testsuite/23_containers/unordered_multimap/requirements/exception/
generation_prohibited.cc: Likewise.
* testsuite/23_containers/unordered_multimap/requirements/exception/
propagation_consistent.cc: Likewise.
* testsuite/23_containers/unordered_multimap/requirements/
explicit_instantiation/5.cc: Likewise.
* testsuite/ext/malloc_allocator/sanity.cc: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265331 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoDisable tests that only pass for GNU dialects
redi [Fri, 19 Oct 2018 21:49:32 +0000 (21:49 +0000)] 
Disable tests that only pass for GNU dialects

The airy and hypergeometric functions are non-standard extensions and
are only defined for -std=gnu++NN dialects, not -std=c++NN ones.

* ext/special_functions/airy_ai/check_nan.cc: Skip test for
non-standard extension when a strict -std=c++NN dialect is used.
* ext/special_functions/airy_ai/check_value.cc: Likewise.
* ext/special_functions/airy_ai/compile.cc: Likewise.
* ext/special_functions/airy_bi/check_nan.cc: Likewise.
* ext/special_functions/airy_bi/check_value.cc: Likewise.
* ext/special_functions/airy_bi/compile.cc: Likewise.
* ext/special_functions/conf_hyperg/check_nan.cc: Likewise.
* ext/special_functions/conf_hyperg/check_value.cc: Likewise.
* ext/special_functions/conf_hyperg/compile.cc: Likewise.
* ext/special_functions/hyperg/check_nan.cc: Likewise.
* ext/special_functions/hyperg/check_value.cc: Likewise.
* ext/special_functions/hyperg/compile.cc: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265330 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoRemove duplicate tests
redi [Fri, 19 Oct 2018 21:49:19 +0000 (21:49 +0000)] 
Remove duplicate tests

These tests originally existed to check the containers in C++11 mode,
when the default was C++98 mode. Now that the default is C++14 (and we
run most tests for all modes) it serves no purpose to have two copies of
the tests when neither is explicitly using -std=gnu++98 anyway.

* testsuite/23_containers/list/requirements/explicit_instantiation/
5_c++0x.cc: Remove redundant test that is functionally identical to
the 5.cc test.
* testsuite/23_containers/map/requirements/explicit_instantiation/
5_c++0x.cc: Likewise.
* testsuite/23_containers/multimap/requirements/explicit_instantiation/
5_c++0x.cc: Likewise.
* testsuite/23_containers/multiset/requirements/explicit_instantiation/
5_c++0x.cc: Likewise.
* testsuite/23_containers/set/requirements/explicit_instantiation/
5_c++0x.cc: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265329 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agogccint.texi: add user experience guidelines
dmalcolm [Fri, 19 Oct 2018 19:50:02 +0000 (19:50 +0000)] 
gccint.texi: add user experience guidelines

gcc/ChangeLog:
* Makefile.in (TEXI_GCCINT_FILES): Add ux.texi.
* doc/gccint.texi: Include ux.texi and use it in top-level menu.
* doc/ux.texi: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265322 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago compiler: don't export any functions with special names
ian [Fri, 19 Oct 2018 19:43:47 +0000 (19:43 +0000)] 
compiler: don't export any functions with special names

    This keeps init functions from appearing in the export data.  Checking
    for special names in general means that we don't need to check
    specifically for nested functions or thunks, which have special names.

    Reviewed-on: https://go-review.googlesource.com/c/143237

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265321 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago[gcc]
wschmidt [Fri, 19 Oct 2018 18:28:11 +0000 (18:28 +0000)] 
[gcc]

2018-10-19  Bill Schmidt  <wschmidt@linux.ibm.com>

PR tree-optimization/87473
* gimple-ssa-strength-reduction.c (record_phi_increments_1): For
phi arguments identical to the base expression of the phi
candidate, record a phi-adjust increment of zero minus the index
expression of the hidden basis.
(phi_incr_cost_1): For phi arguments identical to the base
expression of the phi candidate, the difference to compare against
the increment is zero minus the index expression of the hidden
basis, and there is no potential savings from replacing the (phi)
statement.
(ncd_with_phi): For phi arguments identical to the base expression
of the phi candidate, the difference to compare against the
increment is zero minus the index expression of the hidden basis.
(all_phi_incrs_profitable_1): For phi arguments identical to the
base expression of the phi candidate, the increment to be checked
for profitability is zero minus the index expression of the hidden
basis.

[gcc/testsuite]

2018-10-19  Bill Schmidt  <wschmidt@linux.ibm.com>

PR tree-optimization/87473
* gcc.c-torture/compile/pr87473.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265319 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agors6000: Put CR0 first in REG_ALLOC_ORDER
segher [Fri, 19 Oct 2018 15:40:57 +0000 (15:40 +0000)] 
rs6000: Put CR0 first in REG_ALLOC_ORDER

IRA and LRA prefer to use CR7 (which is first in REG_ALLOC_ORDER) over
CR0, although the latter often is cheaper ("x" vs. "y" constraints).
We should figure out why this is and fix it; but until that is done,
this patch makes CR0 the first allocated register: it improves the
current code, and it is required for later patches to be effective.

(It changes two testcases to no longer look at what CR field is
allocated).

* config/rs6000/rs6000.h (REG_ALLOC_ORDER): Move 68 (that is, CR0) to
be the first CR field allocated.

gcc/testsuite/
* gcc.target/powerpc/safe-indirect-jump-2.c: Do not check assigned CR
field number.
* gcc.target/powerpc/safe-indirect-jump-3.c: Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265318 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-19 Richard Biener <rguenther@suse.de>
rguenth [Fri, 19 Oct 2018 14:28:43 +0000 (14:28 +0000)] 
2018-10-19  Richard Biener  <rguenther@suse.de>

PR middle-end/87645
* gcc.dg/torture/pr87645.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265317 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-19 Richard Biener <rguenther@suse.de>
rguenth [Fri, 19 Oct 2018 14:27:57 +0000 (14:27 +0000)] 
2018-10-19  Richard Biener  <rguenther@suse.de>

PR target/87657
* config/i386/i386.c (ix86_builtin_vectorization_cost): Use
TYPE_VECTOR_SUBPARTS and avoid relying on vector mode.

* gcc.target/i386/pr87657.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265316 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoFix compilation error with _GLIBCXX_PARALLEL
redi [Fri, 19 Oct 2018 13:46:24 +0000 (13:46 +0000)] 
Fix compilation error with _GLIBCXX_PARALLEL

* include/bits/regex_executor.tcc (_Backref_matcher::_M_apply): Use
_GLIBCXX_STD_A to refer to normal mode algorithms.
* testsuite/28_regex/headers/regex/parallel_mode.cc: New test.
* testsuite/28_regex/headers/regex/std_c++0x_neg.cc: Remove empty
whitespace.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265314 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoFix testsuite failures in Debug Mode
redi [Fri, 19 Oct 2018 13:37:05 +0000 (13:37 +0000)] 
Fix testsuite failures in Debug Mode

This fixes the following testsuite failures on ia32 when compiled with
-D_GLIBCXX_DEBUG:

FAIL: 23_containers/map/modifiers/erase/dr130-linkage-check.cc
FAIL: 23_containers/multimap/modifiers/erase/dr130-linkage-check.cc
FAIL: 23_containers/multiset/modifiers/erase/dr130-linkage-check.cc
FAIL: 23_containers/set/modifiers/erase/dr130-linkage-check.cc

The normal mode containers already use the abi-tag to mangle these
overloads differently, but the debug mode versions weren't fixed.

* include/debug/map.h (map::erase(iterator)): Add abi-tag so that
C++11 version mangles differently from incompatible C++98 version.
* include/debug/multimap.h (multimap::erase(iterator)): Likewise.
* include/debug/multiset.h (multiset::erase(iterator))
(multiset::erase(const_iterator, const_iterator)): Likewise.
* include/debug/set.h (set::erase(iterator))
(multiset::erase(const_iterator, const_iterator)): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265313 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoFix oversight in previous commit
ebotcazou [Fri, 19 Oct 2018 10:06:40 +0000 (10:06 +0000)] 
Fix oversight in previous commit

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265312 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoi386: Enable AVX512 memory broadcast for FP add
hjl [Fri, 19 Oct 2018 09:13:34 +0000 (09:13 +0000)] 
i386: Enable AVX512 memory broadcast for FP add

Many AVX512 vector operations can broadcast from a scalar memory source.
This patch enables memory broadcast for FP add operations.

gcc/

PR target/72782
* config/i386/sse.md
(*<plusminus_insn><mode>3<mask_name>_bcst_1): New.
(*add<mode>3<mask_name>_bcst_2): Likewise.

gcc/testsuite/

PR target/72782
* gcc.target/i386/avx512-binop-1.h: New file.
* gcc.target/i386/avx512-binop-2.h: Likewise.
* gcc.target/i386/avx512-binop-3.h: Likewise.
* gcc.target/i386/avx512-binop-4.h: Likewise.
* gcc.target/i386/avx512-binop-5.h: Likewise.
* gcc.target/i386/avx512-binop-6.h: Likewise.
* gcc.target/i386/avx512f-add-df-zmm-1.c: Likewise.
* gcc.target/i386/avx512f-add-sf-zmm-1.c: Likewise.
* gcc.target/i386/avx512f-add-sf-zmm-2.c: Likewise.
* gcc.target/i386/avx512f-add-sf-zmm-3.c: Likewise.
* gcc.target/i386/avx512f-add-sf-zmm-4.c: Likewise.
* gcc.target/i386/avx512f-add-sf-zmm-5.c: Likewise.
* gcc.target/i386/avx512f-add-sf-zmm-6.c: Likewise.
* gcc.target/i386/avx512f-sub-df-zmm-1.c: Likewise.
* gcc.target/i386/avx512f-sub-sf-zmm-1.c: Likewise.
* gcc.target/i386/avx512f-sub-sf-zmm-2.c: Likewise.
* gcc.target/i386/avx512f-sub-sf-zmm-3.c: Likewise.
* gcc.target/i386/avx512f-sub-sf-zmm-4.c: Likewise.
* gcc.target/i386/avx512f-sub-sf-zmm-5.c: Likewise.
* gcc.target/i386/avx512vl-add-sf-xmm-1.c: Likewise.
* gcc.target/i386/avx512vl-add-sf-ymm-1.c: Likewise.
* gcc.target/i386/avx512vl-sub-sf-xmm-1.c: Likewise.
* gcc.target/i386/avx512vl-sub-sf-ymm-1.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265311 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoi386: Use register_operand in AVX512 FMA with memory broadcast
hjl [Fri, 19 Oct 2018 08:56:37 +0000 (08:56 +0000)] 
i386: Use register_operand in AVX512 FMA with memory broadcast

Use "register_operand" in AVX512 FMA with memory broadcast when only
registers are allowed.

* config/i386/sse.md
(*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_1):
Replace nonimmediate_operand with register_operand.
(*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_2):
Likewise.
(*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_3):
Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265310 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agolra: fix spill_hard_reg_in_range clobber check
iii [Fri, 19 Oct 2018 08:33:52 +0000 (08:33 +0000)] 
lra: fix spill_hard_reg_in_range clobber check

FROM..TO range might contain NOTE_INSN_DELETED insns, for which the
corresponding entries in lra_insn_recog_data[] are NULLs.  Example from
the problematic code from PR87596:

    (note 148 154 68 7 NOTE_INSN_DELETED)

lra_insn_recog_data[] is used directly only when the insn in question
is taken from insn_bitmap, which is not the case here.  In other
situations lra_get_insn_recog_data () guarded by INSN_P () or other
stricter predicate are used.  So we need to do this here as well.

A tiny detail worth noting: I put the INSN_P () check before the
insn_bitmap check, because I believe that insn_bitmap can contain only
real insns anyway.

gcc/ChangeLog:

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

PR rtl-optimization/87596
* lra-constraints.c (spill_hard_reg_in_range): Use INSN_P () +
lra_get_insn_recog_data () instead of lra_insn_recog_data[]
for instructions in FROM..TO range.

gcc/testsuite/ChangeLog:

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

PR rtl-optimization/87596
* gcc.target/i386/pr87596.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265306 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago * cfgexpand.c (expand_one_var): Use specific wording in error message
ebotcazou [Fri, 19 Oct 2018 07:17:20 +0000 (07:17 +0000)] 
* cfgexpand.c (expand_one_var): Use specific wording in error message
for non-local frame variables.
* stor-layout.c (layout_decl): Do not issue a warning for them.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265305 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoReset insn priority after inc/ref replacement
rdapp [Fri, 19 Oct 2018 06:25:30 +0000 (06:25 +0000)] 
Reset insn priority after inc/ref replacement

This patch recomputes the insn priority when a replacement for one of its
dependent insns is applied.

gcc/ChangeLog:

* haifa-sched.c (priority): Add force_recompute parameter.
(apply_replacement): Call priority () with force_recompute = true.
(restore_pattern): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265304 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoDaily bump.
gccadmin [Fri, 19 Oct 2018 00:17:06 +0000 (00:17 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265303 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago compiler: add COMPARE_ALIASES flag for type compare and hash
ian [Thu, 18 Oct 2018 23:26:20 +0000 (23:26 +0000)] 
compiler: add COMPARE_ALIASES flag for type compare and hash

    Normally aliases compare as identical to the underlying type.  Add a
    COMPARE_ALIASES flag to let them compare (and hash) differently.  This
    will be used by later patches in this series.

    Reviewed-on: https://go-review.googlesource.com/c/143021

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265297 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago compiler: list indirect imports separately in export data
ian [Thu, 18 Oct 2018 23:22:01 +0000 (23:22 +0000)] 
compiler: list indirect imports separately in export data

    Previously when export data referred to a type that was not defined in
    a directly imported package, we would write the package name as
    additional information in the type's export data.  That approach
    required all type information to be read in order.  This patch changes
    the compiler to find all references to indirectly imported packages,
    and write them out as an indirectimport line in the import data.  This
    will permit us to read exported type data out of order.

    The type traversal used to find indirect imports is a little more
    complicated than necessary in preparation for later patches in this
    series.

    Reviewed-on: https://go-review.googlesource.com/c/143020

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265296 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoRemove ChangeLog entry for changes in gofrontend that were reverted.
ian [Thu, 18 Oct 2018 23:05:32 +0000 (23:05 +0000)] 
Remove ChangeLog entry for changes in gofrontend that were reverted.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265295 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoRevert SVN revision 264561, incorrectly committed directly to the GCC
ian [Thu, 18 Oct 2018 23:02:27 +0000 (23:02 +0000)] 
Revert SVN revision 264561, incorrectly committed directly to the GCC
repo rather than to the master repo.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265294 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago compiler: rewrite Type::are_identical to use flags
ian [Thu, 18 Oct 2018 22:55:34 +0000 (22:55 +0000)] 
compiler: rewrite Type::are_identical to use flags

    A single flags parameter replaces the Cmp_tags and errors_are_identical
    parameters. The existing behavior is unchanged.

    This is a simplification step for future work that will add a new flag.

    Reviewed-on: https://go-review.googlesource.com/c/143019

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265293 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoLimit mask of vec_merge to HOST_BITS_PER_WIDE_INT
hjl [Thu, 18 Oct 2018 21:29:55 +0000 (21:29 +0000)] 
Limit mask of vec_merge to HOST_BITS_PER_WIDE_INT

Since mask of vec_merge is in HOST_WIDE_INT, HOST_BITS_PER_WIDE_INT is
the maximum number of vector elements.

* simplify-rtx.c (simplify_subreg): Limit mask of vec_merge to
HOST_BITS_PER_WIDE_INT.
(test_vector_ops_duplicate): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265290 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoi386: Enable AVX512 memory broadcast for FMA
hjl [Thu, 18 Oct 2018 20:38:41 +0000 (20:38 +0000)] 
i386: Enable AVX512 memory broadcast for FMA

Many AVX512 vector operations can broadcast from a scalar memory source.
This patch enables memory broadcast for FMA operations.

gcc/

PR target/72782
* config/i386/sse.md (VF_AVX512): New.
(avx512bcst): Likewise.
(*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_1):
Likewise.
(*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_2):
Likewise.
(*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_3):
Likewise.

gcc/testsuite/

PR target/72782
* gcc.target/i386/avx512-fma-1.h: New file.
* gcc.target/i386/avx512-fma-2.h: Likewise.
* gcc.target/i386/avx512-fma-3.h: Likewise.
* gcc.target/i386/avx512-fma-4.h: Likewise.
* gcc.target/i386/avx512-fma-5.h: Likewise.
* gcc.target/i386/avx512-fma-6.h: Likewise.
* gcc.target/i386/avx512-fma-7.h: Likewise.
* gcc.target/i386/avx512-fma-8.h: Likewise.
* gcc.target/i386/avx512f-fmadd-df-zmm-1.c: Likewise.
* gcc.target/i386/avx512f-fmadd-sf-zmm-1.c: Likewise.
* gcc.target/i386/avx512f-fmadd-sf-zmm-2.c: Likewise.
* gcc.target/i386/avx512f-fmadd-sf-zmm-3.c: Likewise.
* gcc.target/i386/avx512f-fmadd-sf-zmm-4.c: Likewise.
* gcc.target/i386/avx512f-fmadd-sf-zmm-5.c: Likewise.
* gcc.target/i386/avx512f-fmadd-sf-zmm-6.c: Likewise.
* gcc.target/i386/avx512f-fmadd-sf-zmm-7.c: Likewise.
* gcc.target/i386/avx512f-fmadd-sf-zmm-8.c: Likewise.
* gcc.target/i386/avx512vl-fmadd-sf-xmm-1.c: Likewise.
* gcc.target/i386/avx512vl-fmadd-sf-ymm-1.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265288 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoFix tests that fail when built with different options
redi [Thu, 18 Oct 2018 20:04:55 +0000 (20:04 +0000)] 
Fix tests that fail when built with different options

* testsuite/20_util/duration/cons/2.cc: Add -ffloat-store to fix
failure when compiled without optimisation.
* testsuite/ext/profile/mutex_extensions_neg.cc: Prune additional
errors caused by C++17 std::pmr alias templates.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265287 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoPR libstdc++/87642 handle multibyte thousands separators from libc
redi [Thu, 18 Oct 2018 19:57:25 +0000 (19:57 +0000)] 
PR libstdc++/87642 handle multibyte thousands separators from libc

If a locale's THOUSANDS_SEP or MON_THOUSANDS_SEP string is not a
single character we either need to narrow it to a single char or
ignore it (and therefore disable digit grouping for that facet).

PR libstdc++/87642
* config/locale/gnu/monetary_members.cc
(moneypunct<char, true>::_M_initialize_moneypunct): Use
__narrow_multibyte_chars to convert multibyte thousands separators
to a single char.
* config/locale/gnu/numeric_members.cc
(numpunct<char>::_M_initialize_numpunct): Likewise.
(__narrow_multibyte_chars): New function.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265286 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago compiler: drop semicolons in export data
ian [Thu, 18 Oct 2018 19:35:46 +0000 (19:35 +0000)] 
compiler: drop semicolons in export data

    The export data, which is approximately readable and looks something
    like Go, was first implemented back when Go still used semicolons.
    Drop the semicolons, to make it look slightly more Go like and make it
    slightly smaller.

    This updates the compiler and the gccgoimporter package.

    This introduces a new version of the export data.  There are going to
    be more changes to the export data, so this version is still subject
    to change.

    Reviewed-on: https://go-review.googlesource.com/c/143018

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265284 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoFix (re)alloc of polymorphic arrays
burnus [Thu, 18 Oct 2018 19:35:34 +0000 (19:35 +0000)] 
Fix (re)alloc of polymorphic arrays

        PR fortran/87625
        * trans-array.c (gfc_is_reallocatable_lhs): Detect allocatable
        polymorphic arrays.

        PR fortran/87625
        * gfortran.dg/realloc_on_assign_31.f90: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265283 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago * udivmodsi4.c (__udivmodsi4): Rename to conform to coding
pkoning [Thu, 18 Oct 2018 18:01:15 +0000 (18:01 +0000)] 
* udivmodsi4.c (__udivmodsi4): Rename to conform to coding
standard.
* divmod.c: Update references to __udivmodsi4.
* udivmod.c: Ditto.
* udivhi3.c: New file.
* udivmodhi4.c: New file.
* config/pdp11/t-pdp11 (LIB2ADD): Add the new files.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265277 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoImprove -dumpversion and -dumpfullversion documentation
redi [Thu, 18 Oct 2018 17:43:00 +0000 (17:43 +0000)] 
Improve -dumpversion and -dumpfullversion documentation

* doc/invoke.texi (-dumpversion): Improve grammar.
(-dumpfullversion): Make more consistent with -dumpversion.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265276 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago * config/i386/i386.c (ix86_emit_fp_unordered_jump):
uros [Thu, 18 Oct 2018 16:49:20 +0000 (16:49 +0000)] 
* config/i386/i386.c (ix86_emit_fp_unordered_jump):
Set JUMP_LABEL to the jump insn.
(ix86_emit_i387_log1p): Use ix86_expand_branch to expand branch.
Predict emitted jump and add label to jump insn.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265274 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoFix missing entry to gcc/ada/ChangeLog for r265240
dmalcolm [Thu, 18 Oct 2018 16:09:56 +0000 (16:09 +0000)] 
Fix missing entry to gcc/ada/ChangeLog for r265240

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265272 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoFix ICE in substring-handling building 502.gcc_r (PR 87562)
dmalcolm [Thu, 18 Oct 2018 15:44:39 +0000 (15:44 +0000)] 
Fix ICE in substring-handling building 502.gcc_r (PR 87562)

In r264887 I broke the build of 502.gcc_r due to an ICE.
The ICE occurs when generating a location for an sprintf warning within
a string literal, where the sprintf call is in a macro.

The root cause is a bug in the original commit of substring locations
(r239175).  get_substring_ranges_for_loc has code to handle the case
where the string literal is in a very long source line that exceeds the
length that the current linemap can represent: the start of the token
is in one line map, but then another line map is started, and the end
of the token is in the new linemap.  get_substring_ranges_for_loc handles
this by using the linemap of the end-point when building location_t
values within the string.  When extracting the linemap for the endpoint
in r239175 I erroneously used LRK_MACRO_EXPANSION_POINT, which should
have instead been LRK_SPELLING_LOCATION.

I believe this bug was dormant due to rejecting macro locations earlier
in the function, but in r264887 I allowed some macro locations in order
to deal with locations coming from the C++ lexer, and this uncovered
the bug: if a string literal was defined in a macro, locations within
the string literal would be looked up using the linemap of the expansion
point of the macro, rather than of the spelling point.  This would lead
to garbage location_t values, and, depending on the precise line numbers
of the two locations, an assertion failure (which was causing the build
failure in 502.gcc_r).

This patch fixes the bug by using LRK_SPELLING_LOCATION, and adds some
bulletproofing to the "two linemaps" case.

Successfully bootstrapped & regrtested on x86_64-pc-linux-gnu
(g++.sum gained 5 PASS results; gcc.sum gained 3 PASS results).
I also verified that this fixes the build of 502.gcc_r.

gcc/ChangeLog:
PR tree-optimization/87562
* input.c (get_substring_ranges_for_loc): Use
LRK_SPELLING_LOCATION rather than LRK_MACRO_EXPANSION_POINT when
getting the linemap for the endpoint.  Verify that it's either
in the same linemap as the start point's spelling location, or
at least in the same file.

gcc/testsuite/ChangeLog:
PR tree-optimization/87562
* c-c++-common/substring-location-PR-87562-1-a.h: New file.
* c-c++-common/substring-location-PR-87562-1-b.h: New file.
* c-c++-common/substring-location-PR-87562-1.c: New test.
* gcc.dg/plugin/diagnostic-test-string-literals-1.c: Add test for
PR 87562.
* gcc.dg/plugin/pr87562-a.h: New file.
* gcc.dg/plugin/pr87562-b.h: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265271 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoPR libstdc++/87641 correctly initialize accumulator in valarray::sum()
redi [Thu, 18 Oct 2018 15:38:50 +0000 (15:38 +0000)] 
PR libstdc++/87641 correctly initialize accumulator in valarray::sum()

Use the value of the first element as the initial value of the
__valarray_sum accumulator. Value-initialization might not create the
additive identity for the value type.

Make a similar change to __valarray_product even though it's only ever
used internally with a value_type of size_t.

PR libstdc++/87641
* include/bits/valarray_array.h (__valarray_sum): Use first element
to initialize accumulator instead of value-initializing it.
(__valarray_product<_Tp>): Move to ...
* src/c++98/valarray.cc (__valarray_product<_Tp>): Here. Use first
element to initialize accumulator.
(__valarray_product(const valarray<size_t>&)): Remove const_cast made
unnecessary by LWG 389.
* testsuite/26_numerics/valarray/87641.cc: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265270 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-18 Richard Biener <rguenther@suse.de>
rguenth [Thu, 18 Oct 2018 14:31:29 +0000 (14:31 +0000)] 
2018-10-18  Richard Biener  <rguenther@suse.de>

* config/i386/i386.c (ix86_builtin_vectorization_cost): Do not
feed width-specific load/store costs through ix86_vec_cost.
* config/i386/x86-tune-costs.h (athlon_cost): Adjust.
(k8_cost): Likewise.
(bdver_cost): Likewise.
(znver1_cost): Likewise.
(btver1_cost): Likewise.
(btver2_cost): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265268 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoCall simplify_gen_subreg to simplify subreg of vec_merge
hjl [Thu, 18 Oct 2018 12:34:13 +0000 (12:34 +0000)] 
Call simplify_gen_subreg to simplify subreg of vec_merge

Simplify
(subreg (vec_merge (X)
   (vector)
   (const_int ((1 << N) | M)))
(N * sizeof (outermode)))
to
(subreg (X) (N * sizeof (outermode)))

* simplify-rtx.c (simplify_subreg): Call simplify_gen_subreg
to simplify subreg of vec_merge.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265267 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-18 Richard Biener <rguenther@suse.de>
rguenth [Thu, 18 Oct 2018 12:19:44 +0000 (12:19 +0000)] 
2018-10-18  Richard Biener  <rguenther@suse.de>

* config/i386/i386.c: Fix costing of vector FMA.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265266 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-18 Richard Biener <rguenther@suse.de>
rguenth [Thu, 18 Oct 2018 11:47:51 +0000 (11:47 +0000)] 
2018-10-18  Richard Biener  <rguenther@suse.de>

* config/i386/i386.c (ix86_vec_cost): Remove !parallel path
and argument.
(ix86_builtin_vectorization_cost): For vec_construct properly
cost insertion into SSE regs.
(...): Adjust calls to ix86_vec_cost.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265265 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-18 Paul Thomas <pault@gcc.gnu.org>
pault [Thu, 18 Oct 2018 10:37:39 +0000 (10:37 +0000)] 
2018-10-18  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/58618
* trans-stmt.c (trans_associate_var): All strings that return
as pointer types can be assigned directly to the associate
name so remove 'attr' and the condition that uses it.

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

PR fortran/58618
* gfortran.dg/associate_45.f90 : New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265264 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-18 Paul Thomas <pault@gcc.gnu.org>
pault [Thu, 18 Oct 2018 10:33:25 +0000 (10:33 +0000)] 
2018-10-18  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/58618
* trans-decl.c (gfc_get_symbol_decl): Deal correctly with the
initialization with NULL() of a deferred length pointer.

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

PR fortran/58618
* gfortran.dg/deferred_character_30.f90 : New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265263 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-18 Richard Biener <rguenther@suse.de>
rguenth [Thu, 18 Oct 2018 08:40:54 +0000 (08:40 +0000)] 
2018-10-18  Richard Biener  <rguenther@suse.de>

PR middle-end/87087
Revert
2018-02-07  Richard Biener  <rguenther@suse.de>

        PR tree-optimization/84204
        * tree-chrec.c (chrec_fold_plus_1): Remove size limiting in
        this place.

* gcc.dg/torture/pr87087.c: New testcase.
* gcc.dg/graphite/pr84204.c: XFAIL.
* gcc.dg/graphite/pr85935.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265261 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoSimplify subreg of vec_merge of vec_duplicate
hjl [Thu, 18 Oct 2018 08:18:42 +0000 (08:18 +0000)] 
Simplify subreg of vec_merge of vec_duplicate

We can simplify

  (subreg (vec_merge (vec_duplicate X)
     (vector)
     (const_int ((1 << N) | M)))
  (N * sizeof (X)))

to X when mode of X is the same as of mode of subreg.

gcc/

PR target/87537
* simplify-rtx.c (simplify_subreg): Simplify subreg of vec_merge
of vec_duplicate.
(test_vector_ops_duplicate): Add test for a scalar subreg of a
VEC_MERGE of a VEC_DUPLICATE.

gcc/testsuite/

PR target/87537
* gcc.target/i386/pr87537-1.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265260 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago2018-10-18 François Dumont <fdumont@gcc.gnu.org>
fdumont [Thu, 18 Oct 2018 05:36:02 +0000 (05:36 +0000)] 
2018-10-18  François Dumont  <fdumont@gcc.gnu.org>

Partial revert.
2018-10-08  François Dumont  <fdumont@gcc.gnu.org>

* include/debug/list (list<>::cbegin()): Use C++11 direct
initialization.
(list<>::cend()): Likewise.
(list<>::erase(const_iterator, const_iterator)): Ensure consistent
iterator comparisons.
(list<>::splice(const_iterator, list&&, const_iterator,
const_iterator)): Likewise.

Partial revert.
2018-10-15  François Dumont  <fdumont@gcc.gnu.org>

* include/debug/vector (vector<>::cbegin()): Use C++11 direct
initialization.
(vector<>::cend()): Likewise.
(vector<>::insert(const_iterator, const _Tp&)): Use consistent
iterator comparison.
(vector<>::erase(const_iterator)): Likewise.
(vector<>::erase(const_iterator, const_iterator)): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265259 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoDaily bump.
gccadmin [Thu, 18 Oct 2018 00:16:50 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265255 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoAdd -std=c2x, -std=gnu2x, -Wc11-c2x-compat, C2X _Static_assert support.
jsm28 [Wed, 17 Oct 2018 23:58:54 +0000 (23:58 +0000)] 
Add -std=c2x, -std=gnu2x, -Wc11-c2x-compat, C2X _Static_assert support.

Now new features are starting to be added to a C2X draft (in the C2x
branch of the C standard git repository, no public WG14 document yet),
it's time to add -std=c2x and associated options to GCC for use in
enabling C2X features.

This patch adds the expected set of options: -std=c2x, -std=gnu2x,
-Wc11-c2x-compat.  A first C2X feature is added (the only one so far
in the repository that's obviously relevant to GCC): support (as in
C++) for the string constant to be omitted in _Static_assert.  This
feature is duly also supported as an extension in earlier standard
modes (diagnosed with -pedantic, unless -Wno-c11-c2x-compat is given,
or with -Wc11-c2x-compat even in C2X mode).

Bootstrapped with no regressions on x86_64-pc-linux-gnu.

gcc/
* doc/cpp.texi (__STDC_VERSION__): Document C2X handling.
* doc/invoke.texi (-std=c2x, -std=gnu2x): Document new options.
* doc/standards.texi (C Language): Document C2X.
* dwarf2out.c (highest_c_language), config/rl78/rl78.c
(rl78_option_override): Handle "GNU C2X" language name.

gcc/c/
* c-errors.c (pedwarn_c11): New function.
* c-parser.c (disable_extension_diagnostics): Save
warn_c11_c2x_compat and set it to 0.
(restore_extension_diagnostics): Restore warn_c11_c2x_compat.
(c_parser_static_assert_declaration_no_semi): Handle
_Static_assert without string constant.
* c-tree.h (pedwarn_c11): New prototype.

gcc/c-family/
* c-common.c (flag_isoc2x): New variable.
* c-common.h (clk_c): Update comment to reference C2X.
(flag_isoc99, flag_isoc11): Update comments to reference future
standard versions in general.
(flag_isoc2x): Declare.
* c-opts.c (set_std_c2x): New function.
(c_common_handle_option): Handle -std=c2x and -std=gnu2x.
(set_std_c89, set_std_c99, set_std_c11, set_std_c17): Set
flag_isoc2x to 0.
* c.opt (Wc11-c2x-compat, std=c2x, std=gnu2x): New options.

gcc/testsuite/
* gcc.dg/c11-static-assert-7.c, gcc.dg/c11-static-assert-8.c,
gcc.dg/c11-static-assert-9.c, gcc.dg/c2x-static-assert-1.c,
gcc.dg/c2x-static-assert-2.c, gcc.dg/c99-static-assert-2.c,
gcc.dg/gnu2x-static-assert-1.c: New tests.
* gcc.dg/missing-symbol-3.c: Update expected fix-it text.

libcpp/
* include/cpplib.h (enum c_lang): Add CLK_GNUC2X and CLK_STDC2X.
* init.c (lang_defaults): Add GNUC2X and STDC2X entries.
(cpp_init_builtins): Define __STDC_VERSION__ to 202000L for C2X.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265251 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoUpdate C17 option descriptions not to say "expected to be published".
jsm28 [Wed, 17 Oct 2018 21:41:42 +0000 (21:41 +0000)] 
Update C17 option descriptions not to say "expected to be published".

* c.opt (std=c17, std=c18, std=gnu17, std=gnu18, std=iso9899:2017)
(std=iso9899:2018): Document C17 as published in 2018.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265250 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoUpdate manual references for C17 having been published.
jsm28 [Wed, 17 Oct 2018 21:33:30 +0000 (21:33 +0000)] 
Update manual references for C17 having been published.

This patch makes references in the manual to C17 reflect it having
been published in July 2018.  (For the reasons it took so long to get
to ballot and publication, see the WG14 convenor's report to the last
SC22 plenary - SC22 N5297 - where it references "A troubling new trend
where ISO CS has begun enforcing undocumented rules that are approved
neither by the TMB nor by the WG 14 editors, leading to a decrease in
the usefulness of standards documents.".)

Tested with "make info html pdf".

* doc/invoke.texi (-std=c17), doc/standards.texi (C Language):
Document C17 as published in 2018.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265249 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoFix select-type regression
burnus [Wed, 17 Oct 2018 19:58:58 +0000 (19:58 +0000)] 
Fix select-type regression

        PR fortran/87632
        * resolve.c (resolve_select_type): Use correct variable.

        PR fortran/87632
        * gfortran.dg/select_type_47.f90: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265248 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoPR libstdc++/87619
ville [Wed, 17 Oct 2018 19:08:51 +0000 (19:08 +0000)] 
PR libstdc++/87619

* include/std/variant (__select_index): Fix an off-by-one.
* testsuite/20_util/variant/87619.cc: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265247 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agolibgcc: apply LIB2FUNCS_EXCLUDE logic to LIB2FUNCS_ST
villemoes [Wed, 17 Oct 2018 18:39:48 +0000 (18:39 +0000)] 
libgcc: apply LIB2FUNCS_EXCLUDE logic to LIB2FUNCS_ST

One target file (config/c6x/t-elf) lists _printf and _gcc_bcmp in
LIB2FUNCS_EXCLUDE, but that does not have any effect, since those are
not filtered away from LIB2FUNCS_ST. Another option is to do as in
config/rl78/t-rl78, which explicitly sets LIB2FUNCS_ST

# Remove __gcc_bcmp from LIB2FUNCS_ST
LIB2FUNCS_ST = _eprintf

but honouring LIB2FUNCS_EXCLUDE also for LIB2FUNCS_ST seems more
natural.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265246 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago PR middle-end/87623
ebotcazou [Wed, 17 Oct 2018 17:49:28 +0000 (17:49 +0000)] 
PR middle-end/87623
* fold-const.c (fold_truth_andor_1): If the right side is not constant,
bail out if both sides do not have the same storage order.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265242 138bc75d-0d04-0410-961f-82ee72b054a4

7 years ago * bitmap.c (bitmap_head::dump): New.
aldyh [Wed, 17 Oct 2018 15:59:25 +0000 (15:59 +0000)] 
* bitmap.c (bitmap_head::dump): New.
* bitmap.h (bitmap_head): Add dump().
* gimple-ssa-evrp-analyze.c
(evrp_range_analyzer::try_find_new_range): Adjust for value_range API.
(evrp_range_analyzer::set_ssa_range_info): Same.
(evrp_range_analyzer::record_ranges_from_phis): Same.
(evrp_range_analyzer::record_ranges_from_stmt): Same.
* gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Same.
* gimple-ssa-sprintf.c (get_int_range): Same.
(format_integer): Same.
(sprintf_dom_walker::handle_gimple_call): Same.
* ipa-cp.c (ipcp_vr_lattice::meet_with_1): Same.
(ipcp_vr_lattice::top_p): Same.
(ipcp_vr_lattice::bottom_p): Same.
(ipcp_vr_lattice::set_to_bottom): Same.
(ipa_vr_operation_and_type_effects): Same.
(propagate_vr_across_jump_function): Same.
(ipcp_store_vr_results): Same.
* ipa-prop.c (struct ipa_vr_ggc_hash_traits): Same.
(ipa_print_node_jump_functions_for_edge): Same.
(ipa_get_value_range): Same.
(ipa_compute_jump_functions_for_edge): Same.
(ipa_write_jump_function): Same.
* tree-ssa-dom.c (simplify_stmt_for_jump_threading): Same.
* tree-ssa-threadedge.c (record_temporary_equivalences_from_phis):
Same.
* vr-values.c (set_value_range_to_nonnegative): Same.
(set_value_range_to_truthvalue): Same.
(vr_values::get_value_range): Same.
(vr_values::set_defs_to_varying): Same.
(vr_values::update_value_range): Same.
(symbolic_range_based_on_p): Same.
(vr_values::op_with_boolean_value_range_p): Same.
(vr_values::extract_range_for_var_from_comparison_expr): Same.
(vr_values::extract_range_from_ssa_name): Same.
(vr_values::extract_range_from_binary_expr): Same.
(vr_values::extract_range_from_unary_expr): Same.
(vr_values::extract_range_from_cond_expr): Same.
(vr_values::extract_range_from_comparison): Same.
(vr_values::check_for_binary_op_overflow): Same.
(vr_values::extract_range_basic): Same.
(vr_values::extract_range_from_assignment): Same.
(compare_ranges): Same.
(compare_range_with_value): Same.
(vr_values::adjust_range_with_scev): Same.
(vrp_valueize): Same.
(vrp_valueize_1): Same.
(vr_values::get_vr_for_comparison): Same.
(vr_values::compare_name_with_value): Same.
(vr_values::compare_names): Same.
(vr_values::vrp_evaluate_conditional): Same.
(find_case_label_ranges): Same.
(vr_values::vrp_visit_switch_stmt): Same.
(vr_values::extract_range_from_phi_node): Same.
(vr_values::simplify_div_or_mod_using_ranges): Same.
(vr_values::simplify_bit_ops_using_ranges): Same.
(test_for_singularity): Same.
(range_fits_type_p): Same.
(vr_values::simplify_cond_using_ranges_1): Same.
(vr_values::simplify_switch_using_ranges): Same.
(vr_values::simplify_float_conversion_using_ranges): Same.
(vr_values::two_valued_val_range_p): Same.
(vr_values::add_equivalence): Move to value_range::equiv_add.
* vr-values.h (vr_values::add_equivalence): Remove.
(VR_INITIALIZER): Remove.
* tree-vrp.c (value_range::set): New.
(value_range::equiv_add): New.
(value_range::value_range): New.
(value_range::deep_copy): New.
(value_range::check): New.
(value_range::equal_p): New.
(value_range::ignore_equivs_equal_p): New.
(value_range::operator==): New.
(value_range::operator!=): New.
(value_range::symbolic_p): New.
(value_range::numeric_p): New.
(value_range::set_undefined): New.
(value_range::set_varying): New.
(value_range::may_contain_p): New.
(value_range::equiv_clear): New.
(value_range::singleton_p): New.
(value_range::intersect): New.
(value_range::dump): New.
(value_range::set_and_canonicalize): New.
(set_value_range): Adjust for value_range API.
(set_value_range_to_undefined): Same.
(set_value_range_to_varying): Same.
(set_and_canonicalize_value_range): Same.
(set_value_range_to_nonnull): Same.
(set_value_range_to_null): Same.
(range_is_null): Same.
(range_is_nonnull): Same.
(range_int_cst_p): Same.
(range_int_cst_singleton_p): Same.
(symbolic_range_p): Same.
(range_includes_zero_p): Same.
(value_range_constant_singleton): Same.
(vrp_set_zero_nonzero_bits): Same.
(ranges_from_anti_range): Same.
(extract_range_into_wide_ints): Same.
(extract_range_from_multiplicative_op): Same.
(set_value_range_with_overflow): Same.
(extract_range_from_binary_expr_1): Same.
(extract_range_from_unary_expr): Same.
(dump_value_range): Same.
(debug_value_range): Same.
(vrp_prop::check_array_ref): Same.
(vrp_prop::check_mem_ref): Same.
(vrp_prop::vrp_initialize): Same.
(vrp_prop::visit_stmt): Same.
(intersect_ranges): Same.
(vrp_prop::visit_phi): Same.
(vrp_prop::vrp_finalize): Same.
(determine_value_range_1): Same.
(determine_value_range): Same.
(vrp_intersect_ranges_1): Rename to...
(vrp_intersect_1): this.
(vrp_intersect_ranges): Rename to...
(value_range::intersect_helper): ...this.
(vrp_meet_1): Rename to...
(value_range::union_helper): ...this.
(vrp_meet): Rename to...
(value_range::union_): ...this.
(copy_value_range): Remove.
* tree-vrp.h (struct value_range): Rewrite into a proper class.
(value_range::vrtype): New.
(value_range::type): New.
(value_range::equiv): New.
(value_range::min): New.
(value_range::max): New.
(value_range::varying_p): New.
(value_range::undefined_p): New.
(value_range::null_p): New.
(value_range::equiv_add): New.
(copy_value_range): Remove.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265241 138bc75d-0d04-0410-961f-82ee72b054a4

7 years agoRun selftests for C++ as well as C
dmalcolm [Wed, 17 Oct 2018 13:56:05 +0000 (13:56 +0000)] 
Run selftests for C++ as well as C

gcc/ChangeLog:
* Makefile.in (SELFTEST_TARGETS): New.
(selftest) Change from s-selftest-c to $(SELFTEST_TARGETS).
(C_SELFTEST_FLAGS, C_SELFTEST_DEPS, s-selftest-c, selftest-c-gdb)
(selftest-gdb, selftest-c-valgrind, selftest-valgrind): Move to
c/Make-lang.in.
(CPP_SELFTEST_FLAGS, CPP_SELFTEST_DEPS, s-selftest-c++)
(selftest-c++-gdb, selftest-c++-valgrind): Move to
cp/Make-lang.in.
* configure: Regenerate.
* configure.ac (selftest_languages): New.

gcc/brig/ChangeLog:
* Make-lang.in (selftest-brig): New.

gcc/c/ChangeLog:
* Make-lang.in (selftest-c): New.
(C_SELFTEST_FLAGS, C_SELFTEST_DEPS, s-selftest-c, selftest-c-gdb)
(selftest-gdb, selftest-c-valgrind, selftest-valgrind): Move here
from gcc/Makefile.in.

gcc/cp/ChangeLog:
* Make-lang.in (selftest-c++): New.
(CPP_SELFTEST_FLAGS, CPP_SELFTEST_DEPS, s-selftest-c++)
(selftest-c++-gdb, selftest-c++-valgrind): Move here from
gcc/Makefile.in.

gcc/fortran/ChangeLog:
* Make-lang.in (selftest-fortran): New.

gcc/go/ChangeLog:
* Make-lang.in (selftest-go): New.

gcc/jit/ChangeLog:
* Make-lang.in (selftest-jit): New.

gcc/lto/ChangeLog:
* Make-lang.in (selftest-lto): New.

gcc/objc/ChangeLog:
* Make-lang.in (selftest-objc): New.

gcc/objcp/ChangeLog:
* Make-lang.in (selftest-obj-c++): New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265240 138bc75d-0d04-0410-961f-82ee72b054a4