Commit Graph

154228 Commits

Author SHA1 Message Date
GCC Administrator
eb64690cd5 Daily bump.
From-SVN: r248851
2017-06-03 00:16:17 +00:00
Paolo Carlini
bd280745ee re PR c++/68754 (Explicitly defaulted constexpr assignment operator fails to compile)
2017-06-02  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/68754
	* g++.dg/cpp1y/constexpr-68754.C: New.

From-SVN: r248847
2017-06-02 23:27:22 +00:00
Carl Love
3fd44c8a79 rs6000-c: Add support for built-in functions vector double vec_doublee (vector signed int)...
gcc/ChangeLog:

2017-06-02  Carl Love  <cel@us.ibm.com>

   * config/rs6000/rs6000-c: Add support for built-in functions
   vector double vec_doublee (vector signed int);
   vector double vec_doublee (vector unsigned int);
   vector double vec_doublee (vector float);
   vector double vec_doubleh (vector signed int);
   vector double vec_doubleh (vector unsigned int);
   vector double vec_doubleh (vector float);
   vector double vec_doublel (vector signed int);
   vector double vec_doublel (vector unsigned int);
   vector double vec_doublel (vector float);
   vector double vec_doubleo (vector signed int);
   vector double vec_doubleo (vector unsigned int);
   vector double vec_doubleo (vector float);.
   * config/rs6000/rs6000-builtin.def: Add definitions for DOUBLEE,
   DOUBLEO, DOUBLEH, DOUBLEL, UNS_DOUBLEO, UNS_DOUBLEE, UNS_DOUBLEH,
   UNS_DOUBLEL.
   * config/rs6000/altivec.md: Add code generator for doublee<mode>2,
   unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2, doubleh<mode>2,
   unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2, add mode attribute
   VS_sxwsp.
   * config/rs6000/altivec.h: Add define for vec_doublee, vec_doubleo,
   vec_doublel, vec_doubleh.
   * doc/extend.texi: Update the built-in documentation file for the
   new built-in functions.

2017-06-02  Carl Love  <cel@us.ibm.com>

gcc/testsuite/ChangeLog:

   * gcc.target/powerpc/builtins-3-runnable.c: New file of runnable tests
   for the new built-ins.

From-SVN: r248846
2017-06-02 20:11:40 +00:00
Jonathan Wakely
4c19e432d6 PR libstdc++/80624 satisfy invariant for char_traits<char16_t>::eof()
PR libstdc++/80624
	* doc/xml/manual/status_cxx2011.xml: Document to_int_type behaviour.
	* include/bits/char_traits.h (char_traits<char16_t>::to_int_type):
	Transform eof value to U+FFFD.
	* testsuite/21_strings/char_traits/requirements/char16_t/eof.cc: New.
	* testsuite/27_io/basic_streambuf/sgetc/char16_t/80624.cc: New.
	* testsuite/27_io/basic_streambuf/sputc/char16_t/80624.cc: New.

From-SVN: r248843
2017-06-02 19:35:37 +01:00
David Malcolm
0cbae4a7a2 Fix segfault in free_growth_caches (PR jit/80954)
gcc/ChangeLog:
	PR jit/80954
	* ipa-inline-analysis.c (free_growth_caches): Set
	edge_removal_hook_holder to NULL after removing it.

From-SVN: r248841
2017-06-02 17:07:37 +00:00
Olivier Hainque
38a75ccc89 Add ChangeLog entry for revision 248838
From-SVN: r248839
2017-06-02 16:46:44 +00:00
Olivier Hainque
ee834d3b93 vxlib.c (__gthread_once): Add missing value to nested return statement.
2017-06-02  Olivier Hainque  <hainque@adacore.com>

	* config/vxlib.c (__gthread_once): Add missing value to
	nested return statement.

From-SVN: r248838
2017-06-02 16:24:28 +00:00
Olivier Hainque
f876304201 vx_crtbegin_auto.c: New file.
2017-06-02  Olivier Hainque  <hainque@adacore.com>

	* vx_crtbegin_auto.c: New file.
	* vx_crtbegin.c: New file.
	* vx_crtbegin.inc: New file.
	* vx_crtend.c: New file.

From-SVN: r248837
2017-06-02 16:02:24 +00:00
Sudakshina Das
ffa8a92137 [PATCH][AArch64] Allow CMP+SHIFT when comparing with zero
gcc/

	* config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
	comparision with zero.

