]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
8 years agoRemove a Java-specific hunk.
marxin [Mon, 31 Jul 2017 07:29:49 +0000 (07:29 +0000)] 
Remove a Java-specific hunk.

2017-07-31  Martin Liska  <mliska@suse.cz>

* gimplify.c (mostly_copy_tree_r): Remove Java specific hunk.
(gimplify_save_expr): Fix comment.

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

8 years agoDaily bump.
gccadmin [Mon, 31 Jul 2017 00:16:46 +0000 (00:16 +0000)] 
Daily bump.

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

8 years agoi386: Update INCOMING_FRAME_SP_OFFSET for exception handler
hjl [Sun, 30 Jul 2017 14:10:32 +0000 (14:10 +0000)] 
i386: Update INCOMING_FRAME_SP_OFFSET for exception handler

Since there is an extra error code passed to the exception handler,
INCOMING_FRAME_SP_OFFSET is return address plus error code for the
exception handler.  This patch updates INCOMING_FRAME_SP_OFFSET to
the correct value for the exception handler.

This patch exposed a bug in DWARF stack frame CFI generation, which
assumes that INCOMING_FRAME_SP_OFFSET is the same for all functions:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81570

It sets and caches the incoming stack frame offset with the same
INCOMING_FRAME_SP_OFFSET for all functions.  When there are both
exception handler and normal function in the same input, the wrong
incoming stack frame offset is used for exception handler or normal
function, which leads to

FAIL: gcc.dg/guality/pr68037-1.c   -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects  line 33 error == 0x12345670
FAIL: gcc.dg/guality/pr68037-1.c   -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects  line 33 frame->ip == 0x12345671
FAIL: gcc.dg/guality/pr68037-1.c   -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects  line 33 frame->cs == 0x12345672
FAIL: gcc.dg/guality/pr68037-1.c   -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects  line 33 frame->flags == 0x12345673
FAIL: gcc.dg/guality/pr68037-1.c   -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects  line 33 frame->sp == 0x12345674
FAIL: gcc.dg/guality/pr68037-1.c   -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects  line 33 frame->ss == 0x12345675

With the patch for PR 81570:

https://gcc.gnu.org/ml/gcc-patches/2017-07/msg01851.html

applied, there are no regressions on i686 and x86-64.

gcc/

PR target/79793
* config/i386/i386.c (ix86_function_arg): Update arguments for
exception handler.
(ix86_compute_frame_layout): Set the initial stack offset to
INCOMING_FRAME_SP_OFFSET.  Update red-zone offset with
INCOMING_FRAME_SP_OFFSET.
(ix86_expand_epilogue): Don't pop the 'ERROR_CODE' off the
stack before exception handler returns.
* config/i386/i386.h (INCOMING_FRAME_SP_OFFSET): Add the
the 'ERROR_CODE' for exception handler.

gcc/testsuite/

PR target/79793
* gcc.dg/guality/pr68037-1.c: Update gdb breakpoints.
* gcc.target/i386/interrupt-5.c (interrupt_frame): New struct.
(foo): Check the builtin return address against the return address
in interrupt frame.
* gcc.target/i386/pr79793-1.c: New test.
* gcc.target/i386/pr79793-2.c: Likewise.

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

8 years ago * config/i386/i386.h (ASM_PRINTF_EXTENSIONS): New macro.
uros [Sun, 30 Jul 2017 08:51:37 +0000 (08:51 +0000)] 
* config/i386/i386.h (ASM_PRINTF_EXTENSIONS): New macro.
(ASM_OUTPUT_REG_PUSH): Rewrite with new operand modifiers.
(ASM_OUTPUT_REG_POP): Ditto.
* config/i386/i386.c (ix86_asm_output_function_label): Use fputs
instead of asm_fprintf to output pure string.

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

8 years ago * c-format.c (asm_fprintf_char_table): Add 'z' to format_chars.
uros [Sun, 30 Jul 2017 08:49:40 +0000 (08:49 +0000)] 
* c-format.c (asm_fprintf_char_table): Add 'z' to format_chars.

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

8 years agoDaily bump.
gccadmin [Sun, 30 Jul 2017 00:16:35 +0000 (00:16 +0000)] 
Daily bump.

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

8 years ago * c-ada-spec.c (dump_generic_ada_node): Take into account signedness
ebotcazou [Sat, 29 Jul 2017 09:52:04 +0000 (09:52 +0000)] 
* c-ada-spec.c (dump_generic_ada_node): Take into account signedness
for enumeral types.
(print_ada_declaration): Add missing guard for record types.

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

8 years ago * debug.h (struct gcc_debug_hooks): Add IMPLICIT argument
jakub [Sat, 29 Jul 2017 07:52:16 +0000 (07:52 +0000)] 
* debug.h (struct gcc_debug_hooks): Add IMPLICIT argument
to imported_module_or_decl hook.
(debug_nothing_tree_tree_tree_bool): Remove.
(debug_nothing_tree_tree_tree_bool_bool): New declaration.
* debug.c (do_nothing_debug_hooks): Use
debug_nothing_tree_tree_tree_bool_bool instead of
debug_nothing_tree_tree_tree_bool.
* vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
* dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
* sdbout.c (sdb_debug_hooks): Likewise.
* dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
(gen_namespace_die): Add DW_AT_export_symbols attribute if
langhook wants it.
(dwarf2out_imported_module_or_decl): Add IMPLICIT argument,
if true, -gdwarf-5 and decl will have DW_AT_export_symbols
attribute, don't add anything.
cp/
* cp-objcp-common.c (cp_decl_dwarf_attribute): Handle
DW_AT_export_symbols.
* name-lookup.c (emit_debug_info_using_namespace): Add IMPLICIT
argument, pass it through to the debug hook.
(finish_namespace_using_directive): Adjust
emit_debug_info_using_namespace caller.
(push_namespace): Likewise.  Call it after setting
DECL_NAMESPACE_INLINE_P.
(cp_emit_debug_info_for_using): Pass false as new argument to
the imported_module_or_decl debug hook.
fortran/
* trans-decl.c (gfc_trans_use_stmts): Pass false as new argument to
the imported_module_or_decl debug hook.
ada/
* gcc-interface/utils.c (gnat_write_global_declarations): Pass false
as new argument to the imported_module_or_decl debug hook.
testsuite/
* g++.dg/debug/dwarf2/inline-ns-1.C: New test.
* g++.dg/debug/dwarf2/inline-ns-2.C: New test.

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

8 years agouse c++ for fold_buildN_loc
tbsaunde [Sat, 29 Jul 2017 01:39:48 +0000 (01:39 +0000)] 
use c++ for fold_buildN_loc

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* fold-const.c (fold_build1_stat_loc): Remove _stat from name.
(fold_build2_stat_loc): Likewise.
(fold_build3_stat_loc): Likewise.
* fold-const.h (fold_build1, fold_build2, fold_build3): Adjust.
(fold_build1_loc): Remove macro.
(fold_build2_loc): Likewise.
(fold_build3_loc): Likewise.

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

8 years agouse c++ for gimple_build_debug_bind{,_source}
tbsaunde [Sat, 29 Jul 2017 01:39:42 +0000 (01:39 +0000)] 
use c++ for gimple_build_debug_bind{,_source}

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* gimple.c (gimple_build_debug_bind_stat): Remove _stat from name.
(gimple_build_debug_bind_source_stat): Likewise.
* gimple.h (gimple_build_debug_bind): Remove macro.
(gimple_build_debug_bind_source): Likewise.

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

8 years agouse c++ for bitmap_initialize
tbsaunde [Sat, 29 Jul 2017 01:39:36 +0000 (01:39 +0000)] 
use c++ for bitmap_initialize

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* bitmap.c (bitmap_alloc): Adjust.
(bitmap_gc_alloc): Likewise.
* bitmap.h (bitmap_initialize_stat): Remove _stat from name.

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

8 years agosimplify the bitmap alloc_stat functions with c++
tbsaunde [Sat, 29 Jul 2017 01:39:31 +0000 (01:39 +0000)] 
simplify the bitmap alloc_stat functions with c++

