]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
5 years agoAdd strftime format checking support for C2x %OB and %Ob (bug 82752).
jsm28 [Fri, 4 Oct 2019 21:56:14 +0000 (21:56 +0000)] 
Add strftime format checking support for C2x %OB and %Ob (bug 82752).

C2x adds strftime %OB and %Ob formats, for alternative forms of month
names (for mainly Slavic languages where a month name on its own is
declined differently from a month name together with a date within
that month).  This patch adds corresponding format checking support.
(glibc support for these formats was added in glibc 2.27.)

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

PR c/82752
gcc/c-family:
* c-format.c (C_STD_VER): Handle C2x.
(C_STD_NAME): Likewise.
(strftime_flag_specs): Add 'O' modifier with 'p' flag.
(time_char_table): Use separate entry for 'B' and 'b', with 'O'
modifier allowed and 'p' flag.
* c-format.h (enum format_std_version): Add STD_C2X.
(struct format_char_info): Mention 'p' in comment on flags2.

gcc/testsuite:
* gcc.dg/format/c2x-strftime-1.c: New test.

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

5 years agoPR middle-end/91977 - missing -Wstringop-overflow on memcpy into a pointer plus offset
msebor [Fri, 4 Oct 2019 21:29:41 +0000 (21:29 +0000)] 
PR middle-end/91977 - missing -Wstringop-overflow on memcpy into a pointer plus offset

gcc/ChangeLog:

PR middle-end/91977
* tree-ssa-strlen.c (count_nonzero_bytes): Handle assignments with
MEM_REF right operand.  Avoid failing for MEM_REF assignments from
uninitialized objects.

gcc/testsuite/ChangeLog:

PR middle-end/91977
* gcc.dg/Wstringop-overflow-18.c: New test.

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

5 years agogcc/ChangeLog:
msebor [Fri, 4 Oct 2019 21:26:27 +0000 (21:26 +0000)] 
gcc/ChangeLog:

* builtins.c (compute_objsize): Add an argument.
* tree-object-size.c (addr_object_size): Same.
(compute_builtin_object_size): Same.
* tree-object-size.h (compute_builtin_object): Same.

gcc/testsuite/ChangeLog:

* gcc.dg/Wstringop-overflow-17.c: New test.

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

5 years ago2019-10-04 Steven G. Kargl <kargl@gcc.gnu.org>
kargl [Fri, 4 Oct 2019 21:21:21 +0000 (21:21 +0000)] 
2019-10-04  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran.91959
* fortran/decl.c (variable_decl): Re-arrange code for matching %FILL.

2019-10-04  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran.91959
* gfortran.dg/pr91959.f90: New test.

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

5 years agoImprove _GLIBCXX_DEBUG safe iterator range size computation.
fdumont [Fri, 4 Oct 2019 20:22:11 +0000 (20:22 +0000)] 
Improve _GLIBCXX_DEBUG safe iterator range size computation.

* include/debug/forward_list
(_Sequence_traits<__debug::forward_list<>>::_S_size): Returns __dp_sign
distance when not empty.
* include/debug/list (_Sequence_traits<__debug::list<>>::_S_size):
Likewise.
* include/debug/helper_functions.h (__dp_sign_max_size): New
_Distance_precision enum entry.
(__valid_range_aux(_IIte, _IIte, _Distance_traits<>::__type,
__false_type)): Adapt.
* include/debug/safe_iterator.tcc
(_Safe_iterator<>::_M_get_distance_to(const _Safe_iterator&)): Review
distance computation.

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

5 years ago * ipa-inline.c (inline_insns_single, inline_insns_auto): Fix typo.
hubicka [Fri, 4 Oct 2019 19:10:39 +0000 (19:10 +0000)] 
* ipa-inline.c (inline_insns_single, inline_insns_auto): Fix typo.

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

5 years ago[preprocessor/91991] column location overflow
nathan [Fri, 4 Oct 2019 19:08:09 +0000 (19:08 +0000)] 
[preprocessor/91991] column location overflow

https://gcc.gnu.org/ml/gcc-patches/2019-10/msg00371.html
PR preprocessor/91991
* line-map.c (linemap_line_start): Clear max_column_hint if we run
out of locations.

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

5 years ago * match.pd (sinh (x) / cosh (x)): New simplification rule.
law [Fri, 4 Oct 2019 18:34:29 +0000 (18:34 +0000)] 
    * match.pd (sinh (x) / cosh (x)): New simplification rule.

        * gcc.dg/sinhovercosh-1.c: New test.

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

5 years ago compiler: include selected constant types during export processing
ian [Fri, 4 Oct 2019 18:14:30 +0000 (18:14 +0000)] 
compiler: include selected constant types during export processing

    The machinery that collects types referenced by expressions that are
    part of inlinable function bodies was missing the types of local named
    constants in certain cases. This patch updates the
    Collect_export_references::expression() hook to look for references to
    local named constants and include their types in the exported set.

    Fixes golang/go#34577.

    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/198017

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

5 years agoAdd missing gimple_call_set_fntype
jamborm [Fri, 4 Oct 2019 16:25:02 +0000 (16:25 +0000)] 
Add missing gimple_call_set_fntype

2019-10-04  Martin Jambor  <mjambor@suse.cz>

* tree-ssa-forwprop.c (simplify_builtin_call): Set gimple call
fntype when switching to calling memcpy instead of memset.

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

5 years ago2019-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
edlinger [Fri, 4 Oct 2019 16:22:28 +0000 (16:22 +0000)] 
2019-10-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * hash-table.h (hash_table::empty_slow): Don't assign
        size_t values to int variables.

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

5 years ago2019-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
edlinger [Fri, 4 Oct 2019 16:21:11 +0000 (16:21 +0000)] 
2019-10-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * expr.c (convert_mode_scalar): Remove shadowing local var.
        (emit_block_move): Rename local vars.
        (block_move_libcall_safe_for_call_parm): Remove shadowing local var.
        (emit_push_insn): Rename local vars.
        (expand_assignment): Fix wrong mode in assign_stack_temp.  Remove
        shadowing local vars.
        (store_constructor): Remove shadowing local vars.  Rename local var.
        (store_field, expand_cond_expr_using_cmove,
        expand_expr_real_2): Remove shadowing local vars.
        (expand_expr_real_1,
        do_store_flag): Remove shadowing local vars.  Rename local vars.

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

5 years ago2019-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
edlinger [Fri, 4 Oct 2019 16:18:22 +0000 (16:18 +0000)] 
2019-10-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * cgraph.h (FOR_EACH_ALIAS): Avoid shadowing the loop variable.

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