gcc/testsuite/

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

From-SVN: r248836
2017-06-02 15:32:41 +00:00
Kyrylo Tkachov
b160939bf3 [AArch64] Add HF vector modes to lane-to-lane INS pattern
* config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
        Use VALL_F16 iterator rather than VALL.

        * gcc.target/aarch64/hfmode_ins_1.c: New test.

From-SVN: r248835
2017-06-02 15:03:54 +00:00
Will Schmidt
d65d1bd970 rs6000.c (rs6000_gimple_fold_builtin): Add handling for early expansion of vec_min and vec_max builtins.
[gcc]

2017-06-02  Will Schmidt  <will_schmidt@vnet.ibm.com>
	* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
	for early expansion of vec_min and vec_max builtins.
	(builtin_function_type): Add min/max unsigned variants to those
	identified as having unsigned arguments.

[gcc/testsuite]

2017-06-02  Will Schmidt  <will_schmidt@vnet.ibm.com>

	*  testsuite/gcc.target/powerpc/fold-vec-minmax-char.c: New.
	*  testsuite/gcc.target/powerpc/fold-vec-minmax-floatdouble.c: New.
	*  testsuite/gcc.target/powerpc/fold-vec-minmax-int.c: New.
	*  testsuite/gcc.target/powerpc/fold-vec-minmax-longlong.c: New.
	*  testsuite/gcc.target/powerpc/fold-vec-minmax-short.c: New.

From-SVN: r248834
2017-06-02 15:02:25 +00:00
Olivier Hainque
a9945ae286 vx-common.h (DWARF_UNWIND_INFO): Switch #define to 1.
2017-06-02  Olivier Hainque  <hainque@adacore.com>

	* config/vx-common.h (DWARF_UNWIND_INFO): Switch #define to 1.

From-SVN: r248833
2017-06-02 15:00:43 +00:00
Kyrylo Tkachov
17f47f8621 [AArch64] Emit tighter strong atomic compare-exchange loop when comparing against zero
* config/aarch64/aarch64.c (aarch64_split_compare_and_swap):
	Emit CBNZ inside loop when doing a strong exchange and comparing
	against zero.  Generate the CC flags after the loop.

	* gcc.target/aarch64/atomic_cmp_exchange_zero_strong_1.c: New test.