gcc/fortran/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* resolve.c (find_reachable_labels): Adjust.

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* bitmap.c (bitmap_obstack_alloc_stat): Rename to bitmap_alloc.
(bitmap_gc_alloc_stat): Rename to bitmap_gc_alloc.
* bitmap.h (bitmap_obstack_alloc_stat): Adjust prototype.
(bitmap_gc_alloc_stat): Likewise.
(BITMAP_ALLOC, BITMAP_GGC_ALLOC): Adjust.

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

8 years agoreplace shallow_copy_rtx_stat with c++
tbsaunde [Sat, 29 Jul 2017 01:39:25 +0000 (01:39 +0000)] 
replace shallow_copy_rtx_stat with c++

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* rtl.c (shallow_copy_rtx_stat): Remove _stat from name.
* rtl.h (shallow_copy_rtx): Remove macro.

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

8 years agoreplace rtx_alloc_stat with c++
tbsaunde [Sat, 29 Jul 2017 01:39:17 +0000 (01:39 +0000)] 
replace rtx_alloc_stat with c++

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* emit-rtl.c (gen_raw_REG): Adjust.
* gengenrtl.c (gendef): Likewise.
* rtl.c (rtx_alloc_stat): Remove _stat from name.
* rtl.h (rtx_alloc): Remove macro.

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

8 years agouse c++ for build_tree_list{,_vec}_stat
tbsaunde [Sat, 29 Jul 2017 01:39:10 +0000 (01:39 +0000)] 
use c++ for build_tree_list{,_vec}_stat

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* tree.c (build_tree_list_vec_stat): Remove _stat from name.
(build_tree_list_stat): Likewise.
* tree.h (build_tree_list): Remove macro.
(build_tree_list_vec): Likewise.

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

8 years agouse C++ for {make,build}_vector_stat
tbsaunde [Sat, 29 Jul 2017 01:39:03 +0000 (01:39 +0000)] 
use C++ for {make,build}_vector_stat

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* tree.c (make_vector_stat): Remove _stat from name.
(build_vector_stat): Likewise.
* tree.h (make_vector_stat): Remove macro.
(build_vector_stat): Likewise.

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

8 years agoremove unused build_var_debug_value prototype
tbsaunde [Sat, 29 Jul 2017 01:38:57 +0000 (01:38 +0000)] 
remove unused build_var_debug_value prototype

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* tree.h (build_var_debug_value): Remove prototype.

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

8 years agouse c++ for tree_cons_stat
tbsaunde [Sat, 29 Jul 2017 01:38:51 +0000 (01:38 +0000)] 
use c++ for tree_cons_stat

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* tree.c (tree_cons_stat): Remove _stat from name.
* tree.h (tree_cons): Remove macro.

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

8 years agouse c++ instead of build_vl_exp_stat
tbsaunde [Sat, 29 Jul 2017 01:38:43 +0000 (01:38 +0000)] 
use c++ instead of build_vl_exp_stat

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* tree.c (build_vl_exp_stat): Remove _stat from name.
* tree.h (build_vl_exp): Remove macro.

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

8 years agouse c++ instead of build_decl_stat
tbsaunde [Sat, 29 Jul 2017 01:38:37 +0000 (01:38 +0000)] 
use c++ instead of build_decl_stat

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* tree.c (build_decl_stat): Remove _stat from name.
* tree.h (build_decl): Remove macro.

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

8 years agoreplace gimple_alloc_stat with c++
tbsaunde [Sat, 29 Jul 2017 01:38:31 +0000 (01:38 +0000)] 
replace gimple_alloc_stat with c++

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* gimple.c (gimple_build_with_ops_stat): Adjust.
(gimple_alloc_stat): Remove _stat from name.
* gimple.h (gimple_alloc): Remove macro.

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

8 years agouse c++ instead of {make,grow}_tree_vec_stat
tbsaunde [Sat, 29 Jul 2017 01:38:25 +0000 (01:38 +0000)] 
use c++ instead of {make,grow}_tree_vec_stat

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* tree.c (make_tree_vec_stat): Remove _stat from name.
(grow_tree_vec_stat): Likewise.
* tree.h (make_tree_vec_stat): Adjust prototype.
(grow_tree_vec_stat): Likewise.
(make_tree_vec): Remove macro.
(grow_tree_vec): Likewise.

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

8 years agouse c++ instead of buildN_stat{,_loc}
tbsaunde [Sat, 29 Jul 2017 01:38:19 +0000 (01:38 +0000)] 
use c++ instead of buildN_stat{,_loc}

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* fold-const.c (fold_build1_stat_loc): Adjust.
(fold_build2_stat_loc): Likewise.
(fold_build3_stat_loc): Likewise.
* tree.c (build0_stat): Remove _stat from name.
(build1_stat): Likewise.
(build2_stat): Likewise.
(build3_stat): Likewise.
(build4_stat): Likewise.
(build5_stat): Likewise.
* tree.h (build1_loc): Remove macro, and rename _stat function
to this.
(build2_loc): Likewise.
(build3_loc): Likewise.
(build4_loc): Likewise.
(build5_loc): Likewise.

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

8 years agouse c++ for make_int_cst_stat
tbsaunde [Sat, 29 Jul 2017 01:38:12 +0000 (01:38 +0000)] 
use c++ for make_int_cst_stat

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* tree.c (make_int_cst_stat): Remove _stat from name.
* tree.h (make_int_cst_stat): Adjust prototype.
(make_int_cst): Remove macro.

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

8 years agouse cxx instead of make_tree_binfo_stat
tbsaunde [Sat, 29 Jul 2017 01:38:06 +0000 (01:38 +0000)] 
use cxx instead of make_tree_binfo_stat

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* tree.c (make_tre_binfo_stat): Remove _stat from name.
* tree.h (make_tree_binfo_stat): Adjust prototype.
(make_tree_binfo): Remove.

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

8 years agouse c++ instead of _stat for copy_node_stat
tbsaunde [Sat, 29 Jul 2017 01:38:00 +0000 (01:38 +0000)] 
use c++ instead of _stat for copy_node_stat

gcc/cp/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* lex.c (copy_decl): Adjust.
(copy_type): Likewise.

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* tree.c (copy_node_stat): Rename to copy_node.
(build_distinct_type_copy): Adjust.
* tree.h (copy_node_stat): Adjust prototype.
(copy_node): Remove macro.

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

8 years agouse c++ instead of make_node_stat
tbsaunde [Sat, 29 Jul 2017 01:37:54 +0000 (01:37 +0000)] 
use c++ instead of make_node_stat

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* tree.c (make_node_stat): rename to make_node.
(build_tree_list_stat): Adjust.
(build0_stat): Likewise.
(build2_stat): Likewise.
(build3_stat): Likewise.
(build4_stat): Likewise.
(build5_stat): Likewise.
(build_decl_stat): Likewise.
* tree.h (make_node_stat): Adjust prototype.
(make_node): remove macro.

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

8 years agoDaily bump.
gccadmin [Sat, 29 Jul 2017 00:16:41 +0000 (00:16 +0000)] 
Daily bump.

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

8 years agogcc/
bergner [Fri, 28 Jul 2017 20:10:45 +0000 (20:10 +0000)] 
gcc/
* config/rs6000/ppc-auxv.h (PPC_FEATURE2_DARN): New define.
(PPC_FEATURE2_SCV): Likewise.
* config/rs6000/rs6000.c (cpu_supports_info): Use them.

gcc/testsuite/
* gcc.target/powerpc/cpu-builtin-1.c (darn, scv): Add tests.

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

8 years ago compiler: add backend type conversion
ian [Fri, 28 Jul 2017 19:58:01 +0000 (19:58 +0000)] 
compiler: add backend type conversion

    Tweak Interface_field_reference_expression::do_get_backend to apply an
    additional backend type conversion to the returned result.  This is
    needed due to the fact that the top level type of the expression is a
    function descriptor, however the value being manufactured is a pointer
    to <thunk-descriptor, value> struct.

    Reviewed-on: https://go-review.googlesource.com/51712

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

8 years ago2017-07-28 Tony Reix <tony.reix@atos.net>
dje [Fri, 28 Jul 2017 18:56:28 +0000 (18:56 +0000)] 
2017-07-28  Tony Reix  <tony.reix@atos.net>

        * configure.ac (target-libffi): Don't disable for AIX.
        (go): Don't add to unsupported_languages on AIX.
        (target-libgo): Don't disable for AIX.
        * configure: Regenerate.

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

