Commit Graph

154022 Commits

Author SHA1 Message Date
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
Pierre-Marie de Rodat 9285616cbd DWARF: for variants, produce unsigned discr. when debug type is unsigned
In Ada, the Character type is supposed to be unsigned.  However,
depending on the sign of C char types, GNAT can materialize it as a
signed type for code generation purposes.  When this is the case, GNAT
also attach a debug type to it so it is represented as an unsigned base
type in the debug information.

This change adapts record variant parts processing in the DWARF back-end
so that when the debug type of discriminant is unsigned while
discriminant values are signed themselves, we output unsigned
discriminant values in DWARF.

gcc/

	* dwarf2out.c (get_discr_value): Call the get_debug_type hook on
	the type of the input discriminant value.  Convert the
	discriminant value of signedness vary.

gcc/testsuite/

	* gnat.dg/debug11.adb: New testcase.

From-SVN: r248773
2017-06-01 08:36:57 +00:00
Volker Reichelt 3fa4634c92 c.opt (Wcatch-value): New shortcut for Wcatch-value=1.
* c.opt (Wcatch-value): New shortcut for Wcatch-value=1.
        (Wcatch-value=1): Enable by -Wall.

        * doc/invoke.texi (-Wcatch-value): Document new shortcut.
        Add to -Wall section.

From-SVN: r248772
2017-06-01 08:10:24 +00:00
Richard Biener 48932682a5 re PR middle-end/66313 (Unsafe factorization of a*b+a*c)
2017-06-01  Richard Biener  <rguenther@suse.de>

	PR middle-end/66313
	* fold-const.c (fold_plusminus_mult_expr): If the factored
	factor may be zero use a wrapping type for the inner operation.
	* tree-tailcall.c (independent_of_stmt_p): Pass in to_move bitmap
	and handle moved defs.
	(process_assignment): Properly guard the unary op case.  Return a
	tri-state indicating that moving the stmt before the call may allow
	to continue.  Pass through to_move.
	(find_tail_calls): Handle moving unrelated defs before
	the call.

	* c-c++-common/ubsan/pr66313.c: New testcase.
	* gcc.dg/tree-ssa/loop-15.c: Adjust.

From-SVN: r248771
2017-06-01 08:05:24 +00:00
GCC Administrator 58cdd35b95 Daily bump.
From-SVN: r248770
2017-06-01 00:16:19 +00:00
Steven Munroe fcb9912403 Fix up dg options to resolve make check failures Bill Seurer found
when compiling --with-cpu=power6.

2017-05-31  Steven Munroe  <munroesj@gcc.gnu.org>

	* gcc.target/powerpc/bmi2-pdep32-1.c: Add -mcpu=power7 to
        dg-options.  Change dg-require-effective-target powerpc_vsx_ok
        to vsx_hw.  Add dg-skip-if directive to disable this test if
	-mcpu overridden.
	* gcc.target/powerpc/bmi2-pdep64-1.c: Likewise.
	* gcc.target/powerpc/bmi2-pext32-1.c: Likewise.
	* gcc.target/powerpc/bmi2-pext64-1.c: Likewise.
	* gcc.target/powerpc/bmi2-pext64-1a.c: Add -mcpu=power7
	to dg-option.  Add dg-skip-if directive to disable this test
	for darwin.  Add dg-skip-if directive to disable this test if
	-mcpu overridden.

From-SVN: r248766
2017-06-01 00:15:51 +00:00
Ian Lance Taylor 30bc05cfcb libgo: support for sparc64 GNU/Linux
Fix lfstack code to work with sparc64 GNU/Linux address map.
    
    Force alignment of epollevent.  To make this work reliably, pass
    GOARCH explicitly to mkrsysinfo.sh.
    
    Patch by Vladimir Mezentsev.
    
    Reviewed-on: https://go-review.googlesource.com/44494

From-SVN: r248765
2017-05-31 21:36:42 +00:00