From-SVN: r248832
2017-06-02 14:41:52 +00:00
David Edelsohn
e3bd1c6873 dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
* dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
        (dl_section_ref): New.
        (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref.
        On AIX, append an expression to subtract the size of the
        section length to dl_section_ref.

From-SVN: r248831
2017-06-02 10:27:15 -04:00
Will Schmidt
ab82e126e7 rs6000.c (rs6000_gimple_fold_builtin): Add handling for early expansion of vector absolute builtins.
[gcc]

2017-05-31  Will Schmidt  <will_schmidt@vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
	for early expansion of vector absolute builtins.

[gcc/testsuite]

2017-05-31  Will Schmidt  <will_schmidt@vnet.ibm.com>

	* gcc.target/powerpc/fold-vec-abs-char.c: New.
	* gcc.target/powerpc/fold-vec-abs-floatdouble.c: New.
	* gcc.target/powerpc/fold-vec-abs-int.c: New.
	* gcc.target/powerpc/fold-vec-abs-longlong.c: New.
	* gcc.target/powerpc/fold-vec-abs-short.c: New.
	* gcc.target/powerpc/fold-vec-abs-char-fwrapv.c: New.
	* gcc.target/powerpc/fold-vec-abs-int-fwrapv.c: New.
	* gcc.target/powerpc/fold-vec-abs-longlong-fwrapv.c: New.
	* gcc.target/powerpc/fold-vec-abs-short-fwrapv.c: New.

From-SVN: r248830
2017-06-02 14:21:55 +00:00
Nathan Sidwell
fb3a2657b2 Remove lang_type_ptrmem.
Changlogs:
	cp/
	Remove lang_type_ptrmem.
	* cp-tree.h (lang_type_header): Remove is_lang_type_class. Move
	into ...
	(lang_type_class): ... this.  Reorder bitfields.  Rename to ...
	(lang_type): ... this.  Delete old definition.
	(lang_type_ptrmem): Delete.
	(LANG_TYPE_CLASS_CHECK): Simply get TYPE_LANG_SPECIFIC.  Adjust
	uses.
	(LANG_TYPE_PTRMEM_CHECK): Delete.
	(TYPE_GET_PTRMEMFUNC_TYPE, TYPE_SET_PTRMEMFUNC_TYPE): Delete.
	(TYPE_PTRMEMFUNC_TYPE): New.  Use TYPE_LANG_SLOT_1.
	* decl.c (build_ptrmemfunc_type): Adjust.
	* lex.c (copy_lang_type): Remove lang_type_ptrmem handling.
	(maybe_add_lang_type_raw): Don't set u.c.h.is_lang_type_class.

	objcp/
	* objcp-decl.h (SIZEOF_OBJC_TYPE_LANG_SPECIFIC): Use lang_type.
	(ALLOC_OBJC_TYPE_LANG_SPECIFIC): Use it.  Don't set
	u.c.h.is_lang_type_class.

From-SVN: r248827
2017-06-02 13:27:45 +00:00
Nathan Sidwell
030cfa22cb Remove lang_type_ptrmem.
cp/
	Remove lang_type_ptrmem.
	* cp-tree.h (lang_type_header): Remove is_lang_type_class. Move
	into ...
	(lang_type_class): ... this.  Reorder bitfields.  Rename to ...
	(lang_type): ... this.  Delete old definition.
	(lang_type_ptrmem): Delete.
	(LANG_TYPE_CLASS_CHECK): Simply get TYPE_LANG_SPECIFIC.  Adjust
	uses.
	(LANG_TYPE_PTRMEM_CHECK): Delete.
	(TYPE_GET_PTRMEMFUNC_TYPE, TYPE_SET_PTRMEMFUNC_TYPE): Delete.
	(TYPE_PTRMEMFUNC_TYPE): New.  Use TYPE_LANG_SLOT_1.
	* decl.c (build_ptrmemfunc_type): Adjust.
	* lex.c (copy_lang_type): Remove lang_type_ptrmem handling.
	(maybe_add_lang_type_raw): Don't set u.c.h.is_lang_type_class.

	objcp/
	* objcp-decl.h (SIZEOF_OBJC_TYPE_LANG_SPECIFIC): Use lang_type.
	(ALLOC_OBJC_TYPE_LANG_SPECIFIC): Use it.  Don't set
	u.c.h.is_lang_type_class.

From-SVN: r248826
2017-06-02 13:23:08 +00:00
Richard Biener
9186a9d353 tree-vect-slp.c (vect_detect_hybrid_slp_2): Match up what we consider a relevant use stmt with vect_detect_hybrid_slp_stmts.
2017-06-02  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.c (vect_detect_hybrid_slp_2): Match up
	what we consider a relevant use stmt with vect_detect_hybrid_slp_stmts.

From-SVN: r248825
2017-06-02 13:11:11 +00:00
Richard Biener
bd53b2574d re PR tree-optimization/80948 (test case gcc.dg/torture/pr68017.c fails with ICE starting with r248771)
2017-06-02  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/80948
	* tree-tailcall.c (find_tail_calls): Track stmts to move in
	stmt order as well.

From-SVN: r248824
2017-06-02 12:34:32 +00:00
Jonathan Wakely
ef3985dbd1 Remove libsupc++ makefile targets setting -std=gnu++11 or -std=gnu++14
* libsupc++/Makefile.am: Remove custom targets for files that need to
	be compiled as C++11 or C++14.
	* libsupc++/Makefile.in: Regenerate.
	* libsupc++/del_ops.cc: Use pragma to disable -Wsized-deallocation
	warnings.
	* libsupc++/del_opvs.cc: Likewise.

From-SVN: r248823
2017-06-02 12:49:04 +01:00
Nathan Sidwell
c957e9c052 name-lookup.h (cp_binding_level): Lose namespaces field.
* name-lookup.h (cp_binding_level): Lose namespaces field.
	* name-lookup.c (add_decl_to_level): Chain namespaces on the names
	list.
	(suggest_alternatives_for): Adjust for namespace list.  Do
	breadth-first search.
	* decl2.c (collect_source_refs): Namespaces are on the regulr
	list.
	(collect_ada_namespace): Likewise.

	* g++.dg/pr45330.C: Adjust.  Check breadth-firstness.

From-SVN: r248821
2017-06-02 11:02:26 +00:00
Richard Biener
643a9684fa tree-vect-loop.c (vect_analyze_loop_operations): Not relevant PHIs are ok.
2017-06-02  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.c (vect_analyze_loop_operations): Not relevant
	PHIs are ok.
	* tree-vect-stmts.c (process_use): Do not mark backedge defs
	for inductions as relevant.

From-SVN: r248820
2017-06-02 10:26:10 +00:00
Richard Biener
e7754973ed tree-vect-loop.c (get_initial_def_for_induction): Inline into ...
2017-06-02  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.c (get_initial_def_for_induction): Inline into ...
	(vectorizable_induction): ... this.  Remove dead code.

From-SVN: r248819
2017-06-02 10:25:22 +00:00
Eric Botcazou
b7e52782f6 * builtins. (expand_builtin_alloca): Remove second parameter and
infer its value from the first parameter instead.
	(expand_builtin) <BUILT_IN_ALLOCA>: Adjust call to above.

From-SVN: r248818
2017-06-02 09:57:40 +00:00
Richard Biener
1c26adb74d re PR libstdc++/80721 (Sorting/Merging of free EH-emergency buffer may wrong or uncomplete)
2017-06-02  Richard Biener  <rguenther@suse.de>
	Markus Eisenmann  <meisenmann.lba@fh-salzburg.ac.at>

	PR libstdc++/80721
	* libsupc++/eh_alloc.cc (pool::free): Keep list properly
	sorted and add missing freelist item merging cases.

Co-Authored-By: Markus Eisenmann <meisenmann.lba@fh-salzburg.ac.at>

From-SVN: r248816
2017-06-02 08:10:48 +00:00
Jakub Jelinek
74b4885d94 re PR rtl-optimization/80903 (ICE: internal consistency failure (error: invalid rtl sharing found in the insn))
PR rtl-optimization/80903
	* loop-doloop.c (add_test): Unshare sequence.

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

From-SVN: r248815
2017-06-02 10:07:15 +02:00
Jakub Jelinek
aad16012aa re PR fortran/80918 (Assumed size whole array rejected in depend clause)
PR fortran/80918
	* openmp.c (resolve_omp_clauses): Fix a typo.

	* gfortran.dg/gomp/pr80918.f90: New test.

From-SVN: r248812
2017-06-02 09:07:29 +02:00
Bernd Edlinger
40ffd95f56 invoke.texi: Document the -Wsizeof-pointer-div warning.
gcc:
2017-06-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * doc/invoke.texi: Document the -Wsizeof-pointer-div warning.

gcc/c-family:
2017-06-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * c.opt (Wsizeof-pointer-div): New warning option.

gcc/c:
2017-06-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * c-parser.c (c_parser_binary_expression): Implement the
        -Wsizeof_pointer_div warning.
        (c_parser_postfix_expression): Allow SIZEOF_EXPR as expr.original_code
        from a parenthesized expression.
        (c_parser_expr_list): Use c_last_sizeof_loc.
        * c-tree.h (c_last_sizeof_loc): New external.
        * c-typeck.c (c_last_sizeof_loc): New variable.
        (c_expr_sizeof_expr, c_expr_sizeof_type): Assign c_last_sizeof_loc.

gcc/cp:
2017-06-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * typeck.c (cp_build_binary_op): Implement the -Wsizeof_pointer_div
        warning.

gcc/testsuite:
2017-06-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * c-c++-common/Wsizeof-pointer-div.c: New test. 
        * gcc.dg/Wsizeof-pointer-memaccess1.c: Add test cases with parens.
        * gcc.dg/torture/Wsizeof-pointer-memaccess1.c: Likewise.
        * gcc.target/i386/sse-init-v4hi-1.c: Fix test case.
        * gcc.target/i386/sse-init-v4sf-1.c: Likewise.
        * gcc.target/i386/sse-set-ps-1.c: Likewise.
        * gcc.target/i386/sse2-init-v16qi-1.c: Likewise.
        * gcc.target/i386/sse2-init-v2di-1.c: Likewise.
        * gcc.target/i386/sse2-init-v4si-1.c: Likewise.
        * gcc.target/i386/sse2-init-v8hi-1.c: Likewise.
        * gcc.target/i386/sse2-set-epi32-1.c: Likewise.
        * gcc.target/i386/sse2-set-epi64x-1.c: Likewise.
        * gcc.target/i386/sse4_1-init-v16qi-1.c: Likewise.
        * gcc.target/i386/sse4_1-init-v2di-1.c: Likewise.
        * gcc.target/i386/sse4_1-init-v4sf-1.c: Likewise.
        * gcc.target/i386/sse4_1-init-v4si-1.c: Likewise.
        * gcc.target/i386/sse4_1-set-epi32-1.c: Likewise.
        * gcc.target/i386/sse4_1-set-epi64x-1.c: Likewise.
        * gcc.target/i386/sse4_1-set-ps-1.c: Likewise.
        * libgomp.c/pr39591-2.c: Likewise.
        * libgomp.c/pr39591-3.c: Likewise.

From-SVN: r248811
2017-06-02 04:06:59 +00:00
GCC Administrator
616dbacbac Daily bump.
From-SVN: r248810
2017-06-02 00:16:22 +00:00
Will Schmidt
052754ea18 fold-vec-logical-ors-longlong.c: Update the target to power8-vector.
[gcc/testsuite]

2017-05-26  Will Schmidt  <will_schmidt@vnet.ibm.com>

	* gcc.target/powerpc/fold-vec-logical-ors-longlong.c:
	Update the target to power8-vector.

From-SVN: r248805
2017-06-01 22:00:45 +00:00
Joseph Myers
d80d523964 * es.po: Update.
From-SVN: r248802
2017-06-01 22:15:55 +01:00
David Malcolm
aa63913f73 testsuite: ensure GCC_COLORS is unset
gcc/testsuite/ChangeLog:
	* lib/gcc-dg.exp: Ensure GCC_COLORS is unset.

From-SVN: r248800
2017-06-01 19:43:13 +00:00
Bernd Edlinger
77560086aa i386.c (x86_64_ms_sysv_extra_clobbered_registers): Make static.
2017-06-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers): Make
        static.
        (xlogue_layout::get_stack_space_used, xlogue_layout::s_instances,
        xlogue_layout::get_instance, logue_layout::xlogue_layout,
        sp_valid_at, fp_valid_at, choose_basereg): Formatting.
        (xlogue_layout::get_stub_rtx): Make static.
        (xlogue_layout::get_stub_name): Avoid const-cast, make static.
        (xlogue_layout::compute_stub_managed_regs): Rename to...
        (xlogue_layout::count_stub_managed_regs): ...this.
        (xlogue_layout::is_stub_managed_reg): New function.
        (xlogue_layout::m_stub_names): Rename to...
        (xlogue_layout::s_stub_names): ...this, make static.
        (xlogue_layout::STUB_INDEX_OFFSET, xlogue_layout::MIN_REGS,
        xlogue_layout::MAX_REGS, xlogue_layout::MAX_EXTRA_REGS,
        xlogue_layout::VARIANT_COUNT, xlogue_layout::STUB_NAME_MAX_LEN,
        xlogue_layout::s_stub_names): Instantiate statics.
        (stub_managed_regs): Remove.
        (ix86_save_reg): Use xlogue_layout::compute_stub_managed_regs.
        (disable_call_ms2sysv_xlogues): Rename to...
        (warn_once_call_ms2sysv_xlogues): ...this, and warn only once.
        (ix86_initial_elimination_offset, ix86_expand_call): Fix call_ms2sysv
        warning logic.
        (ix86_static_chain): Make sure that ix86_static_chain_on_stack can't
        change after reload_completed.
        (ix86_can_use_return_insn_p): Use the ix86_frame data structure
        directly.
        (ix86_expand_prologue): Likewise.
        (ix86_expand_epilogue): Likewise.
        (ix86_expand_split_stack_prologue): Likewise.
        (ix86_compute_frame_layout): Remove frame parameter ...
        (TARGET_COMPUTE_FRAME_LAYOUT): ... and export it as a target hook.
        (ix86_finalize_stack_realign_flags): Call ix86_compute_frame_layout
        only if necessary.
        (ix86_init_machine_status): Don't set use_fast_prologue_epilogue_nregs.
        (ix86_frame): Move from here ...
        * config/i386/i386.h (ix86_frame): ... to here.
        (machine_function): Remove use_fast_prologue_epilogue_nregs, cache the
        complete ix86_frame data structure instead.  Remove some_ld_name.