8 years ago * xcoff.c: Don't leak a file descriptor if an archive is malformed.
ian [Fri, 28 Jul 2017 18:52:13 +0000 (18:52 +0000)] 
* xcoff.c: Don't leak a file descriptor if an archive is malformed.

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

8 years ago compiler: track placeholder pointer types for conversion
ian [Fri, 28 Jul 2017 18:03:29 +0000 (18:03 +0000)] 
compiler: track placeholder pointer types for conversion

    We recently started walking through the hash table of pointer types to
    finalize them.  Unfortunately it is possible to create a new pointer
    type while finalizing an existing one (test case: test/fixedbugs/issue5291)
    and that breaks the iteration.  So, instead, keep a list of
    placeholder pointer types, and iterate through them while permitting
    the list to be extended as we go.

    Reviewed-on: https://go-review.googlesource.com/51771

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

8 years ago compiler: use a single temporary for calls with multiple results
ian [Fri, 28 Jul 2017 17:42:05 +0000 (17:42 +0000)] 
compiler: use a single temporary for calls with multiple results

    For calls that return multiple results we used to create a temporary
    of struct type to hold the results, and also create a separate
    temporary for each result.  Then the call expression would copy each
    result out of the struct to the temporary, and Call_result_expression
    would refer to the desired temporary.

    Simplify this to just use a single temporary of struct type, and
    change Call_result_expression to fetch a field of the struct.

    This may reduce some incorrect tree sharing in the backend code.

    Reviewed-on: https://go-review.googlesource.com/51770

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

8 years ago2017-07-28 Tamar Christina <tamar.christina@arm.com>
tnfchris [Fri, 28 Jul 2017 16:47:08 +0000 (16:47 +0000)] 
2017-07-28  Tamar Christina  <tamar.christina@arm.com>

* config/aarch64/aarch64.c
(aarch64_internal_mov_immediate): Add new special pattern.
* config/aarch64/aarch64.md (*movdi_aarch64):
Add reg/32bit const mov case.

gcc/testsuite/
2017-07-28  Tamar Christina  <tamar.christina@arm.com>

* gcc.target/aarch64/int_mov_immediate_1.c: New.

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

8 years ago gcc/testsuite
amker [Fri, 28 Jul 2017 16:30:44 +0000 (16:30 +0000)] 
gcc/testsuite
* gcc.dg/vect/pr80815-3.c: Require vect_perm.

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

8 years agoFix pid_t printing
ro [Fri, 28 Jul 2017 16:26:39 +0000 (16:26 +0000)] 
Fix pid_t printing

* fileline.c (fileline_initialize): Print pid_t as long.

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

8 years ago2017-07-28 Tamar Christina <tamar.christina@arm.com>
tnfchris [Fri, 28 Jul 2017 15:14:25 +0000 (15:14 +0000)] 
2017-07-28  Tamar Christina  <tamar.christina@arm.com>
    Bilyan Borisov  <bilyan.borisov@arm.com>

* gcc.target/aarch64/dbl_mov_immediate_1.c: New.
* gcc.target/aarch64/flt_mov_immediate_1.c: New.
* gcc.target/aarch64/f16_mov_immediate_1.c: New.
* gcc.target/aarch64/f16_mov_immediate_2.c: New.
* gcc.target/aarch64/pr63304_1.c: Changed to double.

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