5 years ago2019-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
edlinger [Fri, 4 Oct 2019 16:15:00 +0000 (16:15 +0000)] 
2019-10-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * genmatch.c (commutate): Rename local var.
        (lower_cond): Reuse local var.
        (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1,
        dt_operand::gen, dt_operand::gen_gimple_expr,
        dt_simplify::gen): Add a param.  Rename generated vars.
        (decision_tree::insert_operand,
        (capture_info::walk_match, capture_info::walk_result,
        capture_info::walk_c_expr): Rename local vars.
        (expr::gen_transform): Rename generated vars.
        Use snprintf.  Rename local vars.
        (capture::gen_transform, dt_operand::get_name,
        dt_operand::gen_opname): Rename generated vars.
        (write_predicate): Adjust call to gen_kids.
        (parser::get_internal_capture_id): Rename generated vars.
        (parser::parse_expr): Rename local vars.
        (parser::parse_if): Remove local var.
        (parser::parse_pattern, add_operator): Rename local vars.

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

5 years agoMark C2x built-in functions as such.
jsm28 [Fri, 4 Oct 2019 16:08:06 +0000 (16:08 +0000)] 
Mark C2x built-in functions as such.

Various built-in functions that GCC has as extensions are now standard
functions in C2x.  This patch adds DEF_C2X_BUILTIN and uses it to mark
them as such.  Some of the so-marked functions were previously
DEF_EXT_LIB_BUILTIN, while some DFP ones were DEF_GCC_BUILTIN
(i.e. __builtin_* only); both sets become DEF_C2X_BUILTIN.  This in
turn requires flag_isoc2x to be defined in various front ends using
builtins.def.

As the semantics of the built-in functions should already be tested,
the tests added only verify that they are declared in C2x mode but not
in C11 mode.  The test of DFP built-in functions being declared for
C2x goes in gcc.dg/dfp/, as while such built-in functions currently
don't depend on whether DFP is supported, that looks like a bug to me
(see bug 91985), so it seems best for the tests not to depend on
exactly how that bug might be fixed.

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

gcc:
* builtins.def (DEF_C2X_BUILTIN): New macro.
(exp10, exp10f, exp10l, fabsd32, fabsd64, fabsd128, nand32)
(nand64, nand128, roundeven, roundevenf, roundevenl, strdup)
(strndup): Use DEF_C2X_BUILTIN.
* coretypes.h (enum function_class): Add function_c2x_misc.

gcc/ada:
* gcc-interface/utils.c (flag_isoc2x): New variable.

gcc/brig:
* brig-lang.c (flag_isoc2x): New variable.

gcc/lto:
* lto-lang.c (flag_isoc2x): New variable.

gcc/testsuite:
* gcc.dg/c11-builtins-1.c, gcc.dg/c2x-builtins-1.c,
gcc.dg/dfp/c2x-builtins-dfp-1.c: New tests.

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

5 years ago * ira-color.c (update_costs_from_allocno): Call
law [Fri, 4 Oct 2019 15:43:07 +0000 (15:43 +0000)] 
* ira-color.c (update_costs_from_allocno): Call
ira_init_register_move_cost_if_necessary.

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

5 years agoBuild filesystem library with large file support
redi [Fri, 4 Oct 2019 15:08:23 +0000 (15:08 +0000)] 
Build filesystem library with large file support

Enable AC_SYS_LARGEFILE to set the macros needed for large file APIs to
be used by default. We do not want to define those macros in the
public headers that users include. The values of the macros are copied
to a separate file that is only included by the filesystem sources
during the build, and then the macros in <bits/c++config.h> are renamed
so that they don't have any effect in user code including our headers.

Also use larger type for result of filesystem::file_size to avoid
truncation of large values on 32-bit systems (PR 91947).

PR libstdc++/81091
PR libstdc++/91947
* configure.ac: Use AC_SYS_LARGEFILE to enable 64-bit file APIs.
* config.h.in: Regenerate:
* configure: Regenerate:
* include/Makefile.am (${host_builddir}/largefile-config.h): New
target to generate config header for filesystem library.
(${host_builddir}/c++config.h): Rename macros for large file support.
* include/Makefile.in: Regenerate.
* src/c++17/fs_dir.cc: Include new config header.
* src/c++17/fs_ops.cc: Likewise.
(filesystem::file_size): Use uintmax_t for size.
* src/filesystem/dir.cc: Include new config header.
* src/filesystem/ops.cc: Likewise.
(experimental::filesystem::file_size): Use uintmax_t for size.

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

5 years agoReplace uses of std::tr1::unordered_map in testsuite
redi [Fri, 4 Oct 2019 15:08:14 +0000 (15:08 +0000)] 
Replace uses of std::tr1::unordered_map in testsuite

* testsuite/util/testsuite_abi.h: Use std::unordered_map instead of
std::tr1::unordered_map.
* testsuite/util/testsuite_allocator.h: Likewise.

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

5 years ago * config/h8300/h8300.md (cpymemsi): Disable.
law [Fri, 4 Oct 2019 14:45:46 +0000 (14:45 +0000)] 
* config/h8300/h8300.md (cpymemsi): Disable.
(movmd, movmd_internal_<mode>, movstr, movsd):
(movstr, movsd, stpcpy_internal_<mode>: Likewise.
(movmd splitter, movsd splitter): Likewise.

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

5 years ago * range-op.cc (range_tests): Avoid two tests when ints and
law [Fri, 4 Oct 2019 14:27:45 +0000 (14:27 +0000)] 
* range-op.cc (range_tests): Avoid two tests when ints and
shorts are the same size.

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

5 years agoReplace test cases for using automatic variables in equivalence statements.
markeggleston [Fri, 4 Oct 2019 14:11:36 +0000 (14:11 +0000)] 
Replace test cases for using automatic variables in equivalence statements.

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

5 years ago compiler: adjust code to avoid shadowing local variables
ian [Fri, 4 Oct 2019 13:50:07 +0000 (13:50 +0000)] 
compiler: adjust code to avoid shadowing local variables

    Also add a couple of missing calls to free after mpz_get_str.

    This should make the code clean with respect to -Wshadow=local.

    Based on patch by Bernd Edlinger.

    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/198837

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

5 years agoFix gcc.target/aarch64/torture/simd-abi-8.c for big-endian
rsandifo [Fri, 4 Oct 2019 13:27:53 +0000 (13:27 +0000)] 
Fix gcc.target/aarch64/torture/simd-abi-8.c for big-endian

Fix a big-endian failure reported by Christophe.  Also tighten the
test so that it doesn't allow saving and restoring 128-bit vectors
as Q registers.

2019-10-04  Richard Sandiford  <richard.sandiford@arm.com>

gcc/testsuite/
* gcc.target/aarch64/torture/simd-abi-8.c: Use -mlittle-endian.
Check that there are no Q register saves or restores.

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

5 years agoAdd missing header required by previous change
redi [Fri, 4 Oct 2019 13:17:54 +0000 (13:17 +0000)] 
Add missing header required by previous change

* include/tr1/hashtable.h: Add header for __gnu_cxx::__alloc_traits.

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

5 years agoAdjust tr1::_Hashtable to work with std::allocator in C++20
redi [Fri, 4 Oct 2019 12:17:01 +0000 (12:17 +0000)] 
Adjust tr1::_Hashtable to work with std::allocator in C++20

In C++20 std::allocator will no longer define construct and destroy
member functions, so using them needs to go via allocator_traits.

* include/tr1/hashtable.h (tr1::_Hashtable::_M_allocate_node): Use
__gnu_cxx::__alloc_traits for allocator construct function.
(tr1::_Hashtable::_M_deallocate_node): Likewise for destroy function.

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

5 years agoAdd <span> to <bits/stdc++.h> precompiled header
redi [Fri, 4 Oct 2019 12:16:56 +0000 (12:16 +0000)] 
Add <span> to <bits/stdc++.h> precompiled header

* include/precompiled/stdc++.h: Include <span> for C++20.
* testsuite/17_intro/names.cc: Do not define 'e' for C++20.

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

5 years ago2019-10-04 Richard Biener <rguenther@suse.de>
rguenth [Fri, 4 Oct 2019 11:40:40 +0000 (11:40 +0000)] 
2019-10-04  Richard Biener  <rguenther@suse.de>

* gcc.c-torture/execute/loop-3.c: Fix undefined behavior.

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

5 years ago2019-10-04 Richard Biener <rguenther@suse.de>
rguenth [Fri, 4 Oct 2019 11:37:16 +0000 (11:37 +0000)] 
2019-10-04  Richard Biener  <rguenther@suse.de>

PR lto/91968
* tree.c (find_decls_types_r): Do not remove LABEL_DECLs from
BLOCK_VARS.

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

5 years agoFix gcc.target/aarch64/sve2/shracc_1.c for ILP32
rsandifo [Fri, 4 Oct 2019 10:40:47 +0000 (10:40 +0000)] 
Fix gcc.target/aarch64/sve2/shracc_1.c for ILP32

2019-10-04  Yuliang Wang  <yuliang.wang@arm.com>

gcc/testsuite/
* gcc.target/aarch64/sve2/shracc_1.c: Tighten scan-assembler-nots
to avoid matching scalar code.

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

5 years ago[Fortran] Fix column of %C diagnostic location
burnus [Fri, 4 Oct 2019 09:29:31 +0000 (09:29 +0000)] 
[Fortran] Fix column of %C diagnostic location

        gcc/fortran/
        * error (error_print, gfc_format_decoder): Fix off-by one issue with %C.

        gcc/testsuite/
        * gfortran.dg/use_without_only_1.f90: Update column num in dg-warning.

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

5 years ago2019-10-04 Richard Biener <rguenther@suse.de>
rguenth [Fri, 4 Oct 2019 09:18:26 +0000 (09:18 +0000)] 
2019-10-04  Richard Biener  <rguenther@suse.de>

PR tree-optimization/91982
* tree-vect-loop.c (vectorizable_live_operation): Also guard
against EXTRACT_LAST_REDUCTION.
* tree-vect-stmts.c (vect_transform_stmt): Likewise.

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

5 years agoAdjust various comments and rename some functions in range-op.cc to
aldyh [Fri, 4 Oct 2019 07:08:56 +0000 (07:08 +0000)] 
Adjust various comments and rename some functions in range-op.cc to
improve readability.

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

5 years ago PR c++/71504
jakub [Fri, 4 Oct 2019 06:56:02 +0000 (06:56 +0000)] 
PR c++/71504
* constexpr.c (cxx_fold_indirect_ref_1): New function.
(cxx_fold_indirect_ref): Use it.

* g++.dg/cpp0x/constexpr-array21.C: New test.
* g++.dg/cpp1y/constexpr-array7.C: New test.
* g++.dg/cpp1z/constexpr-array1.C: New test.

2019-10-04  Jason Merrill  <jason@redhat.com>

PR c++/71504
* g++.dg/cpp0x/constexpr-array20.C: New test.

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

5 years ago PR c++/91974
jakub [Fri, 4 Oct 2019 06:54:05 +0000 (06:54 +0000)] 
PR c++/91974
* cp-gimplify.c (cp_gimplify_expr) <case CALL_EXPR>: For
-fstrong-eval-order ensure CALL_EXPR_FN side-effects are evaluated
before any arguments.  Additionally, ensure CALL_EXPR_FN that isn't
invariant nor OBJ_TYPE_REF nor SSA_NAME is forced into a temporary.

* g++.dg/cpp1z/eval-order5.C: New test.

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

5 years ago2019-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
edlinger [Fri, 4 Oct 2019 05:42:08 +0000 (05:42 +0000)] 
2019-10-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * doc/invoke.texi (-Wshadow=global, -Wshadow=local,
        -Wshadow=compatible-local): Fix description.
        Add an example where -Wshadow=compatible-local does not
        warn.

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

5 years agoDaily bump.
gccadmin [Fri, 4 Oct 2019 00:16:26 +0000 (00:16 +0000)] 
Daily bump.

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

5 years ago * config/pa/fptr.c: Disable -Warray-bounds warning.
danglin [Thu, 3 Oct 2019 23:51:42 +0000 (23:51 +0000)] 
* config/pa/fptr.c: Disable -Warray-bounds warning.

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

5 years ago * config/pa/pa.h (MAX_PCREL17F_OFFSET): Adjust.
danglin [Thu, 3 Oct 2019 23:32:53 +0000 (23:32 +0000)] 
* config/pa/pa.h (MAX_PCREL17F_OFFSET): Adjust.

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

5 years ago * config/pa/pa.c (pa_output_call): Remove 64-bit sibcall sequence.
danglin [Thu, 3 Oct 2019 22:39:49 +0000 (22:39 +0000)] 
* config/pa/pa.c (pa_output_call): Remove 64-bit sibcall sequence.
(pa_attr_length_call): Adjust length for 64-bit plabel sequence.

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

5 years ago2019-10-03 Aaron Sawdey <acsawdey@linux.ibm.com>
acsawdey [Thu, 3 Oct 2019 22:19:14 +0000 (22:19 +0000)] 
2019-10-03  Aaron Sawdey <acsawdey@linux.ibm.com>

* expr.c (emit_block_move_hints): Slightly cleaner fix to
can_move_by_pieces issue.

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

5 years ago * rust-demangle.c (looks_like_rust): Remove.
law [Thu, 3 Oct 2019 21:54:47 +0000 (21:54 +0000)] 
* rust-demangle.c (looks_like_rust): Remove.
(rust_is_mangled): Don't check escapes.
(is_prefixed_hash): Allow 0-9a-f permutations.
(rust_demangle_sym): Don't bail on unknown escapes.
* testsuite/rust-demangle-expected: Update 'main::$99$' test.

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

5 years ago2019-10-03 Steven G. Kargl <kargl@gcc.gnu.org>
kargl [Thu, 3 Oct 2019 20:46:26 +0000 (20:46 +0000)] 
2019-10-03  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/91497
* simplify.c (gfc_simplify_dble, simplify_intconv, gfc_simplify_real,
gfc_simplify_sngl): Disable -Wconversion and -Wconversion-extra
warnings for explicit conversion of literal constants.

2019-10-03  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/91497
* gfortran.dg/pr91497.f90: New test.

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

5 years ago[Darwin] Pick up SDKROOT as the sysroot fallback.
iains [Thu, 3 Oct 2019 20:19:18 +0000 (20:19 +0000)] 
[Darwin] Pick up SDKROOT as the sysroot fallback.

For compatibility with xcrun and the behaviour of the clang driver, make use
of the setting of the SDKROOT environment variable when it is available.
This applies to both finding headers and libraries (i.e. it is also passed to
ld64).

Priority:
 1. User's command-line specified --sysroot= or -isysroot.
 2. The SDKROOT variable when set, and validated.
 3. Any sysroot provided by --with-sysroot= configuration parameter.

SDKROOT is checked thus:
  1. Presence.
  2. That it starts with "/" (i.e. 'absolute').
  3. That it is not "/" only (since that's the default).
  4. That it is readable by the process executing the driver.

This is pretty much the same rule set as used by the clang driver.

NOTE: (3) might turn out to be overly restrictive in the case that we
have configured with --with-sysroot= and then we want to run on a system
with an installation of the headers/libraries in /.  We can revisit this
if that turns out to be an important use-case.

So one can do:

xcrun --sdk macosx /path/to/gcc ....

and that provides the SDK path as the sysroot to GCC as expected.

CAVEAT: An unfortunate effect of the fact that "gcc" (and "g++") are
executables in the Xcode installation, which are found ahead of any such
named in the $PATH:

PATH=/path/to/gcc/install:$PATH
xcrun --sdk macosx gcc ....

does *not* work, instead that executes the clang from the xcode/commmand
line tools installation.

PATH=/path/to/gcc/install:$PATH
xcrun --sdk macosx x64_64-apple-darwinXX-gcc ...

does work as expected, however.

gcc/ChangeLog:

2019-10-03  Iain Sandoe  <iain@sandoe.co.uk>

PR target/87243
* config/darwin-driver.c (maybe_get_sysroot_from_sdkroot): New.
(darwin_driver_init): Use the sysroot provided by SDKROOT when that
is available and the user has not set one on the command line.

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

5 years ago * g++.dg/tree-ssa/pr61034.C: Add --param max-inline-insns-single-O2=200.
hubicka [Thu, 3 Oct 2019 19:45:23 +0000 (19:45 +0000)] 
* g++.dg/tree-ssa/pr61034.C: Add --param max-inline-insns-single-O2=200.

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

5 years agoFix PR target/91769
draganm [Thu, 3 Oct 2019 19:17:20 +0000 (19:17 +0000)] 
Fix PR target/91769

This fixes the issue by checking that addr's base reg is not part of dest
multiword reg instead just checking the first reg of dest.

gcc/ChangeLog:

2019-10-03  Dragan Mladjenovic  <dmladjenovic@wavecomp.com>

PR target/91769
* config/mips/mips.c (mips_split_move): Use reg_overlap_mentioned_p
instead of REGNO equality check on addr.reg.

gcc/testsuite/ChangeLog:

2019-10-03  Dragan Mladjenovic  <dmladjenovic@wavecomp.com>

PR target/91769
* gcc.target/mips/pr91769.c: New test.

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

5 years agoLibgomp magic offset value self-documentation
jules [Thu, 3 Oct 2019 17:48:36 +0000 (17:48 +0000)] 
Libgomp magic offset value self-documentation

2019-10-02  Julian Brown  <julian@codesourcery.com>
    Cesar Philippidis  <cesar@codesourcery.com>

libgomp/
* libgomp.h (OFFSET_INLINED, OFFSET_POINTER, OFFSET_STRUCT): Define.
* target.c (FIELD_TGT_EMPTY): Define.
(gomp_map_val): Use OFFSET_* macros instead of magic constants.  Write
as switch instead of list of ifs.
(gomp_map_vars_internal): Use OFFSET_* and FIELD_TGT_EMPTY macros.

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

5 years ago2019-10-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
edlinger [Thu, 3 Oct 2019 17:03:43 +0000 (17:03 +0000)] 
2019-10-03  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * primary.c (match_real_constant): Remove shadowing local vars.
        Rename local vars.  Fix undefined behavior in loop termination.
        (gfc_convert_to_structure_constructor): Rename local var.

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

5 years ago * params.def (PARAM_INLINE_HEURISTICS_HINT_PERCENT,
hubicka [Thu, 3 Oct 2019 15:08:21 +0000 (15:08 +0000)] 
* params.def (PARAM_INLINE_HEURISTICS_HINT_PERCENT,
PARAM_INLINE_HEURISTICS_HINT_PERCENT_O2): New.
* doc/invoke.texi (inline-heuristics-hint-percent,
inline-heuristics-hint-percent-O2): Document.
* tree-inline.c (inline_insns_single, inline_insns_auto): Add new
hint attribute.
(can_inline_edge_by_limits_p): Use it.

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

5 years agoAvoid reserved identifier in include/parallel/multiway_merge.h
ro [Thu, 3 Oct 2019 14:35:35 +0000 (14:35 +0000)] 
Avoid reserved identifier in include/parallel/multiway_merge.h

* include/parallel/multiway_merge.h (_RAIter3): Replace _C by _Cp.

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

5 years agoCheck init_priority in g++.dg/cpp0x/gen-attrs-67.C
ro [Thu, 3 Oct 2019 13:23:52 +0000 (13:23 +0000)] 
Check init_priority in g++.dg/cpp0x/gen-attrs-67.C

gcc/testsuite:
* g++.dg/cpp0x/gen-attrs-67.C: Expect constructor priorities error
on any !init_priority target.

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

5 years ago[arm] Fix rtl-checking failure in arm_print_value
rsandifo [Thu, 3 Oct 2019 13:05:31 +0000 (13:05 +0000)] 
[arm] Fix rtl-checking failure in arm_print_value

Noticed while debugging the arm bootstrap failure.

2019-10-03  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* config/arm/arm.c (arm_print_value): Use real_to_decimal
to print CONST_DOUBLEs.

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

5 years agoPR jit/91928
akrl [Thu, 3 Oct 2019 12:39:55 +0000 (12:39 +0000)] 
PR jit/91928

* ipa-cp.c (ipa_cp_c_finalize): Release ipcp_transformation_sum.
* ipa-prop.c (ipcp_free_transformation_sum): New function.
* ipa-prop.h (ipcp_free_transformation_sum): Add declaration.

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

5 years ago2019-10-03 Thomas Koenig <tkoenig@gcc.gnu.org>
tkoenig [Thu, 3 Oct 2019 12:39:42 +0000 (12:39 +0000)] 
2019-10-03  Thomas Koenig <tkoenig@gcc.gnu.org>

PR fortran/84487
* trans-decl.c (gfc_get_symbol_decl): For __def_init, set
DECL_ARTIFICAL and do not set TREE_READONLY.

2019-10-03  Thomas Koenig <tkoenig@gcc.gnu.org>

PR fortran/84487
* gfortran.dg/typebound_call_22.f03: xfail.

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

5 years agoCharacter typenames in errors and warnings
markeggleston [Thu, 3 Oct 2019 09:40:23 +0000 (09:40 +0000)] 
Character typenames in errors and warnings

Character type names now incorporate length, kind is only shown if
the default character is not being used.

Examples:

  character(7) is reported as CHARACTER(7)
  character(len=20,kind=4) is reported as CHARACTER(20,4)

dummy character variables with assumed length:

  character(*) is reported as CHARACTER(*)
  character(*,kind=4) is reported as CHARACTER(*,4)

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

5 years ago * Makefile.in (OBJS): Add range.o and range-op.o.
aldyh [Thu, 3 Oct 2019 08:08:50 +0000 (08:08 +0000)] 
* Makefile.in (OBJS): Add range.o and range-op.o.
Remove wide-int-range.o.
* function-tests.c (test_ranges): New.
(function_tests_c_tests): Call test_ranges.
* ipa-cp.c (ipa_vr_operation_and_type_effects): Call
range_fold_unary_expr instead of extract_range_from_unary_expr.
* ipa-prop.c (ipa_compute_jump_functions_for_edge): Same.
* range-op.cc: New file.
* range-op.h: New file.
* range.cc: New file.
* range.h: New file.
* selftest.h (range_tests): New prototype.
* ssa.h: Include range.h.
* tree-vrp.c (value_range_base::value_range_base): New
constructors.
(value_range_base::singleton_p): Do not call
ranges_from_anti_range until sure we will need to.
(value_range_base::type): Rename gcc_assert to
gcc_checking_assert.
(vrp_val_is_max): New argument.
(vrp_val_is_min): Same.
(wide_int_range_set_zero_nonzero_bits): Move from
wide-int-range.cc.
(extract_range_into_wide_ints): Remove.
(extract_range_from_multiplicative_op): Remove.
(extract_range_from_pointer_plus_expr): Abstract POINTER_PLUS code
from extract_range_from_binary_expr.
(extract_range_from_plus_minus_expr): Abstract PLUS/MINUS code
from extract_range_from_binary_expr.
(extract_range_from_binary_expr): Remove.
(normalize_for_range_ops): New.
(range_fold_binary_expr): New.
(range_fold_unary_expr): New.
(value_range_base::num_pairs): New.
(value_range_base::lower_bound): New.
(value_range_base::upper_bound): New.
(value_range_base::upper_bound): New.
(value_range_base::contains_p): New.
(value_range_base::invert): New.
(value_range_base::union_): New.
(value_range_base::intersect): New.
(range_compatible_p): New.
(value_range_base::operator==): New.
(determine_value_range_1): Call range_fold_*expr instead of
extract_range_from_*expr.
* tree-vrp.h (class value_range_base): Add new constructors.
Add methods for union_, intersect, operator==, contains_p,
num_pairs, lower_bound, upper_bound, invert.
(vrp_val_is_min): Add handle_pointers argument.
(vrp_val_is_max): Same.
(extract_range_from_unary_expr): Remove.
(extract_range_from_binary_expr): Remove.
(range_fold_unary_expr): New.
(range_fold_binary_expr): New.
* vr-values.c (vr_values::extract_range_from_binary_expr): Call
range_fold_binary_expr instead of extract_range_from_binary_expr.
(vr_values::extract_range_basic): Same.
(vr_values::extract_range_from_unary_expr): Call
range_fold_unary_expr instead of extract_range_from_unary_expr.
* wide-int-range.cc: Remove.
* wide-int-range.h: Remove.

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

5 years agoUndo unintended change to predicates.md in subversion id 276498
meissner [Thu, 3 Oct 2019 00:17:56 +0000 (00:17 +0000)] 
Undo unintended change to predicates.md in subversion id 276498

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

5 years agoDaily bump.
gccadmin [Thu, 3 Oct 2019 00:16:19 +0000 (00:16 +0000)] 
Daily bump.

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

5 years agoUse the SIGNED_16BIT_OFFSET_EXTRA_P macro for 16-bit signed tests.
meissner [Thu, 3 Oct 2019 00:13:40 +0000 (00:13 +0000)] 
Use the SIGNED_16BIT_OFFSET_EXTRA_P macro for 16-bit signed tests.

2019-10-02   Michael Meissner  <meissner@linux.ibm.com>

* config/rs6000/rs6000.c (mem_operand_gpr): Use
SIGNED_16BIT_OFFSET_EXTRA_P.
(mem_operand_ds_form): Use SIGNED_16BIT_OFFSET_EXTRA_P.
(rs6000_mode_dependent_address): Use SIGNED_16BIT_OFFSET_EXTRA_P.

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

5 years agoDefine WIDTH macros for C2x.
jsm28 [Wed, 2 Oct 2019 23:50:58 +0000 (23:50 +0000)] 
Define WIDTH macros for C2x.

As part of the integration of TS 18661-1 into C2x, many features
became unconditional features not depending on any feature test macro
being defined.  This patch updates the conditionals on the *_WIDTH
macros in limits.h and stdint.h accordingly so that they are defined
for C2x.  The macro CR_DECIMAL_DIG in float.h does still require
__STDC_WANT_IEC_60559_BFP_EXT__ to be defined, and a test for this is
added.

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

gcc:
* ginclude/stdint-gcc.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Change
condition on WIDTH macros to [__STDC_WANT_IEC_60559_BFP_EXT__ ||
(__STDC_VERSION__ && __STDC_VERSION__ > 201710L)].
* glimits.h: Likewise.

gcc/testsuite:
* gcc.dg/cr-decimal-dig-2.c: New test.
* gcc.dg/limits-width-2.c: New test.  Based on limits-width-1.c.
* gcc.dg/stdint-width-2.c: New test.  Based on stdint-width-1.c.

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

5 years ago/cp
paolo [Wed, 2 Oct 2019 23:23:51 +0000 (23:23 +0000)] 
/cp
2019-10-03  Paolo Carlini  <paolo.carlini@oracle.com>

* init.c (build_new): Use cp_expr_loc_or_input_loc in two places.
* name-lookup.c (do_pushdecl): Use DECL_SOURCE_LOCATION.
(push_class_level_binding_1): Likewise.
(set_decl_namespace): Likewise.

/testsuite
2019-10-03  Paolo Carlini  <paolo.carlini@oracle.com>

* g++.dg/diagnostic/integral-array-size-1.C: New.
* g++.dg/cpp0x/alias-decl-1.C: Test location(s) too.
* g++.dg/init/new43.C: Likewise.
* g++.dg/lookup/friend12.C: Likewise.
* g++.dg/lookup/pr79766.C: Likewise.
* g++.dg/lookup/pr84375.C: Likewise.
* g++.dg/other/new-size-type.C: Likewise.

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

5 years ago PR rtl-optimization/91976
jakub [Wed, 2 Oct 2019 22:33:39 +0000 (22:33 +0000)] 
PR rtl-optimization/91976
* expr.c (emit_block_move_hints): Don't call can_move_by_pieces if
size is not CONST_INT_P, set pieces_ok to false in that case.  Simplify
CONST_INT_P (size) && pieces_ok to pieces_ok.  Formatting fix.

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

5 years ago * constexpr.c (cxx_eval_constant_expression) <case CLEANUP_STMT>: If
jakub [Wed, 2 Oct 2019 22:32:56 +0000 (22:32 +0000)] 
* constexpr.c (cxx_eval_constant_expression) <case CLEANUP_STMT>: If
not skipping upon entry to body, run cleanup with the same *jump_target
as it started to run the cleanup even if the body returns, breaks or
continues.
(potential_constant_expression_1): Allow CLEANUP_STMT.

* g++.dg/ext/constexpr-attr-cleanup1.C: New test.

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

5 years ago * constexpr.c (cxx_eval_store_expression): Formatting fix. Handle
jakub [Wed, 2 Oct 2019 22:31:58 +0000 (22:31 +0000)] 
* constexpr.c (cxx_eval_store_expression): Formatting fix.  Handle
const_object_being_modified with array type.

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

5 years agoAdd changelog entries for r276491.
msebor [Wed, 2 Oct 2019 22:04:00 +0000 (22:04 +0000)] 
Add changelog entries for r276491.

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

5 years agoPR tree-optimization/80936 - bcmp, bcopy, and bzero not declared nonnull
msebor [Wed, 2 Oct 2019 22:00:42 +0000 (22:00 +0000)] 
PR tree-optimization/80936 - bcmp, bcopy, and bzero not declared nonnull

gcc/testsuite/ChangeLog:

PR tree-optimization/80936
* gcc.dg/Wnonnull-2.c: New test.
* gcc.dg/Wnonnull-3.c: New test.
* gcc.dg/nonnull-3.c: Expect more warnings.

gcc/ChangeLog:

PR tree-optimization/80936
* builtins.def (bcmp, bcopy, bzero): Declare nonnull.

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

5 years agoFix ALL_REGS thinko in initialisation of function_used_regs
rsandifo [Wed, 2 Oct 2019 21:19:35 +0000 (21:19 +0000)] 
Fix ALL_REGS thinko in initialisation of function_used_regs

My change to the -fipa-ra bookkeeping used ALL_REGS as the supposedly
safe default assumption, but ALL_REGS isn't literally all registers,
just a close approximation.

This caused a bootstrap failure on arm-linux-gnu, where the condition
code register isn't in ALL_REGS and so was being masked out of some
call-clobbered sets.

2019-10-02  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* cgraph.c (cgraph_node::rtl_info): Use SET_HARD_REG_SET
instead of reg_class_contents[ALL_REGS].

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

5 years ago runtime: mark go-context.S as no-executable-stack and split-stack supported
ian [Wed, 2 Oct 2019 20:11:35 +0000 (20:11 +0000)] 
runtime: mark go-context.S as no-executable-stack and split-stack supported

    The .note.GNU-stack section tells the linker that this object does not
    require an executable stack.

    The .note.GNU-split-stack section tells the linker that functions in
    this object can be called directly by split-stack functions, without
    require a large stack.

    The .note.GNU-no-split-stack section tells the linker that functions
    in this object do not have a split-stack prologue.

    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/198440

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

5 years agoImprove C++ fold caching efficiency.
jason [Wed, 2 Oct 2019 20:01:42 +0000 (20:01 +0000)] 
Improve C++ fold caching efficiency.

While looking at concepts caching I noticed that we were clearing the caches
unnecessarily for non-constant initialization, which shouldn't affect
folding.

* typeck2.c (store_init_value): Only clear_cv_and_fold_caches if the
value is constant.

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

5 years ago Add some hash_map_safe_* functions like vec_safe_*.
jason [Wed, 2 Oct 2019 19:26:47 +0000 (19:26 +0000)] 
Add some hash_map_safe_* functions like vec_safe_*.

gcc/
* hash-map.h (default_hash_map_size): New variable.
(create_ggc): Use it as default argument.
(hash_map_maybe_create, hash_map_safe_get)
(hash_map_safe_get_or_insert, hash_map_safe_put): New fns.
gcc/cp/
* constexpr.c (maybe_initialize_fundef_copies_table): Remove.
(get_fundef_copy): Use hash_map_safe_get_or_insert.
* cp-objcp-common.c (cp_get_debug_type): Use hash_map_safe_*.
* decl.c (store_decomp_type): Remove.
(cp_finish_decomp): Use hash_map_safe_put.
* init.c (get_nsdmi): Use hash_map_safe_*.
* pt.c (store_defaulted_ttp, lookup_defaulted_ttp): Remove.
(add_defaults_to_ttp): Use hash_map_safe_*.

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

5 years agoTestsuite, remove alloca header
andreast [Wed, 2 Oct 2019 19:05:35 +0000 (19:05 +0000)] 
Testsuite, remove alloca header

2019-10-02  Andreas Tobler  <andreast@gcc.gnu.org>

* testsuite/libgomp.oacc-c-c++-common/loop-default.h: Remove alloca.h
include. Replace alloca () with __builtin_alloca ().
* testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: Likewise.

Reviewed-by: Thomas Schwinge <thomas@codesourcery.com>
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@276479 138bc75d-0d04-0410-961f-82ee72b054a4

5 years ago2019-10-02 Steven G. Kargl <kargl@gcc.gnu.org>
kargl [Wed, 2 Oct 2019 17:17:55 +0000 (17:17 +0000)] 
2019-10-02  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/91784
* simplify.c (gfc_convert_constant): Simplify expression if the
expres ion type is EXPR_OP.

2019-10-02  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/91784
* gfortran.dg/pr91784.f90: New test.

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

5 years ago2019-10-02 Steven G. Kargl <kargl@gcc.gnu.org>
kargl [Wed, 2 Oct 2019 17:09:45 +0000 (17:09 +0000)] 
2019-10-02  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/91785
* primary.c (gfc_match_varspec): Ensure an inquiry parameter has
it locus set.

2019-10-02  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/91785
* gfortran.dg/pr91785.f90: New test.

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

5 years ago2019-10-02 Steven G. Kargl <kargl@gcc.gnu.org>
kargl [Wed, 2 Oct 2019 17:04:57 +0000 (17:04 +0000)] 
2019-10-02  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/91942
* io.c (match_vtag): Check for non-NULL result->symtree.
(match_out_tag): Check for invalid constant due to inquiry parameter.
(match_filepos): Instead of a syntax error, go to cleanup to get better
error messages.

2019-10-02  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/91942
* gfortran.dg/pr91587.f90: Update dg-error regex.
* gfortran.dg/pr91942.f90: New test.

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

5 years ago2019-10-02 Steven G. Kargl <kargl@gcc.gnu.org>
kargl [Wed, 2 Oct 2019 17:01:30 +0000 (17:01 +0000)] 
2019-10-02  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/91943
* match.c (gfc_match_call): BOZ cannot be an actual argument in
a subroutine reference.
* resolve.c (resolve_function): BOZ cannot be an actual argument in
a function reference.

2019-10-02  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/91943
gfortran.dg/pr91943.f90

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

5 years ago * cif-code.def (MAX_INLINE_INSNS_SINGLE_O2_LIMIT,
hubicka [Wed, 2 Oct 2019 16:02:16 +0000 (16:02 +0000)] 
* cif-code.def (MAX_INLINE_INSNS_SINGLE_O2_LIMIT,
MAX_INLINE_INSNS_AUTO_O2_LIMIT): New.
* ipa-inline.c (inline_insns_single, inline_insns_auto): New functions.
(can_inline_edge_by_limits_p): Use it.
(big_speedup_p): Use PARAM_INLINE_MIN_SPEEDUP_O2.
(want_inline_small_function_p): Use O2 bounds.
(edge_badness): LIkewise.
* opts.c (default_options): Add OPT_finline_functions.
* params.def (PARAM_INLINE_MIN_SPEEDUP_O2,
PARAM_MAX_INLINE_INSNS_SINGLE_O2, PARAM_MAX_INLINE_INSNS_AUTO_O2):
New parameters.

* g++.dg/tree-ssa/pr53844.C: Add -fno-inline-functions --param
max-inline-insns-single-O2=200.
* gcc.c-torture/execute/builtins/builtins.exp: Add
-fno-inline-functions to additional_flags.
* gcc.dg/ipa/inline-7.c: Add -fno-inline-functions.
* gcc.dg/optimize-bswapsi-5.c: Add -fno-inline-functions.
* gcc.dg/tree-ssa/ssa-thread-12.c: Add --param
early-inlining-insns-O2=14 -fno-inline-functions; revert previous
change.
* gcc.dg/winline-3.c: Use --param max-inline-insns-single-O2=1
--param inline-min-speedup-O2=100
instead of --param max-inline-insns-single=1 --param
inline-min-speedup=100

* invoke.texi (-finline-functions): Update documentation.
(max-inline-insns-single-O2, max-inline-insns-auto-O2,
inline-min-speedup-O2): Document.
(early-inlining-insns-O2): Simplify docs.

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

5 years ago * cif-code.def (MAX_INLINE_INSNS_SINGLE_O2_LIMIT,
hubicka [Wed, 2 Oct 2019 16:01:47 +0000 (16:01 +0000)] 
* cif-code.def (MAX_INLINE_INSNS_SINGLE_O2_LIMIT,
MAX_INLINE_INSNS_AUTO_O2_LIMIT): New.
* ipa-inline.c (inline_insns_single, inline_insns_auto): New functions.
(can_inline_edge_by_limits_p): Use it.
(big_speedup_p): Use PARAM_INLINE_MIN_SPEEDUP_O2.
(want_inline_small_function_p): Use O2 bounds.
(edge_badness): LIkewise.
* opts.c (default_options): Add OPT_finline_functions.
* params.def (PARAM_INLINE_MIN_SPEEDUP_O2,
PARAM_MAX_INLINE_INSNS_SINGLE_O2, PARAM_MAX_INLINE_INSNS_AUTO_O2):
New parameters.

* g++.dg/tree-ssa/pr53844.C: Add -fno-inline-functions --param
max-inline-insns-single-O2=200.
* gcc.c-torture/execute/builtins/builtins.exp: Add
-fno-inline-functions to additional_flags.
* gcc.dg/ipa/inline-7.c: Add -fno-inline-functions.
* gcc.dg/optimize-bswapsi-5.c: Add -fno-inline-functions.
* gcc.dg/tree-ssa/ssa-thread-12.c: Add --param
early-inlining-insns-O2=14 -fno-inline-functions; revert previous
change.
* gcc.dg/winline-3.c: Use --param max-inline-insns-single-O2=1
--param inline-min-speedup-O2=100
instead of --param max-inline-insns-single=1 --param
inline-min-speedup=100

* invoke.texi (-finline-functions): Update documentation.
(max-inline-insns-single-O2, max-inline-insns-auto-O2,
inline-min-speedup-O2): Document.
(early-inlining-insns-O2): Simplify docs.

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

5 years agoRemove greedy wildcards from libstdc++ linker script
redi [Wed, 2 Oct 2019 15:52:41 +0000 (15:52 +0000)] 
Remove greedy wildcards from libstdc++ linker script

The only symbols matched by std::e[a-q]* and std::e[s-z]* that are
supposed to be in the GLIBCXX_3.4 version are std::exception::* and
std::endl and std::ends. The latter two already have explicit patterns
matching them, so we just need to match std::exception::*.

This change ensures that any new symbols with a return type of
std::enable_if<...> are not added to the GLIBCXX_3.4 version.

* config/abi/pre/gnu.ver: Tighten up greedy wildcards.

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

5 years agoifcvt: improve cost estimation (PR 87047)
amonakov [Wed, 2 Oct 2019 15:37:12 +0000 (15:37 +0000)] 
ifcvt: improve cost estimation (PR 87047)

PR rtl-optimization/87047
* ifcvt.c (average_cost): New static function.  Use it...
(noce_process_if_block): ... here.

testsuite/
* gcc.dg/pr87047.c: New test.

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

5 years ago[PR testsuite/91842] Skip gcc.dg/ipa/ipa-sra-19.c on power
jamborm [Wed, 2 Oct 2019 15:09:37 +0000 (15:09 +0000)] 
[PR testsuite/91842] Skip gcc.dg/ipa/ipa-sra-19.c on power

2019-10-02  Martin Jambor  <mjambor@suse.cz>

PR testsuite/91842
* gcc.dg/ipa/ipa-sra-19.c: Skip on powerpc.

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

5 years ago * module.c (load_commons): Initialize flags to 0 to silecne
hubicka [Wed, 2 Oct 2019 15:07:52 +0000 (15:07 +0000)] 
* module.c (load_commons): Initialize flags to 0 to silecne
-Wmaybe-uninitialized warning.
(read_module): Likewise for n and comp_name.

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

5 years agoDocument non-conformance of parallel mode to recent C++ standards
redi [Wed, 2 Oct 2019 14:56:57 +0000 (14:56 +0000)] 
Document non-conformance of parallel mode to recent C++ standards

* doc/xml/manual/parallel_mode.xml: Add caveat about support for
recent standards.
* doc/html/*: Regenerate.

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

5 years ago2019-10-02 Aaron Sawdey <acsawdey@linux.ibm.com>
acsawdey [Wed, 2 Oct 2019 14:26:09 +0000 (14:26 +0000)] 
2019-10-02  Aaron Sawdey <acsawdey@linux.ibm.com>

* config/rs6000/rs6000-protos.h (expand_block_move): Change prototype.
* config/rs6000/rs6000-string.c (expand_block_move): Add
might_overlap parm.
* config/rs6000/rs6000.md (movmemsi): Add new pattern.
(cpymemsi): Add might_overlap parm to expand_block_move() call.

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

5 years ago2019-10-02 Aaron Sawdey <acsawdey@linux.ibm.com>
acsawdey [Wed, 2 Oct 2019 14:23:51 +0000 (14:23 +0000)] 
2019-10-02  Aaron Sawdey <acsawdey@linux.ibm.com>

* builtins.c (expand_builtin_memory_copy_args): Add might_overlap parm.
(expand_builtin_memcpy): Use might_overlap parm.
(expand_builtin_mempcpy_args): Use might_overlap parm.
(expand_builtin_memmove): Call expand_builtin_memory_copy_args.
(expand_builtin_memory_copy_args): Add might_overlap parm.
* expr.c (emit_block_move_via_cpymem): Rename to
emit_block_move_via_pattern, add might_overlap parm, use cpymem
or movmem optab as appropriate.
(emit_block_move_hints): Add might_overlap parm, do the right
thing for might_overlap==true.
* expr.h (emit_block_move_hints): Update prototype.

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

5 years ago * tree-eh.h (unsplit_eh_edges): Declare.
ebotcazou [Wed, 2 Oct 2019 13:35:40 +0000 (13:35 +0000)] 
* tree-eh.h (unsplit_eh_edges): Declare.
* tree-eh.c (maybe_remove_unreachable_handlers): Detect more cases.
(unsplit_eh_edges): New function wrapping unsplit_all_eh.
* gimple-ssa-store-merging.c: Include cfganal.h cfgcleanup.h except.h.
(struct store_immediate_info): Add lp_nr field.
(store_immediate_info::store_immediate_info): Add NR2 parameter and
initialize lp_nr with it.
(struct merged_store_group): Add lp_nr and only_constants fields.
(merged_store_group::merged_store_group): Initialize them.
(merged_store_group::can_be_merged_into): Deal with them.
(pass_store_merging): Rename terminate_and_release_chain into
terminate_and_process_chain.
(pass_store_merging::terminate_and_process_all_chains): Adjust to above
renaming and remove useless assertions.
(pass_store_merging::terminate_all_aliasing_chains): Small tweak.
(stmts_may_clobber_ref_p): Be prepared for different basic blocks.
(imm_store_chain_info::coalesce_immediate_stores): Use only_constants
instead of always recomputing it and compare lp_nr.
(imm_store_chain_info::output_merged_store): If the group is in an
active EH region, register new stores if they can throw.  Moreover,
if the insertion has created new basic blocks, adjust the PHI nodes
of the post landing pad.
(imm_store_chain_info::output_merged_stores): If the original stores
are in an active EH region, deregister them.
(lhs_valid_for_store_merging_p): Prettify.
(adjust_bit_pos): New function extracted from...
(mem_valid_for_store_merging): ...here.  Use it for the base address
and also for the offset if it is the addition of a constant.
(lp_nr_for_store): New function.
(pass_store_merging::process_store): Change return type to bool.
Call lp_nr_for_store to initialize the store info.  Propagate the
return status of various called functions to the return value.
(store_valid_for_store_merging_p): New predicate.
(enum basic_block_status): New enumeration.
(get_status_for_store_merging): New function.
(pass_store_merging::execute): If the function can throw and catch
non-call exceptions, unsplit the EH edges on entry and clean up the
CFG on exit if something changed.  Call get_status_for_store_merging
for every basic block and keep the chains open across basic blocks
when possible.  Terminate and process open chains at the end, if any.

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

5 years agoFix shadowing in globalize_reg
rsandifo [Wed, 2 Oct 2019 13:12:37 +0000 (13:12 +0000)] 
Fix shadowing in globalize_reg

2019-10-02  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* reginfo.c (globalize_reg): Fix shadowed variable in
function_abis walk.

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

5 years agoFix MIPS call-clobbered-*.c tests
rsandifo [Wed, 2 Oct 2019 13:11:45 +0000 (13:11 +0000)] 
Fix MIPS call-clobbered-*.c tests

Jeff pointed out that gcc.target/mips/call-clobbered-4.c started
failing after the function-abi series.  This is because IRA used
to treat partly call-clobbered registers as hard conflicts and
so wouldn't consider them for -fcaller-saves.  Now that we treat
call clobbers the same way regardless of where they come from,
we can use $f21 as a caller-save register.  This in turn means
that -Os is no longer a special case in call-clobbered-3.c.

(The new code is the same size as the old code.)

2019-10-02  Richard Sandiford  <richard.sandiford@arm.com>

gcc/testsuite/
* gcc.target/mips/call-clobbered-3.c: Remove skip for -Os.
* gcc.target/mips/call-clobbered-4.c: Delete.

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

5 years ago[PATCH] Do not check call type compatibility when cloning cgraph-edges
jamborm [Wed, 2 Oct 2019 12:44:35 +0000 (12:44 +0000)] 
[PATCH] Do not check call type compatibility when cloning cgraph-edges

2019-10-02  Martin Jambor  <mjambor@suse.cz>

* cgraph.c (symbol_table::create_edge): New parameter cloning_p,
do not compute some stuff when set.
(cgraph_node::create_edge): Likewise.
(cgraph_node::create_indirect_edge): Renamed last parameter to
coning_p and flipped its meaning, don't even calculate
inline_failed when set.
* cgraph.h (cgraph_node::create_edge): Add new parameter.
(symbol_table::::create_edge): Likewise.
(cgraph_node::create_indirect_edge): Rename last parameter, flip
the default value.
* cgraphclones.c (cgraph_edge::clone): Pass true cloning_p to all
call graph edge creating functions.

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

5 years ago PR c++/91222
hubicka [Wed, 2 Oct 2019 12:41:36 +0000 (12:41 +0000)] 
PR c++/91222
* ipa-devirt.c (warn_types_mismatch): Fix conditional on anonymous
namespace types.

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

5 years ago[ARC] Pass along "-mcode-density" flag to "as"
claziss [Wed, 2 Oct 2019 11:26:15 +0000 (11:26 +0000)] 
[ARC] Pass along "-mcode-density" flag to "as"

This change makes sure that if the driver is invoked with
"-mcode-density" flag, then the assembler will receive it
too.

gcc/
xxxx-xx-xx  Shahab Vahedi  <shahab@synopsys.com>

        * config/arc/arc.h (ASM_SPEC): pass -mcode-density

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

5 years ago2019-10-02 Richard Biener <rguenther@suse.de>
rguenth [Wed, 2 Oct 2019 11:24:27 +0000 (11:24 +0000)] 
2019-10-02  Richard Biener  <rguenther@suse.de>

* tree-vectorizer.h (vect_transform_reduction): Declare.
* tree-vect-stmts.c (vect_transform_stmt): Use it.
* tree-vect-loop.c (vectorizable_reduction): Split out reduction
stmt transform to ...
(vect_transform_reduction): ... this.

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

5 years agoSupport OpenMP's use_device_addr in Fortran
burnus [Wed, 2 Oct 2019 10:57:54 +0000 (10:57 +0000)] 
Support OpenMP's use_device_addr in Fortran

        gcc/fortran/
* dump-parse-tree.c (show_omp_clauses): Handle OMP_LIST_USE_DEVICE_ADDR.
* gfortran.h (enum): Add OMP_LIST_USE_DEVICE_ADDR.
* openmp.c (omp_mask1): Likewise.
(gfc_match_omp_clauses): Match 'use_device_addr'.
(OMP_TARGET_DATA_CLAUSES): Add OMP_LIST_USE_DEVICE_ADDR.
(resolve_omp_clauses): Add it; add is_device_ptr checks.

        gcc/testsuite/
* gfortran.dg/gomp/is_device_ptr-1.f90: New.

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

5 years ago2019-10-02 Richard Biener <rguenther@suse.de>
rguenth [Wed, 2 Oct 2019 10:54:10 +0000 (10:54 +0000)] 
2019-10-02  Richard Biener  <rguenther@suse.de>

PR c++/91606
* decl.c (build_ptrmemfunc_type): Mark pointer-to-member
fat pointer structure members as DECL_NONADDRESSABLE_P.

* g++.dg/torture/pr91606.C: New testcase.

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

5 years agoImprove OMP/ACC error diagnostic in Fortran
burnus [Wed, 2 Oct 2019 10:50:23 +0000 (10:50 +0000)] 
Improve OMP/ACC error diagnostic in Fortran

gcc/fortran/
* openmp.c (gfc_match_omp_clauses): Show a clause-parsing
error if none was rised before.
* parse.c (matcha, matcho): If error occurred after
OpenMP/OpenACC directive matched, do not try other directives.

gcc/testsuite/
* gfortran.dg/goacc/asyncwait-1.f95: Handle new error message.
* gfortran.dg/goacc/asyncwait-2.f95: Likewise
* gfortran.dg/goacc/asyncwait-3.f95: Likewise
* gfortran.dg/goacc/asyncwait-4.f95: Likewise
* gfortran.dg/goacc/default-2.f: Likewise
* gfortran.dg/goacc/enter-exit-data.f95: Likewise
* gfortran.dg/goacc/if.f95: Likewise
* gfortran.dg/goacc/list.f95: Likewise
* gfortran.dg/goacc/literal.f95: Likewise
* gfortran.dg/goacc/loop-2-kernels-tile.f: Likewise95
* gfortran.dg/goacc/loop-2-parallel-tile.f95: Likewise
* gfortran.dg/goacc/loop-7.f95: Likewise
* gfortran.dg/goacc/parallel-kernels-cla: Likewiseuses.f95
* gfortran.dg/goacc/routine-6.f90: Likewise
* gfortran.dg/goacc/several-directives.f95: Likewise
* gfortran.dg/goacc/sie.f95: Likewise
* gfortran.dg/goacc/tile-1.f90: Likewise
* gfortran.dg/goacc/update-if_present-2.: Likewisef90
* gfortran.dg/gomp/declare-simd-1.f90: Likewise
* gfortran.dg/gomp/pr29759.f90: Likewise

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

5 years agoFix coding style comment, missed in last commit
burnus [Wed, 2 Oct 2019 10:41:59 +0000 (10:41 +0000)] 
Fix coding style comment, missed in last commit

        * trans-openmp.c (gfc_omp_is_optional_argument): Fix coding
        style.

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

5 years agoFix omp target issue with Fortran optional arguments
burnus [Wed, 2 Oct 2019 10:33:42 +0000 (10:33 +0000)] 
Fix omp target issue with Fortran optional arguments

        gcc/
        * omp-low.c (lower_omp_target): Dereference optional argument
        to work with the right pointer.

        gcc/testsuite/
        * libgomp/testsuite/libgomp.fortran/use_device_ptr-optional-1.f90: New.

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

5 years ago2019-10-02 Kwok Cheung Yeung <kcy@codesourcery.com>
burnus [Wed, 2 Oct 2019 10:31:02 +0000 (10:31 +0000)] 
2019-10-02  Kwok Cheung Yeung  <kcy@codesourcery.com>

        gcc/fortran/
        * f95-lang.c (LANG_HOOKS_OMP_IS_OPTIONAL_ARGUMENT): Define to
        gfc_omp_is_optional_argument.
        * trans-decl.c (create_function_arglist): Set
        GFC_DECL_OPTIONAL_ARGUMENT in the generated decl if the parameter is
        optional.
        * trans-openmp.c (gfc_omp_is_optional_argument): New.
        (gfc_omp_privatize_by_reference): Return true if the decl is an
        optional pass-by-reference argument.
        * trans.h (gfc_omp_is_optional_argument): New declaration.
        (lang_decl): Add new optional_arg field.
        (GFC_DECL_OPTIONAL_ARGUMENT): New macro.

        gcc/
        * langhooks-def.h (LANG_HOOKS_OMP_IS_OPTIONAL_ARGUMENT): Default to
        false.
        (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_IS_OPTIONAL_ARGUMENT.
        * langhooks.h (omp_is_optional_argument): New hook.
        * omp-general.c (omp_is_optional_argument): New.
        * omp-general.h (omp_is_optional_argument): New declaration.
        * omp-low.c (lower_omp_target): Create temporary for received value
        and take the address for new_var if the original variable was a
        DECL_BY_REFERENCE.  Use size of referenced object when a
        pass-by-reference optional argument used as argument to firstprivate.

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

5 years ago2019-10-02 Richard Biener <rguenther@suse.de>
rguenth [Wed, 2 Oct 2019 10:22:05 +0000 (10:22 +0000)] 
2019-10-02  Richard Biener  <rguenther@suse.de>

* internal.h (enum include_type): Remove trailing comma.

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

5 years ago PR tree-optimization/91940
jakub [Wed, 2 Oct 2019 10:18:50 +0000 (10:18 +0000)] 
PR tree-optimization/91940
* tree-vect-patterns.c: Include tree-vector-builder.h and
vec-perm-indices.h.
(vect_recog_rotate_pattern): Also handle __builtin_bswap16, either by
unpromoting the argument back to uint16_t, or by converting into a
rotate, or into shifts plus ior.

* gcc.dg/vect/vect-bswap16.c: Add -msse4 on x86, run on all targets,
expect vectorized 1 loops message on both vect_bswap and sse4_runtime
targets.
* gcc.dg/vect/vect-bswap16a.c: New test.

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

5 years ago2019-10-02 Richard Biener <rguenther@suse.de>
rguenth [Wed, 2 Oct 2019 09:21:57 +0000 (09:21 +0000)] 
2019-10-02  Richard Biener  <rguenther@suse.de>

* tree-vectorizer.h (stmt_vec_info_type::cycle_phi_info_type):
New.
(vect_transform_cycle_phi): Declare.
* tree-vect-stmts.c (vect_transform_stmt): Call
vect_transform_cycle_phi.
* tree-vect-loop.c (vectorizable_reduction): Split out
PHI transformation stage to ...
(vect_transform_cycle_phi): ... here.

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

5 years ago[LRA] Don't make eliminable registers live (PR91957)
rsandifo [Wed, 2 Oct 2019 07:37:10 +0000 (07:37 +0000)] 
[LRA] Don't make eliminable registers live (PR91957)

One effect of https://gcc.gnu.org/ml/gcc-patches/2019-09/msg00802.html
was to strengthen the sanity check in lra_assigns so that it checks
whether reg_renumber is consistent with the whole conflict set.
This duly tripped on csky for a pseudo that had been allocated
to the eliminated frame pointer.  (csky doesn't have a separate
hard frame pointer.)

lra-lives uses:

/* Set of hard regs (except eliminable ones) currently live.  */
static HARD_REG_SET hard_regs_live;

to track the set of live directly-referenced hard registers, and it
correctly implements the exclusion when setting up the initial set:

  hard_regs_live &= ~eliminable_regset;

But later calls to make_hard_regno_live and make_hard_regno_dead
would process eliminable registers like other registers, recording
conflicts for them and potentially making them live.  (Note that
after r266086, make_hard_regno_dead adds conflicts for registers
that are already marked dead.)  I think this would have had the
effect of pessimising targets without a separate hard frame pointer.

2019-10-02  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
PR middle-end/91957
* lra-lives.c (make_hard_regno_dead): Don't record conflicts for
eliminable registers.
(make_hard_regno_live): Likewise, and don't make them live.

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