From-SVN: r248798
2017-06-01 19:30:47 +00:00
Pierre-Marie de Rodat
2ded3754ad DWARF: add DW_AT_location for global decls with DECL_VALUE_EXPR
In GNAT, we materialize renamings that cannot be described in standard
DWARF as synthetic variables that describe how to fetch the renamed
object.  Look for "___XR" in gcc/ada/exp_dbug.ads for more details about
this convention.

In order to have a location for these variables in the debug info (GDB
requires it not to discard the variable) but also to avoid allocating
runtime space for them, we make these variable hold a DECL_VALUE_EXPR
tree.  However, since GCC 7, the DWARF back-end no longer generates a
DW_AT_location attribute for those.  This patch is an attempt to restore
this attribute.

gcc/

	* dwarf2out.c (dwarf2out_late_global_decl): Add locations for
	symbols that hold a DECL_VALUE_EXPR.

gcc/testsuite/

	* debug12.adb, debug12.ads: New testcase.

From-SVN: r248792
2017-06-01 14:06:37 +00:00
Rainer Orth
e34fd4dc1c Fix cross compilation to Solaris
(GLIBCXX_CROSSCONFIG): Handle *-solaris* like *-linux* etc.
	Remove *-solaris* section.
	* configure: Regenerate.

From-SVN: r248791
2017-06-01 13:50:03 +00:00
Martin Jambor
c8638450ab [PR 80898] Propagate grp_write from disqualified SRA candidates
2017-06-01  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/80898
	* tree-sra.c (process_subtree_disqualification): Removed.
	(disqualify_candidate): Do not acll
	process_subtree_disqualification.
	(subtree_mark_written_and_enqueue): New function.
	(propagate_all_subaccesses): Set grp_write of LHS subtree if the
	RHS has been disqualified and re-queue LHS if necessary.  Apart
	from that, ignore disqualified RHS.

