Uros Bizjak [Tue, 21 May 2019 17:57:11 +0000 (19:57 +0200)]
re PR target/90547 (ICE in gen_lowpart_general, at rtlhooks.c:63)
PR target/90547
* config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
Avoid calling gen_lowpart with CONST operand.
testsuite/ChangeLog:
PR target/90547
* gcc.target/i386/pr90547.c: New test.
From-SVN: r271479
Alexandre Oliva [Tue, 21 May 2019 17:09:13 +0000 (17:09 +0000)]
preserve more debug stmts in gimple jump threading
Gimple jump threading does not duplicate forwarder blocks that might
be present before or after the second copied block. This silently
drops debug binds and markers that might be present in them. This
patch attempts to preserve them.
For blocks after either copied block, we attempt to append debug stmts
to the copied block, if it does not end with a block-ending stmt.
Failing that, for blocks between both copied blocks, we prepend its
debug stmts to the copy of the second block.
If everything fails, we still drop debug stmts on the floor, though
preexisting code consolidates debug binds in the block that threading
flows into, so only markers are really lost. We can't do much better
than that without conditional binds and markers, or debug stmts in
edges, or somesuch.
If we append debug stmts to a reusable template block, we copy it
after splitting out the debug stmts, and before putting them back.
for gcc/ChangeLog
* tree-ssa-threadupdate.c (struct ssa_local_info_t): Add
field template_last_to_copy.
(ssa_create_duplicates): Set it, and use it. Attempt to
preserve more debug stmts.
From-SVN: r271477
Rainer Orth [Tue, 21 May 2019 16:59:39 +0000 (16:59 +0000)]
Fix dg-require-* syntax
* gcc.dg/Wattribute-alias.c: Pass emtpy arg to dg-require-ifunc.
* gcc.c-torture/execute/
20030125-1.c: Pass emtpy arg to dg-require-weak.
* gcc.dg/torture/ftrapv-2.c: Pass empty arg to dg-require-fork.
* gcc.target/i386/pr84723-1.c: Remove dg-require-ifunc.
* gcc.target/i386/pr84723-2.c: Likewise.
* gcc.target/i386/pr84723-3.c: Likewise.
* gcc.target/i386/pr84723-4.c: Likewise.
* gcc.target/i386/pr84723-5.c: Likewise.
From-SVN: r271476
Iain Sandoe [Tue, 21 May 2019 16:33:48 +0000 (16:33 +0000)]
darwin, testsuite - fix PR 67958
These tests require specific scan-asms in some cases because
of the different codegen for Dawin. Added some explanations
too.
2019-05-21 Iain Sandoe <iain@sandoe.co.uk>
PR testsuite/67958
* gcc.target/i386/pr32219-1.c: Adjust scan-asms for Darwin, comment
the differences.
* gcc.target/i386/pr32219-2.c: Likewise.
* gcc.target/i386/pr32219-3.c: Likewise.
* gcc.target/i386/pr32219-4.c: Likewise.
* gcc.target/i386/pr32219-5.c: Likewise.
* gcc.target/i386/pr32219-6.c: Likewise.
* gcc.target/i386/pr32219-7.c: Likewise.
* gcc.target/i386/pr32219-8.c: Likewise.
From-SVN: r271475
Iain Sandoe [Tue, 21 May 2019 16:24:25 +0000 (16:24 +0000)]
darwin, testsuite - fix PR 63891.
This is a testcase failing because one part of the codegen is
(correctly) generating the scan-asm-not signature.
Fixed by altering the build options.
gcc/testsuite/
2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
PR target/63891
* gcc.dg/darwin-weakimport-3.c: Adjust options and explain
the reasons.
From-SVN: r271474
Uros Bizjak [Tue, 21 May 2019 16:00:37 +0000 (18:00 +0200)]
sse.md (VF1_AVX2): New mode iterator.
* config/i386/sse.md (VF1_AVX2): New mode iterator.
(signbit<mode>2): New expander
testsuite/ChangeLog:
* gcc.target/i386/vect-signbitf.c: New test.
From-SVN: r271473
James Clarke [Tue, 21 May 2019 15:42:00 +0000 (15:42 +0000)]
re PR bootstrap/87338 (gcc 8.2 fails to bootstrap on ia64)
PR bootstrap/87338
* dwarf2out.c (dwarf2out_inline_entry): Use ASM_OUTPUT_DEBUG_LABEL
instead of ASM_GENERATE_INTERNAL_LABEL and ASM_OUTPUT_LABEL.
From-SVN: r271472
Nathan Sidwell [Tue, 21 May 2019 15:31:28 +0000 (15:31 +0000)]
[C++ PATCH] Using decls
https://gcc.gnu.org/ml/gcc-patches/2019-05/msg01411.html
* name-lookup.c (do_nonmember_using_decl): Drop INSERT_P
parameter. Document.
(finish_nonmember_using_decl): Adjust do_nonmember_using_decl
calls. Remove stray FIXME comment.
From-SVN: r271471
Uros Bizjak [Tue, 21 May 2019 15:17:57 +0000 (17:17 +0200)]
cpuid.h (__cpuid): For 32bit targets...
* config/i386/cpuid.h (__cpuid): For 32bit targets, zero
%ebx and %ecx bafore calling cpuid with leaf 1 or
non-constant leaf argument.
From-SVN: r271469
Janne Blomqvist [Tue, 21 May 2019 15:17:44 +0000 (18:17 +0300)]
libfortran/90038: Document new wait=.false. implementation
2019-05-21 Janne Blomqvist <jb@gcc.gnu.org>
PR libfortran/90038
* intrinsic.texi (EXECUTE_COMMAND_LINE): Explain new
wait=.false. implementation.
From-SVN: r271468
Nathan Sidwell [Tue, 21 May 2019 14:33:24 +0000 (14:33 +0000)]
[C++ PATCH] Using decls
https://gcc.gnu.org/ml/gcc-patches/2019-05/msg01396.html
gcc/cp/
* name-lookup.h (struct cp_binding_level): Drop usings field.
(finish_namespace_using_decl, finish_local_using_decl): Replace with ...
(finish_nonmember_using_decl): ... this.
* name-lookup.c (push_using_decl_1, push_using_decl):
(do_nonmember_using_decl): ... here. Add INSERT_P arg. Reimplement.
(validate_nonmember_using_decl, finish_namespace_using_decl)
(finish_local_using_decl): Replace with ...
(finish_nonmember_using_decl): ... this. Drop DECL parm.
* parser.c (cp_parser_using_declaration): Don't do lookup here.
* pt.c (tsubst_expr): Do not do using decl lookup here.
gcc/testsuite/
* g++.dg/lookup/using53.C: Adjust diagnostic.
libcc1/
* libcp1plugin.cc (plugin_add_using_decl): Use
finish_nonmember_using_decl.
From-SVN: r271467
Jonathan Wakely [Tue, 21 May 2019 13:50:41 +0000 (14:50 +0100)]
PR libstdc++/90252 fix effective-target check for TBB
PR libstdc++/90252
* testsuite/lib/libstdc++.exp (check_effective_target_tbb-backend):
Use "additional_flags" to pass -ltbb to v3_target_compile command.
Use check_v3_target_prop_cached to cache the result of the test.
From-SVN: r271466
Jonathan Wakely [Tue, 21 May 2019 13:50:35 +0000 (14:50 +0100)]
Fix names of _Lock_policy constants in libstdc++ manual
* doc/xml/manual/shared_ptr.xml: Fix names of lock policy constants.
From-SVN: r271465
Alan Modra [Tue, 21 May 2019 13:36:04 +0000 (23:06 +0930)]
PR90545, gcc.target/powerpc/fold-vec-splats-floatdouble.c fails
I figure a tweak to register_move_cost is better than sprinkling ?s
in instruction operand alternatives.
PR target/90545
* config/rs6000/rs6000.c (rs6000_register_move_cost): Increase
power9 direct move cost.
* testsuite/gcc.target/powerpc/fold-vec-splats-floatdouble.c:
Correct comments and rename functions to suit parameters.
From-SVN: r271464
Richard Biener [Tue, 21 May 2019 12:01:00 +0000 (12:01 +0000)]
re PR tree-optimization/90510 (Unnecessary permutation)
2019-05-21 Richard Biener <rguenther@suse.de>
PR middle-end/90510
* fold-const.c (fold_read_from_vector): New function.
* fold-const.h (fold_read_from_vector): Declare.
* match.pd (VEC_PERM_EXPR): Build BIT_INSERT_EXPRs for
single-element insert permutations. Canonicalize selector
further and fix issue with last commit.
* gcc.target/i386/pr90510.c: New testcase.
From-SVN: r271463
Martin Liska [Tue, 21 May 2019 11:07:00 +0000 (13:07 +0200)]
Add missing "" for dg-require-ifunc.
2019-05-21 Martin Liska <mliska@suse.cz>
* gcc.target/i386/pr90500-1.c: Add missing '""'.
* gcc.target/i386/pr90500-2.c: Likewise.
From-SVN: r271462
Vladislav Ivanishin [Tue, 21 May 2019 10:45:32 +0000 (10:45 +0000)]
Don't split non-critical edges in crited
gcc/ChangeLog:
* tree-cfg.h (split_critical_edges): Add for_edge_insertion_p
parameter with default value false to declaration.
(split_edges_for_insertion): New inline function. Wrapper for
split_critical_edges with for_edge_insertion_p = true.
* tree-cfg.c (split_critical_edges): Don't split non-critical
edges if for_edge_insertion_p is false. Fix whitespace.
* tree-ssa-pre.c (pass_pre::execute): Call
split_edges_for_insertion instead of split_critical_edges.
* gcc/tree-ssa-tail-merge.c (tail_merge_optimize): Ditto.
* gcc/tree-ssa-sink.c (pass_sink_code::execute): Ditto.
(pass_data_sink_code): Update function name in the comment.
From-SVN: r271461
Vladislav Ivanishin [Tue, 21 May 2019 10:39:05 +0000 (10:39 +0000)]
tree-ssa-uninit: suppress more spurious warnings
* tree-ssa-uninit.c (value_sat_pred_p): This new function is a wrapper
around is_value_included_in that knows how to handle BIT_AND_EXPR.
(is_pred_expr_subset_of): Use the new function. Handle more cases where
code1 == EQ_EXPR and where code1 == BIT_AND_EXPR and thus fix some false
positives.
testsuite/
* gcc.dg/uninit-28-gimple.c: New test.
* gcc.dg/uninit-29-gimple.c: New test.
* gcc.dg/uninit-30-gimple.c: New test.
* gcc.dg/uninit-31-gimple.c: New test.
From-SVN: r271460
Janne Blomqvist [Tue, 21 May 2019 08:37:05 +0000 (11:37 +0300)]
contrib/mklog: Open files in text mode
Due to the python 3 conversion, files should be opened in text mode,
matching stdin/stdout.
2019-05-21 Janne Blomqvist <jb@gcc.gnu.org>
* mklog: Open files in text mode.
From-SVN: r271459
Martin Liska [Tue, 21 May 2019 07:33:41 +0000 (09:33 +0200)]
Enable -O2 for pr90263.c test.
2019-05-21 Martin Liska <mliska@suse.cz>
* gcc.dg/pr90263.c: Add -O2.
From-SVN: r271458
Eric Botcazou [Tue, 21 May 2019 07:00:45 +0000 (07:00 +0000)]
c-ada-spec.h (enum cpp_operation): Add IS_ASSIGNMENT_OPERATOR.
c-family/
* c-ada-spec.h (enum cpp_operation): Add IS_ASSIGNMENT_OPERATOR.
* c-ada-spec.c (print_assignment_operator): New function.
(dump_ada_declaration) <FUNCTION_DECL>: Call it do dump explicit copy
assignment operators declared as methods and filter out the others.
cp/
* decl2.c (cpp_check) <IS_ASSIGNMENT_OPERATOR>: New case.
From-SVN: r271457
Janne Blomqvist [Tue, 21 May 2019 06:59:16 +0000 (09:59 +0300)]
Convert contrib/mklog script to Python 3
Upstream will drop support for Python 2.x on January 1, 2020. This
patch converts the contrib/mklog script to Python 3. The process for
the conversion was as follows.
- Use the futurize tool (https://python-future.org ) to apply the
print_with_import, except, and dict transformations.
- Remove the "from __future__ import print_function".
- Change the shebang line to search for python3 in the environment.
- Modify the run() function to return a str instead of bytes.
- Update the copyright year.
contrib/ChangeLog:
2019-05-21 Janne Blomqvist <jb@gcc.gnu.org>
* mklog: Convert to Python 3.
From-SVN: r271456
Martin Liska [Tue, 21 May 2019 06:55:56 +0000 (08:55 +0200)]
fix diagnostic quoting/spelling in rs6000
2019-05-21 Martin Liska <mliska@suse.cz>
* config/rs6000/driver-rs6000.c (elf_platform): Do not use
an extra newline.
* config/rs6000/rs6000-c.c (rs6000_pragma_longcal): Wrap pragma in %<%>.
(altivec_resolve_overloaded_builtin): Likewise for vec_lvsl and
vec_lvsr.
* config/rs6000/rs6000.c (rs6000_option_override_internal):
Quote a C type.
(rs6000_function_arg): Likewise.
(rs6000_expand_set_fpscr_drn_builtin): Remove trailing dot.
(rs6000_expand_ternop_builtin): Use interval syntax.
(get_element_number): Likewise.
(altivec_expand_builtin): Likewise.
(rs6000_get_function_versions_dispatcher): Quote target_clones.
Fix test-suite.
2019-05-21 Martin Liska <mliska@suse.cz>
* gcc.target/powerpc/ppc64-abi-warn-1.c: Wrap a type.
* gcc.target/powerpc/pr80315-1.c: Use new interval format.
* gcc.target/powerpc/pr80315-2.c: Likewise.
* gcc.target/powerpc/pr80315-3.c: Likewise.
* gcc.target/powerpc/pr80315-4.c: Likewise.
* gcc.target/powerpc/warn-lvsl-lvsr.c: Wrap builtin names.
From-SVN: r271455
Martin Liska [Tue, 21 May 2019 06:55:07 +0000 (08:55 +0200)]
Move a test-case (PR testsuite/90551).
2019-05-21 Martin Liska <mliska@suse.cz>
PR testsuite/90551
* pr90263.c: Move from gcc.c-torture/compile
into gcc.dg.
From-SVN: r271454
Thomas Rodgers [Tue, 21 May 2019 04:37:45 +0000 (04:37 +0000)]
tbb-backend effective target should check ability to link TBB
PR libstdc++/90252
* testsuite/lib/libstdc++.exp (check_effective_target_tbb-backend):
Changed v3_target_compile check from preprocess to executable.
Added "-ltbb" to v3_target_compile flags.
From-SVN: r271451
Thomas Rodgers [Tue, 21 May 2019 01:06:32 +0000 (01:06 +0000)]
Check TBB version in tbb-backed effective target check
* testsuite/lib/libstdc++.exp (check_effective_target_tbb-backend):
Add check for Thread Building Blocks 2018 or later.
From-SVN: r271450
GCC Administrator [Tue, 21 May 2019 00:16:17 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r271449
Uros Bizjak [Mon, 20 May 2019 22:24:38 +0000 (00:24 +0200)]
re PR testsuite/90503 (gcc.target/i386/pr22076.c FAILs)
PR testsuite/90503
* gcc.target/i386/pr22076.c (dg-options): Add -mno-sse2.
Remove -flax-vector-conversions.
(dg-additional-options): Remove.
(test): Change to void. Declare m0 and m1 as __m64 and
cast initializer in a proper way. Do not return result.
(dg-final): Scan for 2 instances of movq.
From-SVN: r271445
Joseph Myers [Mon, 20 May 2019 22:22:36 +0000 (23:22 +0100)]
* es.po, sv.po: Update.
From-SVN: r271443
Uros Bizjak [Mon, 20 May 2019 22:01:32 +0000 (00:01 +0200)]
re PR testsuite/90503 (gcc.target/i386/pr22076.c FAILs)
PR testsuite/90503
* gcc.target/i386/pr22076.c (dg-options): Add -mno-sse2.
From-SVN: r271442
Mark Eggleston [Mon, 20 May 2019 21:49:33 +0000 (15:49 -0600)]
gfortran.texi: Remove reference to the ASSIGN statement...
* gfortran.texi: Remove reference to the ASSIGN statement, capitalise
complex, state that padding is with spaces and modify the Hollerith
constant examples.
From-SVN: r271441
Jakub Jelinek [Mon, 20 May 2019 21:33:46 +0000 (23:33 +0200)]
re PR c++/59813 (tail-call elimination didn't fire for left-shift of char to cout)
PR c++/59813
PR target/90418
* function.h (struct function): Add calls_eh_return member.
* gimplify.c (gimplify_call_expr): Set cfun->calls_eh_return when
gimplifying __builtin_eh_return call.
* tree-inline.c (initialize_cfun): Copy calls_eh_return from src_cfun
to cfun.
(expand_call_inline): Or in src_cfun->calls_eh_return into
dst_cfun->calls_eh_return.
* tree-tailcall.c (suitable_for_tail_call_opt_p): Return false if
cfun->calls_eh_return.
* lto-streamer-in.c (input_struct_function_base): Read calls_eh_return.
* lto-streamer-out.c (output_struct_function_base): Write
calls_eh_return.
From-SVN: r271440
Jakub Jelinek [Mon, 20 May 2019 21:29:17 +0000 (23:29 +0200)]
re PR libgomp/90527 (alloc.c:72:7: error: implicit declaration of function ‘posix_memalign’)
PR libgomp/90527
* alloc.c (_GNU_SOURCE): Define.
From-SVN: r271438
Jonathan Wakely [Mon, 20 May 2019 20:21:15 +0000 (21:21 +0100)]
Fix test failure due to Networking TS headers using mutexes
Only include the Networking headers for targets with Gthreads, so that
the uses of std::mutex and std::condition_variable don't cause errors.
* testsuite/experimental/names.cc: Only include Networking TS headers
on targets with the necessary Gthreads support.
From-SVN: r271437
Marek Polacek [Mon, 20 May 2019 19:10:57 +0000 (19:10 +0000)]
CWG 2094 - volatile scalars are trivially copyable.
PR c++/85679
* tree.c (trivially_copyable_p): Don't check CP_TYPE_VOLATILE_P for
scalar types.
* g++.dg/ext/is_trivially_constructible1.C: Change the expected result
for volatile int.
* g++.dg/ext/is_trivially_copyable.C: New test.
* testsuite/20_util/is_trivially_copyable/value.cc: Change the expected
result for volatile int.
From-SVN: r271435
Marek Polacek [Mon, 20 May 2019 19:04:52 +0000 (19:04 +0000)]
name-lookup.c (finish_using_directive): Don't issue inform() if the warning didn't trigger.
* name-lookup.c (finish_using_directive): Don't issue inform() if the
warning didn't trigger. Add quoting. Tweak the inform message.
* g++.dg/lookup/strong-using2.C: New test.
From-SVN: r271432
Marek Polacek [Mon, 20 May 2019 18:59:05 +0000 (18:59 +0000)]
pt.c (convert_template_argument): Add a diagnostic for the [temp.arg]/2 ambiguity case.
* pt.c (convert_template_argument): Add a diagnostic for the
[temp.arg]/2 ambiguity case.
* g++.dg/cpp2a/nontype-class17.C: New test.
From-SVN: r271431
Marek Polacek [Mon, 20 May 2019 18:23:06 +0000 (18:23 +0000)]
* g++.dg/ext/utf8-2.C: Accept both "char" and "char8_t" in aka.
From-SVN: r271430
Jeff Law [Mon, 20 May 2019 18:17:33 +0000 (12:17 -0600)]
Wtype-limits-Wextra.c: Adjust expected output after recent diagnostic cleanups.
* gcc.dg/Wtype-limits-Wextra.c: Adjust expected output after
recent diagnostic cleanups.
From-SVN: r271429
Paolo Carlini [Mon, 20 May 2019 18:00:46 +0000 (18:00 +0000)]
cp-tree.h: Remove remnants of CONV_NONCONVERTING.
2019-05-20 Paolo Carlini <paolo.carlini@oracle.com>
* cp-tree.h: Remove remnants of CONV_NONCONVERTING.
From-SVN: r271428
Vladislav Ivanishin [Mon, 20 May 2019 15:33:12 +0000 (15:33 +0000)]
Add myself to MAINTAINERS
2019-05-20 Vladislav Ivanishin <vlad@ispras.ru>
* MAINTAINERS (Write After Approval): Add myself.
From-SVN: r271425
Christophe Lyon [Mon, 20 May 2019 15:01:46 +0000 (15:01 +0000)]
[testsuite] PR90106 Fix cdce3.c testcase
2019-05-20 Christophe Lyon <christophe.lyon@linaro.org>
PR tree-optimization/90106
* gcc.dg/cdce3.c: Add hard_float effective target.
From-SVN: r271424
Marc Glisse [Mon, 20 May 2019 14:58:53 +0000 (16:58 +0200)]
Tweak gcc.dg/torture/pta-ptrarith-3.c
2019-05-20 Marc Glisse <marc.glisse@inria.fr>
* gcc.dg/torture/pta-ptrarith-3.c: Relax the matched pattern.
From-SVN: r271423
Marc Glisse [Mon, 20 May 2019 14:53:29 +0000 (16:53 +0200)]
[i386] Fold __builtin_ia32_shufpd to VEC_PERM_EXPR
2019-05-20 Marc Glisse <marc.glisse@inria.fr>
PR rtl-optimization/43147
* config/i386/i386.c (ix86_gimple_fold_builtin): Handle
IX86_BUILTIN_SHUFPD.
From-SVN: r271422
Jonathan Wakely [Mon, 20 May 2019 14:38:21 +0000 (15:38 +0100)]
Fix failing tests for use of non-reserved names
Defining 'ptr' fails on Solaris because it's used in <netdb.h>.
Including the Filesystem TS header fails if the TS support wasn't
enabled by configure.
* testsuite/17_intro/names.cc: Do not check 'ptr' on Solaris.
* testsuite/experimental/names.cc: Include <experimental/filesystem>
conditionally.
From-SVN: r271421
Nathan Sidwell [Mon, 20 May 2019 13:49:53 +0000 (13:49 +0000)]
[C++ PATCH] Commonixe using directive finishing
https://gcc.gnu.org/ml/gcc-patches/2019-05/msg01251.html
gcc/cp/
* name-lookup.c (finish_namespace_using_directive)
(finish_local_using_directive): Merge to ...
(finish_using_directive): ... here. Handle both contexts.
* name-lookup.h (finish_namespace_using_directive)
(finish_local_using_directive): Replace with ...
(finish_using_directive): ... this.
* parser.c (cp_parser_using_directive): Adjust.
* pt.c (tsubst_expr): Likewise.
libcc1/
* libcp1plugin.cc (plugin_add_using_namespace): Call renamed
finish_using_directive.
From-SVN: r271420
Jan Hubicka [Mon, 20 May 2019 13:37:11 +0000 (15:37 +0200)]
tree-ssa-alias.c (refs_may_alias_p_2): Break out from ...
* tree-ssa-alias.c (refs_may_alias_p_2): Break out from ...
(refs_may_alias_p_1): ... here; update stats.
(refs_may_alias_p): Do not update stats here.
From-SVN: r271419
Nathan Sidwell [Mon, 20 May 2019 12:46:54 +0000 (12:46 +0000)]
[C++ PATCH] namespace using directives
https://gcc.gnu.org/ml/gcc-patches/2019-05/msg01245.html
* cp-tree.h (struct lang_decl_ns): Remove usings field.
(DECL_NAMESPACE_USING): Delete.
* name-lookup.c (name_lookup::search_usings): Use namespace's
binding scope.
(name_lookup::queue_namespae): Likewise.
(finish_namespace_using_directive, push_namespace): Likewise.
(has_using_namespace_std_directive): Just search the entire
binding stack.
From-SVN: r271416
Iain Sandoe [Mon, 20 May 2019 12:28:18 +0000 (12:28 +0000)]
darwin, testsuite - fix PR58321
Darwin doesn't emit a .file directive by default
and one of the scan-asm hits for ELF targets comes from
this directive. Adjust for Darwin and explain.
2019-05-20 Iain Sandoe <iain@sandoe.co.uk>
PR testsuite/58321
* gcc.target/i386/memcpy-strategy-3.c: Adjust count for Darwin and
add a comment as to the reason for the difference.
* gcc.target/i386/memset-strategy-1.c: Likewise.
From-SVN: r271415
Richard Biener [Mon, 20 May 2019 12:02:35 +0000 (12:02 +0000)]
tree-ssa-structalias.c (find_func_aliases): POINTER_DIFF_EXPR doesn't produce pointers.
2019-05-20 Richard Biener <rguenther@suse.de>
* tree-ssa-structalias.c (find_func_aliases): POINTER_DIFF_EXPR
doesn't produce pointers.
{TRUNC,CEIL,FLOOR,ROUND,EXACT}_{DIV,MOD}_EXPR points to what
the first operand points to.
From-SVN: r271414
Jan Hubicka [Mon, 20 May 2019 12:01:40 +0000 (14:01 +0200)]
tree-ssa-alias.c (compare_sizes): New function.
* tree-ssa-alias.c (compare_sizes): New function.
(sompare_type_sizes): New function
(aliasing_component_refs_p): Use it.
(indirect_ref_may_alias_decl_p): Likewise.
From-SVN: r271413
Jonathan Wakely [Mon, 20 May 2019 11:32:51 +0000 (12:32 +0100)]
PR c++/90532 Ensure __is_constructible(T[]) is false
An array of an unknown bound is an incomplete type, so no object of such
a type can be constructed. This means __is_constructible should always
be false for an array of unknown bound.
This patch also changes the std::is_default_constructible trait to use
std::is_constructible, which now gives the right answer for arrays of
unknown bound.
gcc/cp:
PR c++/90532 Ensure __is_constructible(T[]) is false
* method.c (is_xible_helper): Return error_mark_node for construction
of an array of unknown bound.
gcc/testsuite:
PR c++/90532 Ensure __is_constructible(T[]) is false
* g++.dg/ext/90532.C: New test.
libstdc++-v3:
PR c++/90532 Ensure __is_constructible(T[]) is false
* include/std/type_traits (__do_is_default_constructible_impl)
(__is_default_constructible_atom, __is_default_constructible_safe):
Remove.
(is_default_constructible): Use is_constructible.
* testsuite/20_util/is_constructible/value.cc: Check int[] case.
* testsuite/20_util/is_default_constructible/value.cc: Likewise.
* testsuite/20_util/is_trivially_constructible/value.cc: Likewise.
* testsuite/20_util/is_trivially_default_constructible/value.cc:
Likewise.
From-SVN: r271412
Rainer Orth [Mon, 20 May 2019 11:26:43 +0000 (11:26 +0000)]
Reject -mx32 on Solaris/x86
* config/i386/sol2.h (CC1_SPEC): Reject -mx32.
From-SVN: r271411
Rainer Orth [Mon, 20 May 2019 11:22:40 +0000 (11:22 +0000)]
Fix %e in Solaris specs
* config/sol2.h (LIBTSAN_EARLY_SPEC): Remove : after %e.
(LIBLSAN_EARLY_SPEC): Likewise.
* config/i386/sol2.h (ASAN_REJECT_SPEC): Likewise.
From-SVN: r271410
Pádraig Brady [Mon, 20 May 2019 11:15:03 +0000 (11:15 +0000)]
std::allocator::deallocate support sized-deallocation
Pass the size to the allocator so that it may optimize deallocation.
This was seen to significantly reduce the work required in jemalloc,
with about 40% reduction in CPU cycles in the free path.
Note jemalloc >= 5.2 is required to fix a crash with 0 sizes.
2019-05-20 Pádraig Brady <pbrady@fb.com>
* libstdc++-v3/include/ext/new_allocator.h (deallocate): Pass the size
to the deallocator with -fsized-deallocation.
From-SVN: r271409
Jonathan Wakely [Mon, 20 May 2019 11:14:56 +0000 (12:14 +0100)]
Fix test bug with mismatched alignment in allocate/deallocate
* testsuite/experimental/memory_resource/new_delete_resource.cc: Fix
test by passing correct alignment to deallocate function.
From-SVN: r271408
Martin Liska [Mon, 20 May 2019 10:48:46 +0000 (12:48 +0200)]
Add missing ATTRIBUTE_UNUSED for ix86_libc_has_fast_function.
2019-05-20 Martin Liska <mliska@suse.cz>
* config/i386/i386.c (ix86_libc_has_fast_function):
Add ATTRIBUTE_UNUSED for the argument.
From-SVN: r271406
Richard Biener [Mon, 20 May 2019 10:33:54 +0000 (10:33 +0000)]
gimple-match-head.c: Include vec-perm-indices.h.
2019-05-20 Richard Biener <rguenther@suse.de>
* gimple-match-head.c: Include vec-perm-indices.h.
* generic-match-head.c: Likewise.
* fold-const.h (fold_vec_perm): Declare when vec-perm-indices.h
is included.
* fold-const.c (fold_vec_perm): Export.
(fold_ternary_loc): Move non-constant folding of VEC_PERM_EXPR...
(match.pd): ...here.
From-SVN: r271404
Jakub Jelinek [Mon, 20 May 2019 09:49:07 +0000 (11:49 +0200)]
cfgloop.h (struct loop): Add simdlen member.
* cfgloop.h (struct loop): Add simdlen member.
* cfgloopmanip.c (copy_loop_info): Copy simdlen as well.
* omp-expand.c (expand_omp_simd): Set it if simdlen clause is present.
* tree-vect-loop.c (vect_analyze_loop): Pass loop->simdlen != 0
as new argument to autovectorize_vector_sizes target hook. If
loop->simdlen, pick up vector size where the vectorization factor
is equal to loop->simd, and if there is none, fall back to the first
successful one.
(vect_transform_loop): Adjust autovectorize_vector_sizes target hook
caller.
* omp-low.c (omp_clause_aligned_alignment): Likewise.
* omp-general.c (omp_max_vf): Likewise.
* optabs-query.c (can_vec_mask_load_store_p): Likewise.
* tree-vect-slp.c (vect_slp_bb): Likewise.
* target.def (autovectorize_vector_sizes): Add ALL argument and
document it.
* doc/tm.texi: Adjust documentation.
* targhooks.c (default_autovectorize_vector_sizes): Add bool argument.
* targhooks.h (default_autovectorize_vector_sizes): Likewise.
* config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes): Add
bool argument.
* config/arc/arc.c (arc_autovectorize_vector_sizes): Likewise.
* config/arm/arm.c (arm_autovectorize_vector_sizes): Likewise.
* config/mips/mips.c (mips_autovectorize_vector_sizes): Likewise.
* config/i386/i386.c (ix86_autovectorize_vector_sizes): Likewise. If
true and TARGET_AVX512F or TARGET_AVX, push 3 or 2 sizes even if
preferred vector size is not 512-bit or 256-bit, just put those
unpreferred ones last.
* gcc.target/i386/avx512f-simd-1.c: New test.
From-SVN: r271403
Christophe Lyon [Mon, 20 May 2019 09:12:03 +0000 (09:12 +0000)]
[testsuite] aarch64,arm Add missing quotes to expected error message
2019-05-20 Christophe Lyon <christophe.lyon@linaro.org>
* gcc.target/aarch64/target_attr_10.c: Add quotes to expected
error message.
* gcc.target/arm/attr-neon-builtin-fail.c: Likewise.
From-SVN: r271402
Martin Liska [Mon, 20 May 2019 09:11:04 +0000 (11:11 +0200)]
Add missing default default_libc_has_fast_function implementation.
2019-05-20 Martin Liska <mliska@suse.cz>
* targhooks.c (default_libc_has_fast_function): New function.
* targhooks.h (default_libc_has_fast_function): Likewise.
From-SVN: r271401
Martin Liska [Mon, 20 May 2019 07:55:00 +0000 (09:55 +0200)]
Come up with hook libc_has_fast_function (PR middle-end/90263).
2019-05-20 Martin Liska <mliska@suse.cz>
PR middle-end/90263
* builtins.c (expand_builtin_memory_copy_args): When having a
target with fast mempcpy implementation do now use memcpy.
* config/i386/i386.c (ix86_libc_has_fast_function): New.
(TARGET_LIBC_HAS_FAST_FUNCTION): Likewise.
* doc/tm.texi: Likewise.
* doc/tm.texi.in: Likewise.
* target.def:
* expr.c (emit_block_move_hints): Add 2 new arguments.
* expr.h (emit_block_move_hints): Bail out when libcall
to memcpy would be used.
2019-05-20 Martin Liska <mliska@suse.cz>
PR middle-end/90263
* gcc.c-torture/compile/pr90263.c: New test.
* lib/target-supports.exp: Add check_effective_target_glibc.
From-SVN: r271400
Martin Liska [Mon, 20 May 2019 07:53:42 +0000 (09:53 +0200)]
Add vertical spacing in order to separate functions.
2019-05-20 Martin Liska <mliska@suse.cz>
* profile-count.c: Add vertical spacing in order
to separate functions.
* profile-count.h: Likewise.
From-SVN: r271399
Martin Liska [Mon, 20 May 2019 07:53:31 +0000 (09:53 +0200)]
Do not use full qualified names if possible.
2019-05-20 Martin Liska <mliska@suse.cz>
* profile-count.h: Do not use full qualified
names if possible.
* profile-count.c (profile_count::to_frequency): Likewise.
From-SVN: r271398
Martin Liska [Mon, 20 May 2019 07:53:18 +0000 (09:53 +0200)]
Use capital letters for enum value names.
2019-05-20 Martin Liska <mliska@suse.cz>
* profile-count.h (enum profile_quality): Use capital letters
for enum value names. Use the adjusted names.
* profile-count.c: Use the adjusted names.
From-SVN: r271397
Richard Biener [Mon, 20 May 2019 07:18:10 +0000 (07:18 +0000)]
re PR middle-end/90518 (ICE: in emit_move_insn, at expr.c:3745 in gcc.dg/gimplefe-40.c)
2019-05-20 Richard Biener <rguenther@suse.de>
PR testsuite/90518
* gcc.dg/gimplefe-40.c: Restrict to targets with appropriate
vector support.
* gcc.dg/gimplefe-41.c: Likewise.
From-SVN: r271396
Andrew Pinski [Mon, 20 May 2019 06:59:06 +0000 (06:59 +0000)]
[PATCH] Fix PR 81721: ICE with PCH and Pragma warning and C++ operator
libcpp/ChangeLog:
2019-05-19 Andrew Pinski <apinski@marvell.com>
PR pch/81721
* lex.c (cpp_token_val_index <case SPELL_OPERATOR>): If tok->flags
has NAMED_OP set, then return CPP_TOKEN_FLD_NODE.
gcc/testsuite/ChangeLog:
2019-05-19 Andrew Pinski <apinski@marvell.com>
PR pch/81721
* g++.dg/pch/operator-1.C: New testcase.
* g++.dg/pch/operator-1.Hs: New file.
From-SVN: r271395
GCC Administrator [Mon, 20 May 2019 00:16:46 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r271394
Segher Boessenkool [Mon, 20 May 2019 00:14:36 +0000 (02:14 +0200)]
rs6000: Delete the "wH" and "wI" constraints
This replaces "wH" by "v", "wI" by "d", and when both are allowed it
uses "wa"; all with isa "p8v".
* config/rs6000/constraints.md (define_register_constraint "wH"):
Delete.
(define_register_constraint "wI"): Delete.
* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
RS6000_CONSTRAINT_wH and RS6000_CONSTRAINT_wI.
* config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
(rs6000_init_hard_regno_mode_ok): Adjust.
* config/rs6000/rs6000.md: Replace "wH" and "wI" constraints by "v"
resp. "d", or with "wa" as appropriate, all with "p8v".
* config/rs6000/vsx.md: Ditto.
* doc/md.texi (Machine Constraints): Adjust.
From-SVN: r271390
Segher Boessenkool [Mon, 20 May 2019 00:13:41 +0000 (02:13 +0200)]
rs6000: Delete the "wy" constraint
This replaces the "wy" constraint by "wa", with isa "p8v". It also
creates a new attribute <Fisa>, used together with all <Fv2>.
* config/rs6000/constraints.md (define_register_constraint "wy"):
Delete.
* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
RS6000_CONSTRAINT_wy.
* config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
(rs6000_init_hard_regno_mode_ok): Adjust.
* config/rs6000/rs6000.md: Replace "wy" constraint by "wa" with "p8v".
Use "<Fisa>" as "isa" in all alternatives that use "<Fv2>".
(define_mode_attr Fisa): New.
* config/rs6000/vsx.md: Replace "wy" constraint by "wa" with "p8v".
* doc/md.texi (Machine Constraints): Adjust.
From-SVN: r271389
Segher Boessenkool [Mon, 20 May 2019 00:12:43 +0000 (02:12 +0200)]
rs6000: Delete the "wu" constraint
This replaces the "wu" constraint by "v", with isa "p8v". Or, in most
cases, use "wa", since the instructions allow all VSX registers, and it
does not change how GCC behaves, so it is clearer that way.
This also delete the unused <Fa>.
* config/rs6000/constraints.md (define_register_constraint "wu"):
Delete.
* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
RS6000_CONSTRAINT_wu.
* config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
(rs6000_init_hard_regno_mode_ok): Adjust.
* config/rs6000/rs6000.md: Replace "wu" constraint by "v" or "wa",
both with "p8v".
(define_mode_attr Fa): Delete.
* config/rs6000/vsx.md: Ditto.
* doc/md.texi (Machine Constraints): Adjust.
From-SVN: r271388
Segher Boessenkool [Mon, 20 May 2019 00:11:34 +0000 (02:11 +0200)]
rs6000: Delete "wJ" and "wK" constraints
This replaces "wJ" by "wI", and "wK by "wH", both with isa "p9v".
* config/rs6000/constraints.md (define_register_constraint "wJ"):
Delete.
(define_register_constraint "wK"): Delete.
* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
RS6000_CONSTRAINT_wJ and RS6000_CONSTRAINT_wK.
* config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
(rs6000_init_hard_regno_mode_ok): Adjust.
* config/rs6000/rs6000.md: Replace "wJ" constraint by "wI" with "p9v".
Replace "wK" constraint by "wH" with "p9v".
* config/rs6000/vsx.md: Ditto.
* doc/md.texi (Machine Constraints): Adjust.
From-SVN: r271387
Segher Boessenkool [Mon, 20 May 2019 00:10:31 +0000 (02:10 +0200)]
rs6000: Delete the "wb" constraint
This replaces the "wb" constraint by "v", with isa "p9v".
* config/rs6000/constraints.md (define_register_constraint "wb"):
Delete.
* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
RS6000_CONSTRAINT_wb.
* config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
(rs6000_init_hard_regno_mode_ok): Adjust.
* config/rs6000/rs6000.md: Replace "wb" constraint by "v" with "p9v".
* config/rs6000/vsx.md: Ditto.
* doc/md.texi (Machine Constraints): Adjust.
From-SVN: r271386
Segher Boessenkool [Mon, 20 May 2019 00:09:34 +0000 (02:09 +0200)]
rs6000: Delete the "wo" constraint
This replaces the "wo" constraint by "wa", with isa "p9v".
* config/rs6000/constraints.md (define_register_constraint "wo"):
Delete.
* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
RS6000_CONSTRAINT_wo.
* config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
(rs6000_init_hard_regno_mode_ok): Adjust.
* config/rs6000/rs6000.md: Replace "wo" constraint by "wa" with "p9v".
* config/rs6000/altivec.md: Ditto.
* doc/md.texi (Machine Constraints): Adjust.
From-SVN: r271385
Janne Blomqvist [Sun, 19 May 2019 19:38:11 +0000 (22:38 +0300)]
libfortran/90038 Reap dead children when wait=.false.
When using posix_spawn or fork to launch a child process, the parent
needs to wait for the child, otherwise the dead child is left as a
zombie process. For this purpose one can install a signal handler for
SIGCHLD.
2019-05-19 Janne Blomqvist <jb@gcc.gnu.org>
PR libfortran/90038
* intrinsics/execute_command_line (sigchld_handler): New function.
(execute_command_line): Install handler for SIGCHLD.
* configure.ac: Check for presence of sigaction and waitpid.
* config.h.in: Regenerated.
* configure: Regenerated.
Regtested on x86_64-pc-linux-gnu.
From-SVN: r271384
Peter Bergner [Sun, 19 May 2019 16:20:44 +0000 (16:20 +0000)]
* MAINTAINERS: Update my email address.
From-SVN: r271382
Paul Thomas [Sun, 19 May 2019 12:32:55 +0000 (12:32 +0000)]
re PR fortran/90498 (ICE with select type/associate and derived type argument containing class(*))
2019-05-19 Paul Thomas <pault@gcc.gnu.org>
PR fortran/90498
* trans-stmt.c (trans_associate_var) Do not use the saved
descriptor if the expression is a COMPONENT_REF.
2019-05-19 Paul Thomas <pault@gcc.gnu.org>
PR fortran/90498
* gfortran.dg/associate_48.f90 : New test.
From-SVN: r271380
Thomas Koenig [Sun, 19 May 2019 11:26:20 +0000 (11:26 +0000)]
re PR fortran/78290 (Gfortran incorrectly creates a copy of an array passed to an array pointer dummy argument)
2019-05-19 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/78290
* gfortran.dg/pr78290.f90: New test.
From-SVN: r271379
Thomas Koenig [Sun, 19 May 2019 11:24:17 +0000 (11:24 +0000)]
re PR fortran/88821 (Inline packing of non-contiguous arguments)
2019-05-19 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/88821
* ChangeLog: Add forgotten entry.
From-SVN: r271378
Thomas Koenig [Sun, 19 May 2019 10:21:06 +0000 (10:21 +0000)]
re PR fortran/88821 (Inline packing of non-contiguous arguments)
2019-05-19 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/88821
* expr.c (gfc_is_simply_contiguous): Return true for
an EXPR_ARRAY.
* trans-array.c (is_pointer): New function.
(gfc_conv_array_parameter): Call gfc_conv_subref_array_arg
when not optimizing and not optimizing for size if the formal
arg is passed by reference.
* trans-expr.c (gfc_conv_subref_array_arg): Add arguments
fsym, proc_name and sym. Add run-time warning for temporary
array creation. Wrap argument if passing on an optional
argument to an optional argument.
* trans.h (gfc_conv_subref_array_arg): Add optional arguments
fsym, proc_name and sym to prototype.
2019-05-19 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/88821
* gfortran.dg/alloc_comp_auto_array_3.f90: Add -O0 to dg-options
to make sure the test for internal_pack is retained.
* gfortran.dg/assumed_type_2.f90: Split compile and run time
tests into this and
* gfortran.dg/assumed_type_2a.f90: New file.
* gfortran.dg/c_loc_test_22.f90: Likewise.
* gfortran.dg/contiguous_3.f90: Likewise.
* gfortran.dg/internal_pack_11.f90: Likewise.
* gfortran.dg/internal_pack_12.f90: Likewise.
* gfortran.dg/internal_pack_16.f90: Likewise.
* gfortran.dg/internal_pack_17.f90: Likewise.
* gfortran.dg/internal_pack_18.f90: Likewise.
* gfortran.dg/internal_pack_4.f90: Likewise.
* gfortran.dg/internal_pack_5.f90: Add -O0 to dg-options
to make sure the test for internal_pack is retained.
* gfortran.dg/internal_pack_6.f90: Split compile and run time
tests into this and
* gfortran.dg/internal_pack_6a.f90: New file.
* gfortran.dg/internal_pack_8.f90: Likewise.
* gfortran.dg/missing_optional_dummy_6: Split compile and run time
tests into this and
* gfortran.dg/missing_optional_dummy_6a.f90: New file.
* gfortran.dg/no_arg_check_2.f90: Split compile and run time tests
into this and
* gfortran.dg/no_arg_check_2a.f90: New file.
* gfortran.dg/typebound_assignment_5.f90: Split compile and run time
tests into this and
* gfortran.dg/typebound_assignment_5a.f90: New file.
* gfortran.dg/typebound_assignment_6.f90: Split compile and run time
tests into this and
* gfortran.dg/typebound_assignment_6a.f90: New file.
* gfortran.dg/internal_pack_19.f90: New file.
* gfortran.dg/internal_pack_20.f90: New file.
* gfortran.dg/internal_pack_21.f90: New file.
From-SVN: r271377
Thomas Koenig [Sun, 19 May 2019 08:22:41 +0000 (08:22 +0000)]
re PR fortran/90329 (Incompatibility between gfortran and C lapack calls)
2019-05-19 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/90329
* invoke.texi: Document -fbroken-callers.
* lang.opt: Add -fbroken-callers.
* trans-decl.c (create_function_arglist): Only set
DECL_HIDDEN_STRING_LENGTH if flag_broken_callers is set.
From-SVN: r271376
GCC Administrator [Sun, 19 May 2019 00:16:18 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r271375
Iain Sandoe [Sat, 18 May 2019 08:44:18 +0000 (08:44 +0000)]
Darwin, objective-c - register gnu-runtime headers correctly.
Darwin is able to use two runtimes for objective-c; the
default is its native "NeXT" runtime, but also it can build
code using the "gnu-runtime". In order to do this, we have to
be able to find the gnu-runtime headers (which are installed
into the compiler's tree).
The process to do this is erroneously prepending the sysroot
to this when a sysroot is in force. The gnu-runtime headers have
never been installed in a Darwin (macOS) SDK so we must make
sure that they are found local to the compiler.
gcc/
2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
* config/darwin-c.c (darwin_register_objc_includes): Do not
prepend the sysroot when building gnu-runtime header search
paths.
From-SVN: r271371
Iain Sandoe [Sat, 18 May 2019 08:27:24 +0000 (08:27 +0000)]
objective-c - add instancetype.
The instancetype has been added as a typedef alias to id
in order to allow diagnosis of cases where a class is used
or returned where an instance is expected.
This adds the typedef, and tests that we can parse it.
It doesn't alter the diagnostics yet.
gcc/objc/
2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
* objc/objc-act.h (OCTI_INSTANCE_TYPE, OCTI_INSTANCETYPE_NAME): New.
(objc_global_trees): Add instance type and name.
(INSTANCE_TYPEDEF_NAME): New.
* objc/objc-act.c (synth_module_prologue): Build decls for
objc_instancetype_type and objc_instancetype_name.
gcc/testsuite/
2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
* objc.dg/instancetype-0.m: New.
From-SVN: r271370
Iain Sandoe [Sat, 18 May 2019 08:07:56 +0000 (08:07 +0000)]
darwin - use switch_to_section instead of asm output.
We have been emitting two section swiches in the Darwin's
file end function. This means that varasm is not updated
which could matter if we elect to reorder some of the file
end operations in support of LTO actions.
2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
* config/darwin.c (darwin_file_end): Use switch_to_section ()
instead of direct output of the asm.
From-SVN: r271369
GCC Administrator [Sat, 18 May 2019 00:16:15 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r271368
Martin Sebor [Fri, 17 May 2019 23:14:09 +0000 (23:14 +0000)]
conv-op1.C: Adjust text of expected messages.
gcc/testsuite/ChangeLog:
* g++.dg/overload/conv-op1.C: Adjust text of expected messages.
* g++.dg/ubsan/pr63956.C: Same.
* g++.old-deja/g++.pt/assign1.C: Same.
From-SVN: r271364
Jonathan Wakely [Fri, 17 May 2019 23:08:00 +0000 (00:08 +0100)]
PR libstdc++/90520 adjust Xmethod for recent unique_ptr changes
PR libstdc++/90520
* python/libstdcxx/v6/printers.py (UniquePointerPrinter.__init__):
Raise exception if unique_ptr tuple member has unknown structure.
* python/libstdcxx/v6/xmethods.py (UniquePtrGetWorker.__call__):
Adjust worker to support new __uniq_ptr_data base class. Do not
assume field called _M_head_impl is the first tuple element.
From-SVN: r271363
Martin Sebor [Fri, 17 May 2019 23:05:58 +0000 (23:05 +0000)]
gcc_diag-11.c: Remove accidentally committed test.
gcc/testsuite/ChangeLog:
* gcc.dg/gcc_diag-11.c: Remove accidentally committed test.
From-SVN: r271362
Segher Boessenkool [Fri, 17 May 2019 22:10:29 +0000 (00:10 +0200)]
rs6000: Some rs6000_emit_epilogue improvements
This uses epilogue_type directly. It also changes some ints to bools,
declares variables later, and simplifies some code.
There is one actual change:
else if (info->push_p
&& DEFAULT_ABI != ABI_V4
- && !crtl->calls_eh_return)
+ && epilogue_type != EPILOGUE_TYPE_EH_RETURN)
{
/* Prevent reordering memory accesses against stack pointer restore. */
(different because calls_eh_return can be true for sibcalls). This is
a bugfix. The code was never exercised.
One place in the epilogue still uses crtl->calls_eh_return. If that
is changed the prologue has to have a corresponding change, and the
emit_prologue function does not have an epilogue_type parameter, so
bail on changing this for now. We might want to do this (saving the
CR fields to separate stack slots) always, not just for functions
calling eh_return, but that will require more investigation.
* config/rs6000/rs6000.c (restore_saved_cr): Change a boolean
argument to be type bool (was int before).
(rs6000_emit_epilogue): Simplify some code. Declare some variables
at first use. Use type bool for some variables. Fix a theoretical
eh_return bug for svr4.
From-SVN: r271361
Segher Boessenkool [Fri, 17 May 2019 21:33:13 +0000 (23:33 +0200)]
rs6000: Add "enabled" attribute
This adds the "enabled" attribute to the rs6000 backend. It uses the
(new) "isa" attribute to automatically select which instruction
alternatives should be enabled.
For now it allows isa strings of "p5", "p6", "p7", meaning the
instructions introduced on that CPU, not requiring vectors; and "p7v",
"p8v", "p9v" for the same, but with vectors.
These are currently mapped to TARGET_POPCNTB, TARGET_CMPB,
TARGET_POPCNTD, TARGET_VSX, TARGET_P8_VECTOR, and TARGET_P9_VECTOR;
that will change to something a bit saner later.
* config/rs6000/rs6000.md (isa): New attribute.
(enabled): New attribute.
From-SVN: r271360
Max Filippov [Fri, 17 May 2019 20:23:49 +0000 (20:23 +0000)]
gcc: aarch64: move assemble_start_function / assemble_end_function
Change that moved assemble_start_function/assemble_end_function to
backends missed aarch64. Fix that.
gcc/
2019-05-17 Max Filippov <jcmvbkbc@gmail.com>
* config/aarch64/aarch64.c (aarch64_output_mi_thunk): Call
assemble_start_function and assemble_end_function.
From-SVN: r271359
Thomas Schwinge [Fri, 17 May 2019 19:13:36 +0000 (21:13 +0200)]
OpenACC Profiling Interface (incomplete)
libgomp/
* acc_prof.h: New file.
* oacc-profiling.c: Likewise.
* Makefile.am (nodist_libsubinclude_HEADERS, libgomp_la_SOURCES):
Add these, respectively.
* Makefile.in: Regenerate.
* env.c (initialize_env): Call goacc_profiling_initialize.
* oacc-plugin.c (GOMP_PLUGIN_goacc_thread)
(GOMP_PLUGIN_goacc_profiling_dispatch): New functions.
* oacc-plugin.h (GOMP_PLUGIN_goacc_thread)
(GOMP_PLUGIN_goacc_profiling_dispatch): Declare.
* libgomp.map (OACC_2.5.1): Add acc_prof_lookup,
acc_prof_register, acc_prof_unregister, and acc_register_library.
(GOMP_PLUGIN_1.3): Add GOMP_PLUGIN_goacc_profiling_dispatch, and
GOMP_PLUGIN_goacc_thread.
* oacc-int.h (struct goacc_thread): Add prof_info, api_info,
prof_callbacks_enabled members.
(goacc_prof_enabled, goacc_profiling_initialize)
(_goacc_profiling_dispatch_p, _goacc_profiling_setup_p)
(goacc_profiling_dispatch): Declare.
(GOACC_PROF_ENABLED, GOACC_PROFILING_DISPATCH_P)
(GOACC_PROFILING_SETUP_P): Define.
* oacc-async.c (acc_async_test, acc_async_test_all, acc_wait)
(acc_wait_async, acc_wait_all, acc_wait_all_async): Update for
OpenACC Profiling Interface.
* oacc-cuda.c (acc_get_current_cuda_device)
(acc_get_current_cuda_context, acc_get_cuda_stream)
(acc_set_cuda_stream): Likewise.
* oacc-init.c (acc_init_1, goacc_attach_host_thread_to_device)
(acc_init, acc_set_device_type, acc_get_device_type)
(acc_get_device_num, goacc_lazy_initialize): Likewise.
* oacc-mem.c (acc_malloc, acc_free, memcpy_tofrom_device)
(acc_deviceptr, acc_hostptr, acc_is_present, acc_map_data)
(acc_unmap_data, present_create_copy, delete_copyout)
(update_dev_host): Likewise.
* oacc-parallel.c (GOACC_parallel_keyed, GOACC_data_start)
(GOACC_data_end, GOACC_enter_exit_data, GOACC_update, GOACC_wait):
Likewise.
* plugin/plugin-nvptx.c (nvptx_exec, nvptx_alloc, nvptx_free)
(GOMP_OFFLOAD_openacc_exec, GOMP_OFFLOAD_openacc_async_exec):
Likewise.
* libgomp.texi: Update.
* testsuite/libgomp.oacc-c-c++-common/acc_prof-dispatch-1.c: New
file.
* testsuite/libgomp.oacc-c-c++-common/acc_prof-init-1.c: Likewise.
* testsuite/libgomp.oacc-c-c++-common/acc_prof-kernels-1.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/acc_prof-parallel-1.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/acc_prof-valid_bytes-1.c:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/acc_prof-version-1.c:
Likewise.
From-SVN: r271346
Thomas Schwinge [Fri, 17 May 2019 19:13:26 +0000 (21:13 +0200)]
[PR89433] Repeated use of the C/C++ OpenACC 'routine' directive
gcc/
PR middle-end/89433
* omp-general.c (oacc_verify_routine_clauses): Change formal
parameters. Add checking if already marked with an OpenACC
'routine' directive. Adjust all users.
gcc/c/
PR c/89433
* c-parser.c (c_finish_oacc_routine): Rework checking if already
marked with an OpenACC 'routine' directive.
gcc/cp/
PR c++/89433
* parser.c (cp_finalize_oacc_routine): Rework checking if already
marked with an OpenACC 'routine' directive.
gcc/testsuite/
PR testsuite/89433
* c-c++-common/goacc/routine-5.c: Update.
* c-c++-common/goacc/routine-level-of-parallelism-1.c: Likewise.
* c-c++-common/goacc/routine-level-of-parallelism-2.c: New file.
From-SVN: r271345
Thomas Schwinge [Fri, 17 May 2019 19:13:15 +0000 (21:13 +0200)]
[PR89433] Use 'oacc_verify_routine_clauses' for C/C++ OpenACC 'routine' directives
gcc/
PR middle-end/89433
* omp-general.c (oacc_build_routine_dims): Move some of its
processing into...
(oacc_verify_routine_clauses): ... this new function.
* omp-general.h (oacc_verify_routine_clauses): New prototype.
gcc/c/
PR c/89433
* c-parser.c (c_parser_oacc_routine): Normalize order of clauses.
(c_finish_oacc_routine): Call oacc_verify_routine_clauses.
gcc/cp/
PR c++/89433
* parser.c (cp_parser_oacc_routine)
(cp_parser_late_parsing_oacc_routine): Normalize order of clauses.
(cp_finalize_oacc_routine): Call oacc_verify_routine_clauses.
gcc/testsuite/
PR testsuite/89433
* c-c++-common/goacc/routine-2.c: Update, and move some test
into...
* c-c++-common/goacc/routine-level-of-parallelism-1.c: ... this
new file.
From-SVN: r271344
Thomas Schwinge [Fri, 17 May 2019 19:13:04 +0000 (21:13 +0200)]
[PR89433] Refer to OpenACC 'routine' clauses from "omp declare target" attribute
gcc/c-family/
PR c/89433
* c-attribs.c (c_common_attribute_table): Set min_len to -1 for
"omp declare target".
gcc/c/
PR c/89433
* c-parser.c (c_finish_oacc_routine): Refer to OpenACC 'routine'
clauses from "omp declare target" attribute.
gcc/cp/
PR c++/89433
* parser.c (cp_finalize_oacc_routine): Refer to OpenACC 'routine'
clauses from "omp declare target" attribute.
gcc/fortran/
PR fortran/89433
* f95-lang.c (gfc_attribute_table): Set min_len to -1 for "omp
declare target".
* trans-decl.c (add_attributes_to_decl): Refer to OpenACC
'routine' clauses from "omp declare target" attribute.
gcc/testsuite/
PR testsuite/89433
* c-c++-common/goacc/classify-routine.c: Update.
* gfortran.dg/goacc/classify-routine.f95: Likewise.
From-SVN: r271343
Iain Sandoe [Fri, 17 May 2019 19:01:29 +0000 (19:01 +0000)]
darwin, powerpc - adjust the formatting of picbase labels
The rest of the Darwin ports now emit Lnnn$pb as the picbase
lable instead of the ancient (and hard to read) "L0000000nnn$pb".
This just updates this part of the rs6000 port, NFC intended.
2019-05-17 Iain Sandoe <iain@sandoe.co.uk>
* config/rs6000/rs6000.c (machopic_output_stub): Adjust the
formatting of picbase labels to match other ports.
From-SVN: r271342
Iain Sandoe [Fri, 17 May 2019 18:51:50 +0000 (18:51 +0000)]
darwin, powerpc - fix whitespace in generated code.
NFC intended, this simply adds a missing tab to the
generaed code.
2019-05-17 Iain Sandoe <iain@sandoe.co.uk>
* config/rs6000/rs6000.c (macho_branch_islands): Fix bad indent
on the generated code.
From-SVN: r271341
Janne Blomqvist [Fri, 17 May 2019 18:18:04 +0000 (21:18 +0300)]
libfortran/90038: Use posix_spawn instead of fork
fork() semantics can be problematic. Most unix style OS'es have
posix_spawn which can be used to replace fork + exec in many cases.
For more information see
e.g. https://www.microsoft.com/en-us/research/uploads/prod/2019/04/fork-hotos19.pdf
This replaces the one use of fork in libgfortran with posix_spawn.
2019-05-17 Janne Blomqvist <jb@gcc.gnu.org>
PR libfortran/90038
* configure.ac (AC_CHECK_FUNCS_ONCE): Check for posix_spawn.
* intrinsics/execute_command_line (execute_command_line): Use
posix_spawn.
* Makefile.in: Regenerated.
* config.h.in: Regenerated.
* configure: Regenerated.
Regtested on x86_64-pc-linux-gnu.
From-SVN: r271340
Thomas Rodgers [Fri, 17 May 2019 18:01:45 +0000 (18:01 +0000)]
Add myself to MAINTAINERS
From-SVN: r271339