8 years ago2017-07-28 Tamar Christina <tamar.christina@arm.com>
tnfchris [Fri, 28 Jul 2017 15:12:32 +0000 (15:12 +0000)] 
2017-07-28  Tamar Christina  <tamar.christina@arm.com>
            Richard Sandiford <richard.sandiford@linaro.org>

        * config/aarch64/aarch64.md (mov<mode>): Generalize.
        (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
        Add integer and movi cases.
        (movi-split-hf-df-sf split, fp16): New.
        (enabled): Added TARGET_FP_F16INST.
        * config/aarch64/iterators.md (GPF_HF): New.
        * config/aarch64/predicates.md (aarch64_reg_or_fp_float): New.

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

8 years ago2017-07-28 Tamar Christina <tamar.christina@arm.com>
tnfchris [Fri, 28 Jul 2017 15:11:25 +0000 (15:11 +0000)] 
2017-07-28  Tamar Christina  <tamar.christina@arm.com>

* config/aarch64/aarch64.c
(aarch64_simd_container_mode): Add prototype.
(aarch64_expand_mov_immediate): Add HI support.
(aarch64_reinterpret_float_as_int, aarch64_float_const_rtx_p: New.
(aarch64_can_const_movi_rtx_p): New.
(aarch64_preferred_reload_class):
Remove restrictions of using FP registers for certain SIMD operations.
(aarch64_rtx_costs): Added new cost for CONST_DOUBLE moves.
(aarch64_valid_floating_const): Add integer move validation.
(aarch64_simd_imm_scalar_p): Remove.
(aarch64_output_scalar_simd_mov_immediate): Generalize function.
(aarch64_legitimate_constant_p): Expand list of supported cases.
* config/aarch64/aarch64-protos.h
(aarch64_float_const_rtx_p, aarch64_can_const_movi_rtx_p): New.
(aarch64_reinterpret_float_as_int): New.
(aarch64_simd_imm_scalar_p): Remove.
* config/aarch64/constraints.md (Uvi): New.
(Dd): Split into Ds and new Dd.
* config/aarch64/aarch64.md (*movsi_aarch64):
Add SIMD mov case.
(*movdi_aarch64): Add SIMD mov case.

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

8 years ago * tree-predcom.c: (struct chain): Handle store-store chain in which
amker [Fri, 28 Jul 2017 15:03:09 +0000 (15:03 +0000)] 
* tree-predcom.c: (struct chain): Handle store-store chain in which
stores for elimination only store loop invariant values.
(execute_pred_commoning_chain): Ditto.
(prepare_initializers_chain_store_elim): Ditto.
(prepare_finalizers): Ditto.
(is_inv_store_elimination_chain): New function.
(initialize_root_vars_store_elim_1): New function.

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

8 years ago * tree-predcom.c: Revise general description of the pass.
amker [Fri, 28 Jul 2017 15:01:28 +0000 (15:01 +0000)] 
* tree-predcom.c: Revise general description of the pass.
(enum chain_type): New enum type for store elimination.
(struct chain): New field supporting store elimination.
(struct component): Ditto.
(dump_chain): Dump store-stores chain.
(release_chain): Release resources.
(split_data_refs_to_components): Compute and create component
contains only stores for elimination.
(get_chain_last_ref_at): New function.
(make_invariant_chain): Initialization.
(make_rooted_chain): Specify chain type in parameter and record it.
(add_looparound_copies): Skip for store-stores chain.
(determine_roots_comp): Compute type of chain and pass it to
make_rooted_chain.
(initialize_root_vars_store_elim_2): New function.
(finalize_eliminated_stores): New function.
(remove_stmt): Handle store for elimination.
(execute_pred_commoning_chain): Execute predictive commoning on
store-store chains.
(determine_unroll_factor): Skip unroll for store-stores chain.
(prepare_initializers_chain_store_elim): New function.
(prepare_initializers_chain): Hanlde store-store chain.
(prepare_finalizers_chain, prepare_finalizers): New function.
(tree_predictive_commoning_loop): Return integer value indicating
if loop is unrolled or lcssa form is corrupted.
(tree_predictive_commoning): Rewrite for lcssa form if necessary.

gcc/testsuite
* gcc.dg/tree-ssa/predcom-dse-1.c: New test.
* gcc.dg/tree-ssa/predcom-dse-2.c: New test.
* gcc.dg/tree-ssa/predcom-dse-3.c: New test.
* gcc.dg/tree-ssa/predcom-dse-4.c: New test.
* gcc.dg/tree-ssa/predcom-dse-5.c: New test.
* gcc.dg/tree-ssa/predcom-dse-6.c: New test.
* gcc.dg/tree-ssa/predcom-dse-7.c: New test.
* gcc.dg/tree-ssa/predcom-dse-8.c: New test.
* gcc.dg/tree-ssa/predcom-dse-9.c: New test.
* gcc.dg/tree-ssa/predcom-dse-10.c: New test.
* gcc.dg/tree-ssa/predcom-dse-11.c: New test.

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

8 years ago * tree-predcom.c (initialize_root): Delete.
amker [Fri, 28 Jul 2017 14:58:11 +0000 (14:58 +0000)] 
* tree-predcom.c (initialize_root): Delete.
(execute_pred_commoning_chain): Initialize root vars and replace
reference of non-combined chain directly, rather than call above
function.

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

8 years ago * tree-predcom.c (ref_at_iteration): Add parameter NITERS. Compute
amker [Fri, 28 Jul 2017 14:57:05 +0000 (14:57 +0000)] 
* tree-predcom.c (ref_at_iteration): Add parameter NITERS.  Compute
memory reference to DR at (NITERS + ITERS)-th iteration of loop.

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

8 years ago * tree-predcom.c (struct chain): New field init_seq.
amker [Fri, 28 Jul 2017 14:55:49 +0000 (14:55 +0000)] 
* tree-predcom.c (struct chain): New field init_seq.
(release_chain): Release init_seq.
(prepare_initializers_chain): Record intialization stmts in above
field.
(insert_init_seqs): New function.
(tree_predictive_commoning_loop): Call insert_init_seqs.

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

8 years ago * tree-predcom.c (determine_roots_comp): Skip trivial components.
amker [Fri, 28 Jul 2017 14:54:20 +0000 (14:54 +0000)] 
* tree-predcom.c (determine_roots_comp): Skip trivial components.

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

8 years ago2017-07-28 Richard Biener <rguenther@suse.de>
rguenth [Fri, 28 Jul 2017 13:38:01 +0000 (13:38 +0000)] 
2017-07-28  Richard Biener  <rguenther@suse.de>

* match.pd: Remove superfluous :c.
* genmatch.c (simplify::id): Add member.
(lower_commutative, lower_opt_convert, lower_cond, lower_for):
Copy id.
(current_id): New global.
(dt_node::parent): Move from ...
(dt_operand::parent): ... here.  Add for_id member.
(is_a_helper <dt_operand *>::test): DT_TRUE is also a dt_operand.
(decision_tree::find_node): Relax order requirement when
merging DT_TRUE nodes to ones inbetween the current simplify
and the one we try to merge with.  Add diagnostic whenever
we need to enforce pattern order by not merging.
(decision_tree::insert): Set current_id.
(decision_tree::print_node): Dump parent node and for_id.
(parser::last_id): Add member.
(parser::push_simplify): Assign unique id.
(parser::parser): Initialize last_id.

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

8 years agoSet DECL_VALUE_EXPR after a debug stmt is generated (PR sanitizer/81340).
marxin [Fri, 28 Jul 2017 11:56:47 +0000 (11:56 +0000)] 
Set DECL_VALUE_EXPR after a debug stmt is generated (PR sanitizer/81340).

2017-07-28  Martin Liska  <mliska@suse.cz>

PR sanitizer/81340
* sanopt.c (sanitize_rewrite_addressable_params): Set VALUE_EXPR after
gimple_build_debug_bind.
2017-07-28  Martin Liska  <mliska@suse.cz>

PR sanitizer/81340
* g++.dg/asan/pr81340.C: New test.

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

8 years ago2017-07-28 Richard Biener <rguenther@suse.de>
rguenth [Fri, 28 Jul 2017 11:27:45 +0000 (11:27 +0000)] 
2017-07-28  Richard Biener  <rguenther@suse.de>

PR tree-optimization/81502
* match.pd: Add pattern combining BIT_INSERT_EXPR with
BIT_FIELD_REF.
* tree-cfg.c (verify_expr): Verify types of BIT_FIELD_REF
size/pos operands.
(verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR pos.
* gimple-fold.c (maybe_canonicalize_mem_ref_addr): Use bitsizetype
for BIT_FIELD_REF args.
* fold-const.c (make_bit_field_ref): Likewise.
* tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.

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

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

8 years ago PR sanitizer/80998
jakub [Fri, 28 Jul 2017 10:37:51 +0000 (10:37 +0000)] 
PR sanitizer/80998
* sanopt.c (pass_sanopt::execute): Handle IFN_UBSAN_PTR.
* tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise.
* flag-types.h (enum sanitize_code): Add SANITIZER_POINTER_OVERFLOW.
Or it into SANITIZER_UNDEFINED.
* ubsan.c: Include gimple-fold.h and varasm.h.
(ubsan_expand_ptr_ifn): New function.
(instrument_pointer_overflow): New function.
(maybe_instrument_pointer_overflow): New function.
(instrument_object_size): Formatting fix.
(pass_ubsan::execute): Call instrument_pointer_overflow
and maybe_instrument_pointer_overflow.
* internal-fn.c (expand_UBSAN_PTR): New function.
* ubsan.h (ubsan_expand_ptr_ifn): Declare.
* sanitizer.def (__ubsan_handle_pointer_overflow,
__ubsan_handle_pointer_overflow_abort): New builtins.
* tree-ssa-tail-merge.c (merge_stmts_p): Handle IFN_UBSAN_PTR.
* internal-fn.def (UBSAN_PTR): New internal function.
* opts.c (sanitizer_opts): Add pointer-overflow.
* lto-streamer-in.c (input_function): Handle IFN_UBSAN_PTR.
* fold-const.c (build_range_check): Compute pointer range check in
integral type if pointer arithmetics would be needed.  Formatting
fixes.
gcc/testsuite/
* c-c++-common/ubsan/ptr-overflow-1.c: New test.
* c-c++-common/ubsan/ptr-overflow-2.c: New test.
libsanitizer/
* ubsan/ubsan_handlers.cc: Cherry-pick upstream r304461.
* ubsan/ubsan_checks.inc: Likewise.
* ubsan/ubsan_handlers.h: Likewise.

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

8 years agoDo not handle VLA in sanitization (PR sanitizer/81460).
marxin [Fri, 28 Jul 2017 10:36:36 +0000 (10:36 +0000)] 
Do not handle VLA in sanitization (PR sanitizer/81460).

2017-07-28  Martin Liska  <mliska@suse.cz>

PR sanitizer/81460
* sanopt.c (sanitize_rewrite_addressable_params): Do not rewrite
parameters that are of a variable-length.
2017-07-28  Martin Liska  <mliska@suse.cz>

PR sanitizer/81460
* gcc.dg/asan/pr81460.c: New test.

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

8 years ago[PowerPC/RTEMS] Add 64-bit support using ELFv2 ABI
sh [Fri, 28 Jul 2017 07:17:10 +0000 (07:17 +0000)] 
[PowerPC/RTEMS] Add 64-bit support using ELFv2 ABI

Add 64-bit support for RTEMS using the ELFv2 ABI with 64-bit long
double.

gcc/
* config.gcc (powerpc-*-rtems*): Remove rs6000/eabi.h.  Add
rs6000/biarch64.h.
* config/rs6000/rtems.h (ASM_DECLARE_FUNCTION_SIZE): New macro.
(ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
(CRT_CALL_STATIC_FUNCTION): Likewise.
(ASM_DEFAULT_SPEC): New define.
(ASM_SPEC32): Likewise.
(ASM_SPEC64): Likewise.
(ASM_SPEC_COMMON): Likewise.
(ASM_SPEC): Likewise.
(INVALID_64BIT): Likewise.
(LINK_OS_DEFAULT_SPEC): Likewise.
(LINK_OS_SPEC32): Likewise.
(LINK_OS_SPEC64): Likewise.
(POWERPC_LINUX): Likewise.
(PTRDIFF_TYPE): Likewise.
(RESTORE_FP_PREFIX): Likewise.
(RESTORE_FP_SUFFIX): Likewise.
(SAVE_FP_PREFIX): Likewise.
(SAVE_FP_SUFFIX): Likewise.
(SIZE_TYPE): Likewise.
(SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
(TARGET_64BIT): Likewise.
(TARGET_64BIT): Likewise.
(TARGET_AIX): Likewise.
(WCHAR_TYPE_SIZE): Likewise.
(WCHAR_TYPE): Undefine.
(TARGET_OS_CPP_BUILTINS): Add 64-bit PowerPC defines.
(CPP_OS_DEFAULT_SPEC): Use previous CPP_OS_RTEMS_SPEC.
(CPP_OS_RTEMS_SPEC): Delete.
(SUBSUBTARGET_EXTRA_SPECS): Remove cpp_os_rtems.  Add
asm_spec_common, asm_spec32, asm_spec64, link_os_spec32, and
link_os_spec64.
* config/rs6000/t-rtems: Add mcpu=e6500/m64 multilibs.

libgcc/
* config/rs6000/ibm-ldouble.c: Disable if defined __rtems__.

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

8 years ago PR tree-optimization/81578
jakub [Fri, 28 Jul 2017 07:11:51 +0000 (07:11 +0000)] 
PR tree-optimization/81578
* tree-parloops.c (build_new_reduction): Bail out if
reduction_code isn't one of the standard OpenMP reductions.
Move the details printing after that decision.

* gcc.dg/pr81578.c: New test.

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

8 years ago2017-07-28 Richard Biener <rguenther@suse.de>
rguenth [Fri, 28 Jul 2017 07:08:38 +0000 (07:08 +0000)] 
2017-07-28  Richard Biener  <rguenther@suse.de>

PR tree-optimization/81573
* gcc.dg/torture/pr81573.c: Explicitely use signed char.

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

8 years ago * go-backend.c (go_write_export_data): Use EXCLUDE section for
ian [Fri, 28 Jul 2017 00:16:36 +0000 (00:16 +0000)] 
* go-backend.c (go_write_export_data): Use EXCLUDE section for
AIX.

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

8 years agoDaily bump.
gccadmin [Fri, 28 Jul 2017 00:16:34 +0000 (00:16 +0000)] 
Daily bump.

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

8 years ago * config/rs6000/predicates.md (volatile_mem_operand): Remove code
bergner [Thu, 27 Jul 2017 20:04:53 +0000 (20:04 +0000)] 
* config/rs6000/predicates.md (volatile_mem_operand): Remove code
related to reload_in_progress.
(splat_input_operand): Likewise.
* config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
Delete prototype.
* config/rs6000/rs6000.c (machine_function): Remove sdmode_stack_slot
field.
(TARGET_EXPAND_TO_RTL_HOOK): Delete.
(TARGET_INSTANTIATE_DECLS): Likewise.
(legitimate_indexed_address_p): Delete reload_in_progress code.
(rs6000_debug_legitimate_address_p): Likewise.
(rs6000_eliminate_indexed_memrefs): Likewise.
(rs6000_emit_le_vsx_store): Likewise.
(rs6000_emit_move_si_sf_subreg): Likewise.
(rs6000_emit_move): Likewise.
(register_to_reg_type): Likewise.
(rs6000_pre_atomic_barrier): Likewise.
(rs6000_machopic_legitimize_pic_address): Likewise.
(rs6000_allocate_stack_temp): Likewise.
(rs6000_address_for_fpconvert): Likewise.
(rs6000_address_for_altivec): Likewise.
(rs6000_secondary_memory_needed_rtx): Delete function.
(rs6000_check_sdmode): Likewise.
(rs6000_alloc_sdmode_stack_slot): Likewise.
(rs6000_instantiate_decls): Likewise.
* config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
* config/rs6000/rs6000.md (splitter for *movsi_got_internal):
Delete reload_in_progress.
(*vec_reload_and_plus_<mptrsize>): Likewise.
* config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
(vsx_div_v2di): Likewise.
(vsx_udiv_v2di): Likewise.

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

8 years agogcc/
bergner [Thu, 27 Jul 2017 20:03:35 +0000 (20:03 +0000)] 
gcc/

* config/rs6000/rs6000.opt (mlra): Replace with stub.
* config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Delete OPTION_MASK_LRA.
* config/rs6000/rs6000.c (TARGET_LRA_P): Delete.
(rs6000_debug_reg_global): Delete print of LRA status.
(rs6000_option_override_internal): Delete dead LRA related code.
(rs6000_lra_p): Delete function.
* doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mlra.

gcc/testsuite/

* g++.dg/pr69667.C: Remove option -mlra.
* gcc.target/powerpc/dform-1.c: Likewise.
* gcc.target/powerpc/dform-2.c: Likewise.
* gcc.target/powerpc/dform-3.c: Likewise.
* gcc.target/powerpc/p8vector-int128-1.c: Likewise.
* gcc.target/powerpc/p9-vparity.c: Likewise.
* gcc.target/powerpc/pr63491.c: Likewise.
* gcc.target/powerpc/pr67808.c: Likewise.
* gcc.target/powerpc/pr68805.c: Likewise.
* gcc.target/powerpc/pr69461.c: Likewise.
* gcc.target/powerpc/pr71680.c: Likewise.
* gcc.target/powerpc/pr77289.c: Likewise.
* gcc.target/powerpc/pr78458.c: Likewise.
* gcc.target/powerpc/pr78543.c: Likewise.
* g++.dg/pr71294.C: Remove option -mno-lra.
* gcc.target/powerpc/pr71656-1.c: Likewise.
* gcc.target/powerpc/pr71656-2.c: Likewise.
* gcc.target/powerpc/pr71698.c: Likewise.

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

8 years ago PR c/45784
jakub [Thu, 27 Jul 2017 19:13:42 +0000 (19:13 +0000)] 
PR c/45784
* c-omp.c (c_finish_omp_for): If the condition is wrapped in
rhs of COMPOUND_EXPR(s), skip them and readd their lhs into
new COMPOUND_EXPRs around the rhs of the comparison.

* testsuite/libgomp.c/pr45784.c: New test.
* testsuite/libgomp.c++/pr45784.C: New test.

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

8 years agoAdd RTEMS support
palmer [Thu, 27 Jul 2017 16:41:27 +0000 (16:41 +0000)] 
Add RTEMS support

gcc/ChangeLog

2017-07-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>

* config.gcc (riscv*-*-elf*): Add (riscv*-*-rtems*).
* config/riscv/rtems.h: New file.

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

8 years ago[PATCH][AArch64] Fix missing optimization for CMP+AND
jgreenhalgh [Thu, 27 Jul 2017 16:29:31 +0000 (16:29 +0000)] 
[PATCH][AArch64] Fix missing optimization for CMP+AND

During combine GCC tries to merge CMP (with zero) and AND into a TST. However,
in cases where an ANDS operand is not compatible, this was being missed. Adding
a define_split where this operand was moved to a register seems to help out.

Committed on behalf of Sudi Das

---
gcc/

2017-07-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
    Sudakshina Das  <sudi.das@arm.com>

* config/aarch64/aarch64.md
(define_split for and<mode>3nr_compare): Move
non aarch64_logical_operand to a register.
(define_split for and_<SHIFT:optab><mode>3nr_compare0): Move non
register immediate operand to a register.
* config/aarch64/predicates.md (aarch64_mov_imm_operand): New.

gcc/testsuite

2017-07-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
    Sudakshina Das  <sudi.das@arm.com>

* gcc.target/aarch64/tst_imm_split_1.c: New Test.

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

8 years ago PR c/81417
mpolacek [Thu, 27 Jul 2017 15:02:17 +0000 (15:02 +0000)] 
PR c/81417
* c-warn.c (warn_for_sign_compare): Tweak the warning message.  Print
the types.

* c-c++-common/Wsign-compare-1.c: New test.
* g++.dg/warn/Wsign-compare-2.C: Update dg-warning.
* g++.dg/warn/Wsign-compare-4.C: Likewise.
* g++.dg/warn/Wsign-compare-6.C: Likewise.
* g++.dg/warn/compare1.C: Likewise.
* gcc.dg/compare1.c: Likewise.
* gcc.dg/compare2.c: Likewise.
* gcc.dg/compare4.c: Likewise.
* gcc.dg/compare5.c: Likewise.
* gcc.dg/pr35430.c: Likewise.
* gcc.dg/pr60087.c: Likewise.

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

8 years agogcc/
bergner [Thu, 27 Jul 2017 14:05:14 +0000 (14:05 +0000)] 
gcc/
PR middle-end/81564
* tree-cfg.c (group_case_labels_stmt): Handle already deleted blocks.

gcc/testsuite/
PR middle-end/81564
* gcc.dg/pr81564.c: New test.

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

8 years ago2017-07-27 Richard Biener <rguenther@suse.de>
rguenth [Thu, 27 Jul 2017 13:46:07 +0000 (13:46 +0000)] 
2017-07-27  Richard Biener  <rguenther@suse.de>

PR tree-optimization/81573
PR tree-optimization/81494
* tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
multi defuse cycle case.

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

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

8 years ago2017-07-27 Richard Biener <rguenther@suse.de>
rguenth [Thu, 27 Jul 2017 13:44:51 +0000 (13:44 +0000)] 
2017-07-27  Richard Biener  <rguenther@suse.de>

PR tree-optimization/81571
* tree-vect-slp.c (vect_build_slp_tree): Properly verify reduction
PHIs.

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

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

8 years agoValidate that Init value is within range defined by IntegerRange.
marxin [Thu, 27 Jul 2017 12:58:07 +0000 (12:58 +0000)] 
Validate that Init value is within range defined by IntegerRange.

2017-07-27  Martin Liska  <mliska@suse.cz>

* opt-functions.awk: Add validation of value of Init.
* optc-gen.awk: Pass new argument.

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

8 years ago * config/sparc/sparc.c (sparc_option_override): Set MASK_FSMULD flag
ebotcazou [Thu, 27 Jul 2017 12:56:03 +0000 (12:56 +0000)] 
* config/sparc/sparc.c (sparc_option_override): Set MASK_FSMULD flag
earlier and only if MASK_FPU is set.  Adjust formatting.

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

8 years agoFix indirect call optimization done by autoFDO.
marxin [Thu, 27 Jul 2017 12:54:17 +0000 (12:54 +0000)] 
Fix indirect call optimization done by autoFDO.

2017-07-27  Martin Liska  <mliska@suse.cz>

* auto-profile.c (autofdo_source_profile::update_inlined_ind_target):
Fix wrong condition.

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

8 years agoInitialize counters in autoFDO to zero, not to uninitialized.
marxin [Thu, 27 Jul 2017 12:53:34 +0000 (12:53 +0000)] 
Initialize counters in autoFDO to zero, not to uninitialized.

2017-07-27  Martin Liska  <mliska@suse.cz>

* auto-profile.c (afdo_annotate_cfg): Assign zero counts to
BBs and edges seen by autoFDO.

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

8 years ago2017-07-27 Richard Biener <rguenther@suse.de>
rguenth [Thu, 27 Jul 2017 12:01:21 +0000 (12:01 +0000)] 
2017-07-27  Richard Biener  <rguenther@suse.de>

PR tree-optimization/81502
* tree-ssa.c (non_rewritable_lvalue_p): Handle BIT_INSERT_EXPR
with incompatible but same sized type.
(execute_update_addresses_taken): Likewise.

* gcc.target/i386/vect-insert-1.c: New testcase.

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

8 years ago[Patch (preapproved)] Guard Copy Header pass on
jgreenhalgh [Thu, 27 Jul 2017 11:42:17 +0000 (11:42 +0000)] 
[Patch (preapproved)] Guard Copy Header pass on

While answering a user question on the equivalence of
-ftree-loop-vectorize + -ftree-slp-vectorize and -ftree-vectorize I
spotted one case which broke the equivalence. pass_ch::process_loop_p
was guarded on flag_tree_vectorize, meaning you would get it for
-ftree-vectorize, but not for -ftree-loop-vectorize/-ftree-slp-vectorize.

This patch fixes that, getting rid of the only use of flag_tree_vectorize
in the code base.

gcc/

* tree-ssa-loop-ch.c (pass_ch::process_loop_p): Guard on
flag_tree_loop_vectorize rather than flag_tree_vectorize.

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

8 years agoS/390: Fix PR81534
krebbel [Thu, 27 Jul 2017 10:39:49 +0000 (10:39 +0000)] 
S/390: Fix PR81534

The HI/QI atomic_fetch_<atomic><mode>" expander accepted symbolic
references and emitted CAS patterns whose insn predicates rejected them.

Fixed by allowing symbolic references there as well.  Reload will get
rid of them due to the constraint letter.

Regression tested on s390x.

gcc/ChangeLog:

2017-07-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

PR target/81534
* config/s390/s390.md ("*atomic_compare_and_swap<mode>_1")
("*atomic_compare_and_swapdi_2", "*atomic_compare_and_swapsi_3"):
Change s_operand to memory_operand.

gcc/testsuite/ChangeLog:

2017-07-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

PR target/81534
* gcc.target/s390/pr81534.c: New test.

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

8 years ago[rs6000] Avoid rotates of floating-point modes
rsandifo [Thu, 27 Jul 2017 09:38:54 +0000 (09:38 +0000)] 
[rs6000] Avoid rotates of floating-point modes

The little-endian VSX code uses rotates to swap the two 64-bit halves of
128-bit scalar modes.  This is fine for TImode and V1TImode, but it
isn't really valid to use RTL rotates on floating-point modes like
KFmode and TFmode, and doing that triggered an assert added by the
SVE series.  This patch uses bit-casts to V1TImode instead.

2017-07-27  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
* config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_permute): Declare.
* config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Replace with...
(rs6000_emit_le_vsx_permute): ...this.  Take the destination as input.
Emit instructions rather than returning an expression.  Handle TFmode
and KFmode by casting to TImode.
(rs6000_emit_le_vsx_load): Update to use rs6000_emit_le_vsx_permute.
(rs6000_emit_le_vsx_store): Likewise.
* config/rs6000/vsx.md (VSX_TI): New iterator.
(*vsx_le_permute_<mode>): Use it instead of VSX_LE_128.
(*vsx_le_undo_permute_<mode>): Likewise.
(*vsx_le_perm_load_<mode>): Use rs6000_emit_le_vsx_permute to
emit the split sequence.
(*vsx_le_perm_store_<mode>): Likewise.

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

8 years ago PR tree-optimization/81555
jakub [Thu, 27 Jul 2017 08:49:16 +0000 (08:49 +0000)] 
PR tree-optimization/81555
PR tree-optimization/81556
* tree-ssa-reassoc.c (rewrite_expr_tree): Add NEXT_CHANGED argument,
if true, force CHANGED for the recursive invocation.
(reassociate_bb): Remember original length of ops array, pass
len != orig_len as NEXT_CHANGED in rewrite_expr_tree call.

* gcc.c-torture/execute/pr81555.c: New test.
* gcc.c-torture/execute/pr81556.c: New test.

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

8 years ago * attribs.c (decl_attributes): Imply noinline, noclone and no_icf
jakub [Thu, 27 Jul 2017 07:53:33 +0000 (07:53 +0000)] 
* attribs.c (decl_attributes): Imply noinline, noclone and no_icf
attributes for noipa attribute.  For naked attribute use
lookup_attribute first before lookup_attribute_spec.
* final.c (rest_of_handle_final): Disable IPA RA for functions with
noipa attribute.
* ipa-visibility.c (non_local_p): Fix comment typos.  Return true
for functions with noipa attribute.
(cgraph_externally_visible_p): Return true for functions with noipa
attribute.
* cgraph.c (cgraph_node::get_availability): Return AVAIL_INTERPOSABLE
for functions with noipa attribute.
* doc/extend.texi: Document noipa function attribute.
* tree-ssa-structalias.c (refered_from_nonlocal_fn): Set *nonlocal_p
also for functions with noipa attribute.
(ipa_pta_execute): Set nonlocal_p also for nodes with noipa attribute.
c-family/
* c-attribs.c (c_common_attribute_table): Add noipa attribute.
(handle_noipa_attribute): New function.
testsuite/
* gcc.dg/attr-noipa.c: New test.
* gcc.dg/ipa/ipa-pta-18.c: New test.
* gcc.dg/ipa/ipa-sra-11.c: New test.

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

8 years agoDaily bump.
gccadmin [Thu, 27 Jul 2017 00:16:30 +0000 (00:16 +0000)] 
Daily bump.

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

8 years ago2017-07-26 Andrew Pinski <apinski@cavium.com>
pinskia [Wed, 26 Jul 2017 23:31:26 +0000 (23:31 +0000)] 
2017-07-26  Andrew Pinski  <apinski@cavium.com>

        * config/aarch64/aarch64.c (thunderx_vector_cost): Decrease cost of
        vec_unalign_load_cost and vec_unalign_store_cost.

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

8 years ago[gcc]
meissner [Wed, 26 Jul 2017 23:03:41 +0000 (23:03 +0000)] 
[gcc]
2017-07-26  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete
-mvsx-small-integer option.
(ISA_3_0_MASKS_IEEE): Likewise.
(OTHER_VSX_VECTOR_MASKS): Likewise.
(POWERPC_MASKS): Likewise.
* config/rs6000/rs6000.opt (-mvsx-small-integer): Likewise.
* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Simplify
code, only testing for DImode being allowed in non-VSX floating
point registers.
(rs6000_init_hard_regno_mode_ok): Change TARGET_VSX_SMALL_INTEGER
to TARGET_P8_VECTOR test.  Remove redundant VSX test inside of
another VSX test.
(rs6000_option_override_internal): Delete -mvsx-small-integer.
(rs6000_expand_vector_set): Change TARGET_VSX_SMALL_INTEGER to
TARGET_P8_VECTOR test.
(rs6000_secondary_reload_simple_move): Likewise.
(rs6000_preferred_reload_class): Delete TARGET_VSX_SMALL_INTEGER,
since TARGET_P9_VECTOR was already tested.
(rs6000_opt_masks): Remove -mvsx-small-integer.
* config/rs6000/vsx.md (vsx_extract_<mode>): Delete
TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
used.
(vsx_extract_<mode>_p9): Delete TARGET_VSX_SMALL_INTEGER, since a
test for TARGET_VEXTRACTUB was used, and that uses
TARGET_P9_VECTOR.
(p9 extract splitter): Likewise.
(vsx_extract_<mode>_di_p9): Likewise.
(vsx_extract_<mode>_store_p9): Likewise.
(vsx_extract_si): Delete TARGET_VSX_SMALL_INTEGER, since a test
for TARGET_P9_VECTOR was used.  Delete code that is now dead with
the elimination of TARGET_VSX_SMALL_INTEGER.
(vsx_extract_<mode>_p8): Likewise.
(vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>): Likewise.
(vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Likewise.
(vsx_set_<mode>_p9): Likewise.
(vsx_set_v4sf_p9): Likewise.
(vsx_set_v4sf_p9_zero): Likewise.
(vsx_insert_extract_v4sf_p9): Likewise.
(vsx_insert_extract_v4sf_p9_2): Likewise.
* config/rs6000/rs6000.md (sign extend splitter): Change
TARGET_VSX_SMALL_INTEGER to TARGET_P8_VECTOR test.
(floatsi<mode>2_lfiwax_mem): Likewise.
(floatunssi<mode>2_lfiwzx_mem): Likewise.
(float<QHI:mode><FP_ISA3:mode>2): Delete TARGET_VSX_SMALL_INTEGER,
since a test for TARGET_P9_VECTOR was used.
(float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
(floatuns<QHI:mode><FP_ISA3:mode>2): Likewise.
(floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
(fix_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
TARGET_P8_VECTOR test.
(fix_trunc<mode>si2_stfiwx): Likewise.
(fix_trunc<mode>si2_internal): Likewise.
(fix_trunc<SFDF:mode><QHI:mode>2): Delete
TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
used.
(fix_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
(fixuns_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
TARGET_P8_VECTOR test.
(fixuns_trunc<mode>si2_stfiwx): Likewise.
(fixuns_trunc<SFDF:mode><QHI:mode>2): Delete
TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
used.
(fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
(fctiw<u>z_<mode>_smallint): Delete TARGET_VSX_SMALL_INTEGER,
since a test for TARGET_P9_VECTOR was used.
(splitter for loading small constants): Likewise.

[gcc/testsuite]
2017-07-25  Michael Meissner  <meissner@linux.vnet.ibm.com>

* gcc.target/powerpc/vsx-himode.c: Delete -mvsx-small-integer
option.
* gcc.target/powerpc/vsx-himode2.c: Likewise.
* gcc.target/powerpc/vsx-himode3.c: Likewise.
* gcc.target/powerpc/vsx-qimode.c: Likewise.
* gcc.target/powerpc/vsx-qimode2.c: Likewise.
* gcc.target/powerpc/vsx-qimode3.c: Likewise.
* gcc.target/powerpc/vsx-simode.c: Likewise.
* gcc.target/powerpc/vsx-simode2.c: Likewise.
* gcc.target/powerpc/vsx-simode3.c: Likewise.

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

8 years agoPR libstdc++/53984 fix failing test
redi [Wed, 26 Jul 2017 22:06:13 +0000 (22:06 +0000)] 
PR libstdc++/53984 fix failing test

PR libstdc++/53984
* testsuite/27_io/basic_fstream/53984.cc: Fix test.

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

8 years ago PR go/81548
ian [Wed, 26 Jul 2017 22:01:36 +0000 (22:01 +0000)] 
PR go/81548
* Makefile.am (MOSTLYCLEANFILES): Add *.sent.
* Makefile.in: Rebuild.

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

8 years ago2017-07-26 Andrew Pinski <apinski@cavium.com>
pinskia [Wed, 26 Jul 2017 21:51:05 +0000 (21:51 +0000)] 
2017-07-26  Andrew Pinski  <apinski@cavium.com>

        * config/aarch64/aarch64.c (thunderx_vector_cost): Fix
        vec_fp_stmt_cost.

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

8 years ago/cp
paolo [Wed, 26 Jul 2017 21:46:22 +0000 (21:46 +0000)] 
/cp
2017-07-26  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/71570
* lambda.c (add_capture): Early return if we cannot capture by
reference.

/testsuite
2017-07-26  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/71570
* g++.dg/cpp0x/lambda/lambda-ice17.C: New.

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

8 years ago * configure.ac: Check for XCOFF32/XCOFF64. Check for loadquery.
ian [Wed, 26 Jul 2017 21:43:28 +0000 (21:43 +0000)] 
* configure.ac: Check for XCOFF32/XCOFF64.  Check for loadquery.
* filetype.awk: Separate AIX XCOFF32 and XCOFF64.
* xcoff.c: Add support for AIX XCOFF32 and XCOFF64 formats.
* configure, config.h.in: Regenerate.

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

8 years ago runtime: handle Alpha GNU/Linux in getSiginfo
ian [Wed, 26 Jul 2017 20:20:22 +0000 (20:20 +0000)] 
runtime: handle Alpha GNU/Linux in getSiginfo

    Patch by Uros Bizjak.

    Reviewed-on: https://go-review.googlesource.com/51370

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

8 years agox86: Properly check saved register CFA offset
hjl [Wed, 26 Jul 2017 19:13:23 +0000 (19:13 +0000)] 
x86: Properly check saved register CFA offset

X86 prologue saves register at CFA offset.  Since its location on stack
is computed as CFA - its CFA_OFFSET, CFA_OFFSET points the end of the
saved register area on stack.  This patch updates sp_valid_at and
fp_valid_at to properly check saved register CFA offset.

gcc/

PR target/81563
* config/i386/i386.c (sp_valid_at): Properly check CFA offset.
(fp_valid_at): Likewise.

gcc/testsuite/

PR target/81563
* gcc.target/i386/pr81563.c: New test

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

8 years ago[Patch AArch64 obvious] Unify address costs to generic_addrcost_table
jgreenhalgh [Wed, 26 Jul 2017 17:40:39 +0000 (17:40 +0000)] 
[Patch AArch64 obvious] Unify address costs to generic_addrcost_table

The special case address cost tables for Cortex-A57 and qdf24xx are no
different from the generic address cost table. We should just use the
address cost table directly. If this changes in future, a core is welcome
to add new address cost tables.

gcc/

* config/aarch64/aarch64.c (cortexa57_addrcost_table): Remove.
(qdf24xx_addrcost_table): Likewise.
(cortexa57_tunings): Update to use generic_branch_cost.
(cortexa72_tunings): Likewise.
(cortexa73_tunings): Likewise.
(qdf24xx_tunings): Likewise.

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

8 years ago P0702R1 - List deduction of vector.
jason [Wed, 26 Jul 2017 17:39:31 +0000 (17:39 +0000)] 
P0702R1 - List deduction of vector.

* pt.c (do_class_deduction): Special-case deduction from a single
element of related type.

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

8 years ago PR c++/67054 - Inherited ctor with non-default-constructible members
jason [Wed, 26 Jul 2017 17:39:26 +0000 (17:39 +0000)] 
    PR c++/67054 - Inherited ctor with non-default-constructible members
        * method.c (walk_field_subobs) Consider member initializers (NSDMIs)
when deducing an inheriting constructor.

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

8 years ago[Patch AArch64 Obvious] Unify branch costs to generic_branch_cost
jgreenhalgh [Wed, 26 Jul 2017 17:39:12 +0000 (17:39 +0000)] 
[Patch AArch64 Obvious] Unify branch costs to generic_branch_cost

All the cores in AArch64 use the pair {1, 3} for their branch costs. As
that is covered by generic_branch_cost, we can just use that directly and
save the tiny amount of redundant code. If in future any core wants to
modify this, they can always add a special-case branch-cost back.

gcc/

* config/aarch64/aarch64.c (cortexa57_branch_cost): Remove.
(thunderx2t99_branch_cost): Likewise.
(cortexa35_tunings): Update to use generic_branch_cost.
(cortexa53_tunings): Likewise.
(cortexa57_tunings): Likewise.
(cortexa72_tunings): Likewise.
(cortexa73_tunings): Likewise.
(thunderx2t99_tunings): Likewise.

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

8 years ago2017-07-26 Paolo Carlini <paolo.carlini@oracle.com>
paolo [Wed, 26 Jul 2017 14:13:15 +0000 (14:13 +0000)] 
2017-07-26  Paolo Carlini  <paolo.carlini@oracle.com>

* testsuite/27_io/basic_fstream/53984.cc: Fix typo in dg-require
directive.

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

8 years ago[SPARC] Add -mfsmuld option
sh [Wed, 26 Jul 2017 12:39:43 +0000 (12:39 +0000)] 
[SPARC] Add -mfsmuld option

Add the -mfsmuld option to control the generation of the FsMULd
instruction.  In general, this instruction is available in architecture
version V8 and V9 CPUs with FPU.  Some CPUs of this category do not
support this instruction properly, e.g. AT697E, AT697F and UT699.  Some
CPUs of this category do not implement it in hardware, e.g. LEON3/4 with
GRFPU-lite.

gcc/
* config/sparc/sparc.c (dump_target_flag_bits): Dump MASK_FSMULD.
(sparc_option_override): Honour MASK_FSMULD.
* config/sparc/sparc.h (MASK_FEATURES): Add MASK_FSMULD.
* config/sparc/sparc.md (muldf3_extend): Use TARGET_FSMULD.
* config/sparc/sparc.opt (mfsmuld): New option.
* doc/invoke.texi (mfsmuld): Document option.

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

8 years agoDisable pr79041-2.c with -mabi=ilp32.
wilco [Wed, 26 Jul 2017 11:55:03 +0000 (11:55 +0000)] 
Disable pr79041-2.c with -mabi=ilp32.

    gcc/testsuite/
PR target/79041
* gcc.target/aarch64/pr79041-2.c: Don't run in ILP32.

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

8 years ago PR middle-end/70992
mpolacek [Wed, 26 Jul 2017 11:53:17 +0000 (11:53 +0000)] 
PR middle-end/70992
* tree.c (build2_stat): Don't set TREE_CONSTANT on divisions by zero.

* gcc.dg/overflow-warn-1.c: Adjust dg-error.
* gcc.dg/overflow-warn-2.c: Likewise.
* gcc.dg/overflow-warn-3.c: Likewise.
* gcc.dg/overflow-warn-4.c: Likewise.
* gcc.dg/torture/pr70992-2.c: New test.
* gcc.dg/torture/pr70992.c: New test.

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

8 years ago2017-07-26 Richard Biener <rguenther@suse.de>
rguenth [Wed, 26 Jul 2017 11:35:45 +0000 (11:35 +0000)] 
2017-07-26  Richard Biener  <rguenther@suse.de>

* gimple-match-head.c (do_valueize): Return OP if valueize
returns NULL_TREE.
(get_def): New helper to get at the def stmt of a SSA name
if valueize allows.
* genmatch.c (dt_node::gen_kids_1): Use get_def instead of
do_valueize to get at the def stmt.
(dt_operand::gen_gimple_expr): Simplify do_valueize calls.

* gcc/testsuite/gcc.dg/pr70920-2.c: Adjust for transform already
happening in ccp1.
* gcc/testsuite/gcc.dg/pr70920-4.c: Likewise.

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

8 years agoFix PR46932: Block auto increment on frame pointer
wilco [Wed, 26 Jul 2017 10:49:17 +0000 (10:49 +0000)] 
Fix PR46932: Block auto increment on frame pointer

Block auto increment on frame pointer references.  This is never
beneficial since the SFP expands into SP+C or FP+C during register
allocation.  The generated code for the testcase is now as expected:

str x30, [sp, -32]!
strb w0, [sp, 31]
add x0, sp, 31
bl foo3
ldr x30, [sp], 32
ret

    gcc/
PR middle-end/46932
* auto-inc-dec.c (parse_add_or_inc): Block autoinc on sfp.

    gcc/testsuite/
PR middle-end/46932
* gcc.dg/pr46932.c: New testcase.

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

8 years agoMove non-local goto expansion after parm_birth_insn (PR sanitize/81186).
marxin [Wed, 26 Jul 2017 08:52:37 +0000 (08:52 +0000)] 
Move non-local goto expansion after parm_birth_insn (PR sanitize/81186).

2017-07-26  Martin Liska  <mliska@suse.cz>

PR sanitize/81186
* function.c (expand_function_start): Make expansion of
nonlocal_goto_save_area after parm_birth_insn.
2017-07-26  Martin Liska  <mliska@suse.cz>

PR sanitize/81186
* gcc.dg/asan/pr81186.c: New test.

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

8 years ago[SPARC] Drop superfluous MASK_FPU enable
sh [Wed, 26 Jul 2017 08:28:12 +0000 (08:28 +0000)] 
[SPARC] Drop superfluous MASK_FPU enable

All TARGET_DEFAULT defines set MASK_FPU.  There is no need to set it in
some CPU target flags enable.

gcc/
* config/sparc/sparc.c (sparc_option_override): Remove MASK_FPU
from all CPU target flags enable members.

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

8 years ago2017-07-25 Richard Biener <rguenther@suse.de>
rguenth [Wed, 26 Jul 2017 07:36:07 +0000 (07:36 +0000)] 
2017-07-25  Richard Biener  <rguenther@suse.de>

* genmatch.c (dt_simplify::gen): Make iterator vars const.
(decision_tree::gen): Make 'type' const.
(write_predicate): Likewise.

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

8 years ago2017-07-24 Michael Meissner <meissner@linux.vnet.ibm.com>
meissner [Wed, 26 Jul 2017 04:15:23 +0000 (04:15 +0000)] 
2017-07-24  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok):
Eliminate TARGET_UPPER_REGS_{DF,DI,SF} usage.
(rs6000_option_override_internal): Likewise.
(rs6000_expand_vector_set): Likewise.
* config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Delete.
(TARGET_UPPER_REGS_SF): Likewise.
(TARGET_UPPER_REGS_DI): Likewise.
(TARGET_VEXTRACTUB): Eliminate TARGET_UPPER_REGS_{DF,DI,SF}.
(TARGET_DIRECT_MOVE_64BIT): Likewise.
* config/rs6000/rs6000.md (ALTIVEC_DFORM): Likewise.
(float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
(Splitters for DI constants in Altivec registers): Likewise.
* config/rs6000/vsx.md (vsx_set_<mode>_p9): Likewise.
(vsx_set_v4sf_p9): Likewise.
(vsx_set_v4sf_p9_zero): Likewise.
(vsx_insert_extract_v4sf_p9): Likewise.
(vsx_insert_extract_v4sf_p9_2): Likewise.

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

8 years agoDaily bump.
gccadmin [Wed, 26 Jul 2017 00:16:22 +0000 (00:16 +0000)] 
Daily bump.

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