testsuite/
	* gcc.dg/tree-ssa/pr80898.c: New test.
	* gcc.dg/tree-ssa/pr80898-2.c: Likewise.

From-SVN: r248790
2017-06-01 14:14:29 +02:00
Andreas Krebbel
4ba66aee9e S/390: Don't fetch the return address early with ooo
We used to load the return address slot some time in advance.  This
helped on older machines to resolve the data dependencies in time.
However, it is pointless on out of order CPUs.  Disabled with that
patch.

gcc/ChangeLog:

2017-06-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_emit_epilogue): Disable early return
	address fetch for z10 or later.

From-SVN: r248789
2017-06-01 11:30:36 +00:00
Ville Voutilainen
e257141f07 re PR c++/80812 (ICE: in build_value_init_noctor, at cp/init.c:483)
PR c++/80812

cp/

PR c++/80812
* method.c (constructible_expr): Strip array types before calling
build_value_init.

libstdc++/

PR c++/80812
* testsuite/20_util/is_constructible/80812.cc: New.

From-SVN: r248788
2017-06-01 14:09:41 +03:00
Eric Botcazou
2d16708fa1 re PR ada/80921 (cross compiling fails to build Ada shared libraries)
PR ada/80921
	* configure.ac (default_gnatlib_target): Remove bogus condition.
	(have_getipinfo): Tweak.
	* configure: Regenerate.

From-SVN: r248785
2017-06-01 10:51:15 +00:00
Paolo Carlini
ac853c9071 re PR c++/80896 ([[nodiscard]] is ignored for functions returning references)
/cp
2017-06-01  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/80896
	* cvt.c (convert_to_void): Possibly call maybe_warn_nodiscard
	for case INDIRECT_REF too in the main switch.

/testsuite
2017-06-01  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/80896
	* g++.dg/cpp1z/nodiscard5.C: New.

From-SVN: r248784
2017-06-01 10:20:27 +00:00
Claudiu Zissulescu
7841f13c80 [ARC] Fix tst_movb pattern.
The tst_movb pattern is missing guarding when spitting.

gcc/
2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.md (tst_movb): Add guard when splitting.

testsuite/
2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>

	* gcc.target/arc/pr9001195952.c: New test.

From-SVN: r248783
2017-06-01 11:43:10 +02:00
Claudiu Zissulescu
19dc47524f [ARC] Test against frame_pointer_needed in arc_can_eliminate.
arc_can_eliminate is using arc_frmae_pointer_required() which is wrong
as the frame_pointer_needed can be set on different conditions. Fix it
by calling arc_frame_pointer_needed().

gcc/
2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.c (arc_can_eliminate): Test against
	arc_frame_pointer_needed.

From-SVN: r248782
2017-06-01 11:42:59 +02:00
Claudiu Zissulescu
2daad50b02 [ARC] Prevent moving stores to the frame before the stack adjustment.
If the stack pointer is needed, emit a special barrier that will prevent
the scheduler from moving stores to the frame before the stack adjustment.

For example:

[snip]
	mov_s	fp,sp 	; frame pointer is set here
[snip]
	st	r1,[fp,-24]	; frame pointer is used here
[snip]
	sub_s	sp,sp,0x20	; stack pointer adjusted

So we can easily see that any interrupt between the `st` and `sub`
instruction will lead to faulty code as the interrupt routine will use
a faulty sp register, and, potentially, overwriting the value stored
by 'st' instruction. Thus, adding a scheduler barrier will force the
compiler to emit the `sub` instruction before the store one.

2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.c (arc_expand_prologue): Emit a special barrier
	to prevent store reordering.
	* config/arc/arc.md (UNSPEC_ARC_STKTIE): Define.
	(type): Add block type.
	(stack_tie): Define special instruction to be used in
	expand_prologue.

From-SVN: r248781
2017-06-01 11:42:49 +02:00
Claudiu Zissulescu
6f70ebc3d1 [ARC] Update (non)commutative_binary_comparison patterns.
gcc/
2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.md (commutative_binary_comparison): Remove 'I'
	constraint. It is not valid for the pattern.
	(noncommutative_binary_comparison): Likewise.

From-SVN: r248780
2017-06-01 11:42:39 +02:00
Claudiu Zissulescu
30c0df2aa3 [ARC] Change predicate movv2hi to avoid scaled addresses.
2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/simdext.md (movv2hi_insn): Change predicate to avoid
	scaled addresses.

From-SVN: r248779
2017-06-01 11:42:27 +02:00
Claudiu Zissulescu
23c98523af [ARC] Allow r30 to be used by the reg-alloc.
gcc/
2018-06-01  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.c (arc_conditional_register_usage): Allow r30 to
	be used by the reg-alloc.

From-SVN: r248778
2017-06-01 11:42:06 +02:00
Claudiu Zissulescu
0f75b66845 [ARC] Avoid use of hard registers before reg-alloc.
gcc/
2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.md (mulsi3): Avoid use of hard registers before
	reg-alloc when having mul64 or mul32x16 instructions.
	(mulsidi3): Likewise.
	(umulsidi3): Likewise.
	(mulsi32x16): New pattern.
	(mulsi64): Likewise.
	(mulsidi64): Likewise.
	(umulsidi64): Likewise.
	(MUL32x16_REG): Define.
	(mul64_600): Use MUL32x16_REG.
	(mac64_600): Likewise.
	(umul64_600): Likewise.
	(umac64_600): Likewise.

From-SVN: r248777
2017-06-01 11:41:46 +02:00
Claudiu Zissulescu
f533fdf6cc [ARC] Make mulsi for A700 pattern commutative.
gcc/
2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.md (mulsi3_700): Make it commutative.

From-SVN: r248776
2017-06-01 11:41:13 +02:00
Tom de Vries
f525e390d5 Require label_values for some test-cases
2017-06-01  Tom de Vries  <tom@codesourcery.com>

	* c-c++-common/pr43395.c: Add dg-require-effective-target label_values.
	* gcc.c-torture/compile/asmgoto-1.c: Same.
	* gcc.dg/20000707-1.c: Same.
	* gcc.dg/pr38700.c: Same.
	* gcc.dg/pr70169.c: Same.
	* gcc.dg/pr80112.c: Same.
	* gcc.dg/torture/pr51071-2.c: Same.
	* gcc.dg/torture/pr51071.c: Same.
	* gcc.dg/tree-ssa/alias-34.c: Same.

From-SVN: r248775
2017-06-01 09:13:09 +00:00
Jose E. Marchesi
96e1c37da7 sparc.md (*zero_extendsidi2_insn_sp64): Set insn type for movstouw.
gcc/ChangeLog:
	* config/sparc/sparc.md (*zero_extendsidi2_insn_sp64): Set insn
	type for movstouw.
	(*sign_extendsidi2_insn): Likewise for movstosw.

From-SVN: r248774
2017-06-01 10:43:22 +02:00