Commit Graph

149948 Commits

Author SHA1 Message Date
Rainer Orth 0021284370 Add PR sanitizer/78267 patch to libsanitizer/LOCAL_PATCHES
From-SVN: r242634
2016-11-20 10:51:53 +00:00
Rainer Orth 97448adf21 Fix libsanitizer build on OS X 10.1[01], macOS 10.12 (PR sanitizer/78267)
fixincludes:
	PR sanitizer/78267
	* inclhack.def (darwin_availabilityinternal, darwin_os_trace_1)
	(darwin_os_trace_2, darwin_os_trace_3): New fixes.
	(hpux_stdint_least_fast): Remove spurious _EOFix_.
	* fixincl.x: Regenerate.
	* tests/bases/AvailabilityInternal.h: New file.
	* tests/bases/os/trace.h: New file.

2016-11-20  Jack Howarth  <howarth.at.gcc@gmail.com>

	libsanitizer:
	PR sanitizer/78267
	* sanitizer_common/sanitizer_mac.cc: Include <os/trace.h> only if
	compiler supports blocks extension.

From-SVN: r242633
2016-11-20 10:49:47 +00:00
GCC Administrator 71b9f645fb Daily bump.
From-SVN: r242632
2016-11-20 00:16:18 +00:00
Andreas Schwab b8271a3824 comp-goto-1.c (insn_t): Change offset to signed int.
* gcc.c-torture/execute/comp-goto-1.c (insn_t): Change offset to
signed int.

From-SVN: r242629
2016-11-19 20:15:18 +00:00
Jakub Jelinek 90b47c5174 i386.c (ix86_can_inline_p): Use || instead of & when checking if callee's isa flags are subset of caller's...
* config/i386/i386.c (ix86_can_inline_p): Use || instead of &
	when checking if callee's isa flags are subset of caller's isa flags.
	Fix comment wording.

From-SVN: r242628
2016-11-19 19:57:56 +01:00
Jakub Jelinek ed8b3aba44 i386.c (ix86_valid_target_attribute_tree): Don't clear opts->x_ix86_isa_flags...
* config/i386/i386.c (ix86_valid_target_attribute_tree): Don't
	clear opts->x_ix86_isa_flags, clear opts->x_ix86_isa_flags2
	instead and using = 0 instead of &= 0.

From-SVN: r242627
2016-11-19 19:57:26 +01:00
Jakub Jelinek 253a20de71 i386.c (def_builtin, [...]): Formatting fixes.
* config/i386/i386.c (def_builtin, def_builtin2, def_builtin_const2,
	ix86_add_new_builtins): Formatting fixes.
	(ix86_expand_builtin): Use || instead of && for isa vs. isa2.
	(ix86_get_builtin): Likewise.

From-SVN: r242626
2016-11-19 19:56:47 +01:00
Jakub Jelinek c1b7577391 i386.c (ix86_expand_builtin): Remove msk_mov variable...
* config/i386/i386.c (ix86_expand_builtin): Remove msk_mov variable,
	don't initialize it, don't use it for the case where it isn't
	provable %{z} nor using the same argument, instead move merge
	argument into a new pseudo and use that as target.  Formatting fixes.

From-SVN: r242625
2016-11-19 19:56:16 +01:00
John David Anglin ddba26a412 coarray_alloc_comp_1.f08: Add "-latomic" option if libatomic_available.
* gfortran.dg/coarray_alloc_comp_1.f08: Add "-latomic" option if
	libatomic_available.
	* gfortran.dg/coarray_alloc_comp_2.f08: Likewise.
	* gfortran.dg/coarray_allocate_10.f08: Likewise.
	* gfortran.dg/coarray_allocate_7.f08: Likewise.
	* gfortran.dg/coarray_allocate_8.f08: Likewise.
	* gfortran.dg/coarray_allocate_9.f08: Likewise.
	* gfortran.dg/coarray_send_by_ref_1.f08: Likewise.
	* gfortran.dg/coarray_stat_2.f90: Likewise.
	* gfortran.dg/coindexed_1.f90: Likewise.

From-SVN: r242624
2016-11-19 18:14:21 +00:00
Jeff Law 636a9a8900 re PR target/25111 ([m68k] bset is not used for A = 1 << (B & 31) on ColdFire)
PR target/25111
	* config/m68k/m68k.md (bsetdreg): New pattern.
	(bchgdreg, bclrdreg): Likewise.

	PR target/25111
	* gcc.target/m68k/pr25111.c: New test.

From-SVN: r242623
2016-11-19 10:52:04 -07:00
Kaz Kojima e8fe0e4617 re PR target/78426 (wrong code with strncmp on SH)
PR target/78426
	* config/sh/sh-mem.cc (sh_expand_cmpnstr): Use copy_to_mode_reg
	instead of force_reg.
	(sh_expand_setmem): Likewise.

From-SVN: r242622
2016-11-19 13:59:47 +00:00
Krister Walfridsson 0333b8d06d config.gcc (*-*-netbsd): Set use_gcc_stdint=wrap.
2016-11-19  Krister Walfridsson  <krister.walfridsson@gmail.com>

	* config.gcc (*-*-netbsd): Set use_gcc_stdint=wrap.

From-SVN: r242621
2016-11-19 10:49:16 +00:00
Walter Lee aa8df486e8 TILE-Gx: Fix bundling when encountering consecutive barriers.
* config/tilegx/tilegx.c (tilegx_gen_bundles): Preserve
          end-of-bundle marker for consecutive barriers.

From-SVN: r242617
2016-11-19 02:34:17 +00:00
Walter Lee 814049be46 TILE-Gx: fix clzsi2 for big-endian.
* config/tilegx/tilegx.md (clzsi2): Fix for big-endian.

From-SVN: r242616
2016-11-19 02:30:41 +00:00
Walter Lee 7a384912f9 TILEPro: force gcc to link against libgcc.a when creating shared
libraries.

        * config.host (tilepro*-*-linux*): Add t-slibgcc-libgcc.

From-SVN: r242615
2016-11-19 02:28:00 +00:00
GCC Administrator 5a2cb4f3ed Daily bump.
From-SVN: r242613
2016-11-19 00:16:18 +00:00
Jakub Jelinek 521c54ddc2 re PR c++/68180 ([ICE] at cp/constexpr.c:2768 in initializing __vector in a loop)
PR c++/68180
	* g++.dg/cpp1y/pr68180.C: Add -Wno-psabi as dg-additional-options.

From-SVN: r242610
2016-11-19 00:51:30 +01:00
Jakub Jelinek 5e7c77616e re PR middle-end/78419 (ICE with target_clone on invalid target)
PR middle-end/78419
	* multiple_target.c (get_attr_len): Start with argnum and increment
	argnum on every arg.  Use strchr in a loop instead of counting commas
	manually.
	(get_attr_str): Increment argnum for every comma in the string.
	(separate_attrs): Use for instead of while loop, simplify.
	(expand_target_clones): Rename defenition argument to definition.
	Free attrs and attr_str even when diagnosing errors.  Temporarily
	change input_location around targetm.target_option.valid_attribute_p
	calls.  Don't emit warning or errors if that function fails.

	* gcc.target/i386/pr78419.c: New test.

From-SVN: r242608
2016-11-18 23:21:31 +01:00
Jakub Jelinek 6c554a2ab8 re PR c++/77285 (extern thread_local linkage)
PR c++/77285
	* mangle.c (mangle_tls_init_fn, mangle_tls_wrapper_fn): Call
	check_abi_tags.

	* g++.dg/tls/pr77285-1.C: New test.
	* g++.dg/tls/pr77285-2.C: New test.

From-SVN: r242607
2016-11-18 22:56:50 +01:00
Jakub Jelinek 33305b74b7 re PR debug/78191 (ICE in calc_die_sizes)
* dwarf2out.c (size_of_discr_list): Fix typo in function comment.

	PR debug/78191
	* dwarf2out.c (abbrev_opt_base_type_end): New variable.
	(die_abbrev_cmp): Sort dies with die_abbrev smaller than
	abbrev_opt_base_type_end only by increasing die_abbrev, before
	any other dies.
	(optimize_abbrev_table): Don't change abbrev numbers of
	base types and CU or optimize implicit consts in them if
	calc_base_type_die_sizes has been called during build_abbrev_table.
	(calc_base_type_die_sizes): If abbrev_opt_start, set
	abbrev_opt_base_type_end to one plus largest base type's
	die_abbrev.

From-SVN: r242606
2016-11-18 22:55:46 +01:00
Jeff Law 57d7fe867c re PR target/25112 ([m68k] Suboptimal equality comparisons with small integers)
PR target/25112
	* config/m68k/m68k.c (moveq feeding equality comparison): New
	peepholes.
	* config/m68k/predicates.md (addq_subq_operand): New predicate.
	(equality_comparison_operator): Likewise.

	PR target/25112
	* gcc.target/m68k/pr25112: New test.

From-SVN: r242605
2016-11-18 14:52:32 -07:00
Jason Merrill 0bdc4c1ce9 PR c++/67631 - list-init and explicit conversions
* semantics.c (finish_compound_literal): Call digest_init_flags.
	* typeck2.c (digest_init_flags): Add complain parm.
	(store_init_value): Pass it.

From-SVN: r242603
2016-11-18 15:27:26 -05:00
David Edelsohn 1b2e03037f pr71179.c: Prune ABI message.
* gcc.dg/tree-ssa/pr71179.c: Prune ABI message.
        * gcc.dg/tree-ssa/ssa-fre-55.c: Same.

From-SVN: r242602
2016-11-18 13:41:37 -05:00
Richard Sandiford 421619baa5 Make load_extend_op an inline function
gcc/
	* rtlanal.c (load_extend_op): Move to...
	* rtl.h: ...here and make inline.

From-SVN: r242601
2016-11-18 18:26:34 +00:00
Ian Lance Taylor 092dd2bc33 runtime: move schedt type and sched var from C to Go
This doesn't change any actual code, it just starts using the Go
    definition of the schedt type and the sched variable rather than the C
    definitions.
    
    The schedt type is tweaked slightly for gccgo.  We aren't going to
    release goroutine stacks, so we don't need separate gfreeStack and
    gfreeNostack lists.  We only have one size of defer function, so we
    don't need a list of 5 different pools.
    
    Reviewed-on: https://go-review.googlesource.com/33364

From-SVN: r242600
2016-11-18 17:48:29 +00:00
Thomas Preud'homme 70e73d3c42 [ARM] Optional -mthumb for Thumb only targets
2016-11-18  Terry Guo  <terry.guo@arm.com>
            Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * common/config/arm/arm-common.c (arm_target_thumb_only): New function.
    * config/arm/arm-opts.h: Include arm-flags.h.
    (struct arm_arch_core_flag): Define.
    (arm_arch_core_flags): Define.
    * config/arm/arm-protos.h: Include arm-flags.h
    (FL_NONE, FL_ANY, FL_CO_PROC, FL_ARCH3M, FL_MODE26, FL_MODE32,
    FL_ARCH4, FL_ARCH5, FL_THUMB, FL_LDSCHED, FL_STRONG, FL_ARCH5E,
    FL_XSCALE, FL_ARCH6, FL_VFPV2, FL_WBUF, FL_ARCH6K, FL_THUMB2, FL_NOTM,
    FL_THUMB_DIV, FL_VFPV3, FL_NEON, FL_ARCH7EM, FL_ARCH7, FL_ARM_DIV,
    FL_ARCH8, FL_CRC32, FL_SMALLMUL, FL_NO_VOLATILE_CE, FL_IWMMXT,
    FL_IWMMXT2, FL_ARCH6KZ, FL2_ARCH8_1, FL2_ARCH8_2, FL2_FP16INST,
    FL_TUNE, FL_FOR_ARCH2, FL_FOR_ARCH3, FL_FOR_ARCH3M, FL_FOR_ARCH4,
    FL_FOR_ARCH4T, FL_FOR_ARCH5, FL_FOR_ARCH5T, FL_FOR_ARCH5E,
    FL_FOR_ARCH5TE, FL_FOR_ARCH5TEJ, FL_FOR_ARCH6, FL_FOR_ARCH6J,
    FL_FOR_ARCH6K, FL_FOR_ARCH6Z, FL_FOR_ARCH6ZK, FL_FOR_ARCH6KZ,
    FL_FOR_ARCH6T2, FL_FOR_ARCH6M, FL_FOR_ARCH7, FL_FOR_ARCH7A,
    FL_FOR_ARCH7VE, FL_FOR_ARCH7R, FL_FOR_ARCH7M, FL_FOR_ARCH7EM,
    FL_FOR_ARCH8A, FL2_FOR_ARCH8_1A, FL2_FOR_ARCH8_2A, FL_FOR_ARCH8M_BASE,
    FL_FOR_ARCH8M_MAIN, arm_feature_set, ARM_FSET_MAKE,
    ARM_FSET_MAKE_CPU1, ARM_FSET_MAKE_CPU2, ARM_FSET_CPU1, ARM_FSET_CPU2,
    ARM_FSET_EMPTY, ARM_FSET_ANY, ARM_FSET_HAS_CPU1, ARM_FSET_HAS_CPU2,
    ARM_FSET_HAS_CPU, ARM_FSET_ADD_CPU1, ARM_FSET_ADD_CPU2,
    ARM_FSET_DEL_CPU1, ARM_FSET_DEL_CPU2, ARM_FSET_UNION, ARM_FSET_INTER,
    ARM_FSET_XOR, ARM_FSET_EXCLUDE, ARM_FSET_IS_EMPTY,
    ARM_FSET_CPU_SUBSET): Move to ...
    * config/arm/arm-flags.h: This new file.
    * config/arm/arm.h (TARGET_MODE_SPEC_FUNCTIONS): Define.
    (EXTRA_SPEC_FUNCTIONS): Add TARGET_MODE_SPEC_FUNCTIONS to its value.
    (TARGET_MODE_SPECS): Define.
    (DRIVER_SELF_SPECS): Add TARGET_MODE_SPECS to its value.

    gcc/testsuite/
    * gcc.target/arm/optional_thumb-1.c: New test.
    * gcc.target/arm/optional_thumb-2.c: New test.
    * gcc.target/arm/optional_thumb-3.c: New test.

From-SVN: r242597
2016-11-18 16:45:37 +00:00
Thomas Preud'homme 05237cf81e Make arm_feature_set agree with type of FL_* macros
2016-11-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config/arm/arm-protos.h (FL_NONE, FL_ANY, FL_CO_PROC, FL_ARCH3M,
    FL_MODE26, FL_MODE32, FL_ARCH4, FL_ARCH5, FL_THUMB, FL_LDSCHED,
    FL_STRONG, FL_ARCH5E, FL_XSCALE, FL_ARCH6, FL_VFPV2, FL_WBUF,
    FL_ARCH6K, FL_THUMB2, FL_NOTM, FL_THUMB_DIV, FL_VFPV3, FL_NEON,
    FL_ARCH7EM, FL_ARCH7, FL_ARM_DIV, FL_ARCH8, FL_CRC32, FL_SMALLMUL,
    FL_NO_VOLATILE_CE, FL_IWMMXT, FL_IWMMXT2, FL_ARCH6KZ, FL2_ARCH8_1,
    FL2_ARCH8_2, FL2_FP16INST): Reindent comment, add final dot when
    missing and make value unsigned.
    (arm_feature_set): Use unsigned entries instead of unsigned long.

From-SVN: r242596
2016-11-18 16:45:26 +00:00
Toma Tabacu 0954a00b9d MAINTAINERS (Write After Approval): Add myself.
2016-11-18  Toma Tabacu  <toma.tabacu@imgtec.com>

	* MAINTAINERS (Write After Approval): Add myself.

From-SVN: r242595
2016-11-18 16:34:13 +00:00
Ian Lance Taylor d6255159e8 runtime: don't call __go_alloc/__go_free in environment functions
Reviewed-on: https://go-review.googlesource.com/33363

From-SVN: r242594
2016-11-18 16:03:13 +00:00
Ian Lance Taylor d519aeda8b libgo: remove old/regexp and old/template
They were removed from the master Go library in 2012
    (https://golang.org/cl/5979046) but somehow that was not reflected here.
    
    Reviewed-on: https://go-review.googlesource.com/33391

From-SVN: r242592
2016-11-18 14:51:13 +00:00
Dominik Vogt 151c204ff8 S/390: Lower requirements for successful htm tests.
The attached patch makes the htm tests on s390 less sensitive to
spurious abort.  Please check the commit comment for details.  The
modified tests have been run once on a zEC12.

gcc/ChangeLog:

2016-11-18  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_stack_info): PR/77359: Properly align
	local variables in functions calling alloca.  Also update the ASCII
	drawings
	* config/rs6000/rs6000.h (STARTING_FRAME_OFFSET, STACK_DYNAMIC_OFFSET):
	PR/77359: Likewise.
	* config/rs6000/aix.h (STARTING_FRAME_OFFSET, STACK_DYNAMIC_OFFSET):
	PR/77359: Copy AIX specific versions of the rs6000.h macros to aix.h.

From-SVN: r242591
2016-11-18 14:50:27 +00:00
Dominik Vogt d793185949 Re-apply: Drop excess size used for run time allocated stack variables.
The patch got reverted after hitting PR77359 which turned out to be a
rs6000 backend problem.  Reapplying after the PR got fixed.

gcc/ChangeLog:

2016-11-18  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	Re-apply after PR bootstrap/77359 is fixed:
	2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>

        * explow.c (get_dynamic_stack_size): Take known alignment of stack
        pointer + STACK_DYNAMIC_OFFSET into account when calculating the
        size needed.

--This line, and those below, will be
ignored--

M    gcc/ChangeLog
M    gcc/explow.c

From-SVN: r242590
2016-11-18 14:44:54 +00:00
Dominik Vogt a7790c7174 RS6000: Fix PR 77359: Properly align local variables in functions calling alloca.
gcc/ChangeLog:

2016-11-18  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (rs6000_stack_info): PR/77359: Properly align
	local variables in functions calling alloca.  Also update the ASCII
	drawings
	* config/rs6000/rs6000.h (STARTING_FRAME_OFFSET, STACK_DYNAMIC_OFFSET):
	PR/77359: Likewise.
	* config/rs6000/aix.h (STARTING_FRAME_OFFSET, STACK_DYNAMIC_OFFSET):
	PR/77359: Copy AIX specific versions of the rs6000.h macros to aix.h.

From-SVN: r242589
2016-11-18 14:28:49 +00:00
Andrew Bennett dbb29a2a37 MIPS: Check for sysroot support when upgrading/downgrading test options
gcc/testsuite/

	* gcc.target/mips/inline-memcpy-1.c (dg-options): Add
	(REQUIRES_STDLIB).
	* gcc.target/mips/inline-memcpy-2.c: Ditto.
	* gcc.target/mips/inline-memcpy-3.c: Ditto.
	* gcc.target/mips/inline-memcpy-4.c: Ditto.
	* gcc.target/mips/inline-memcpy-5.c: Ditto.
	* gcc.target/mips/loongson-shift-count-truncated-1.c: Ditto.
	* gcc.target/mips/loongson-simd.c: Ditto.
	* gcc.target/mips/memcpy-1.c: Ditto.
	* gcc.target/mips/mips-3d-1.c: Ditto.
	* gcc.target/mips/mips-3d-2.c: Ditto.
	* gcc.target/mips/mips-3d-3.c: Ditto.
	* gcc.target/mips/mips-3d-4.c: Ditto.
	* gcc.target/mips/mips-3d-5.c: Ditto.
	* gcc.target/mips/mips-3d-6.c: Ditto.
	* gcc.target/mips/mips-3d-7.c: Ditto.
	* gcc.target/mips/mips-3d-8.c: Ditto.
	* gcc.target/mips/mips-3d-9.c: Ditto.
	* gcc.target/mips/mips-ps-1.c: Ditto.
	* gcc.target/mips/mips-ps-2.c: Ditto.
	* gcc.target/mips/mips-ps-3.c: Ditto.
	* gcc.target/mips/mips-ps-4.c: Ditto.
	* gcc.target/mips/mips-ps-6.c: Ditto.
	* gcc.target/mips/mips16-attributes.c: Ditto.
	* gcc.target/mips/mips32-dsp-run.c: Ditto.
	* gcc.target/mips/mips32-dsp.c: Ditto.
	* gcc.target/mips/save-restore-1.c: Ditto.
	* gcc.target/mips/mips.exp (mips_option_groups): Add stdlib.
	(mips_preprocess): Add ignore_output argument that when set
	will not return the pre-processed output.
	(mips_arch_info): Update arguments for the call to
	mips_preprocess.
	(mips-dg-init): Ditto.
	(mips-dg-options): Check if a test having test option
	(REQUIRES_STDLIB) has the required sysroot support for
	the current test options.

Co-Authored-By: Toma Tabacu <toma.tabacu@imgtec.com>

From-SVN: r242587
2016-11-18 12:34:19 +00:00
Richard Sandiford f079167a30 Use rtx_mode_t instead of std::make_pair
This change makes the code less sensitive to the exact type of the mode,
i.e. it forces a conversion where necessary.  This becomes important
when wrappers like scalar_int_mode and scalar_mode can also be used
instead of machine_mode.

Using rtx_mode_t also abstracts away the representation.  The fact that
it's a std::pair rather than a custom class isn't important to users of
the interface.

gcc/
2016-11-18  Richard Sandiford  <richard.sandiford@arm.com>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

	* combine.c (try_combine): Use rtx_mode_t instead of std::make_pair.
	* dwarf2out.c (mem_loc_descriptor, loc_descriptor): Likewise.
	(add_const_value_attribute): Likewise.
	* explow.c (plus_constant): Likewise.
	* expmed.c (expand_mult, make_tree): Likewise.
	* expr.c (convert_modes): Likewise.
	* loop-doloop.c (doloop_optimize): Likewise.
	* postreload.c (reload_cse_simplify_set): Likewise.
	* simplify-rtx.c (simplify_const_unary_operation): Likewise.
	(simplify_binary_operation_1, simplify_const_binary_operation):
	(simplify_const_relational_operation, simplify_immed_subreg): Likewise.
	* wide-int.h: Update documentation to recommend rtx_mode_t
	instead of std::make_pair.

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>

From-SVN: r242586
2016-11-18 10:04:53 +00:00
Richard Sandiford 899ca90e6d Add SET_DECL_MODE
This may no longer be necessary with the current version
of the SVE patches, but it does at least make things consistent
with the TYPE_MODE/SET_TYPE_MODE split.

gcc/ada/
2016-11-16  Richard Sandiford  <richard.sandiford@arm.com>
 	    Alan Hayward  <alan.hayward@arm.com>
 	    David Sherwood  <david.sherwood@arm.com>

	* gcc-interface/utils.c (create_label_decl): Use SET_DECL_MODE.

gcc/c/
2016-11-16  Richard Sandiford  <richard.sandiford@arm.com>
 	    Alan Hayward  <alan.hayward@arm.com>
 	    David Sherwood  <david.sherwood@arm.com>

	* c-decl.c (merge_decls): Use SET_DECL_MODE.
	(make_label, finish_struct): Likewise.

gcc/cp/
2016-11-16  Richard Sandiford  <richard.sandiford@arm.com>
 	    Alan Hayward  <alan.hayward@arm.com>
 	    David Sherwood  <david.sherwood@arm.com>

	* class.c (finish_struct_bits): Use SET_DECL_MODE.
	(build_base_field_1, layout_class_type, finish_struct_1): Likewise.
	* decl.c (make_label_decl): Likewise.
	* pt.c (tsubst_decl): Likewise.

gcc/fortran/
2016-11-16  Richard Sandiford  <richard.sandiford@arm.com>
 	    Alan Hayward  <alan.hayward@arm.com>
 	    David Sherwood  <david.sherwood@arm.com>

	* trans-common.c (build_common_decl): Use SET_DECL_MODE.
	* trans-decl.c (gfc_build_label_decl): Likewise.
	* trans-types.c (gfc_get_array_descr_info): Likewise.

gcc/lto/
2016-11-16  Richard Sandiford  <richard.sandiford@arm.com>
 	    Alan Hayward  <alan.hayward@arm.com>
 	    David Sherwood  <david.sherwood@arm.com>

	* lto.c (offload_handle_link_vars): Use SET_DECL_MODE.

gcc/
2016-11-16  Richard Sandiford  <richard.sandiford@arm.com>
 	    Alan Hayward  <alan.hayward@arm.com>
 	    David Sherwood  <david.sherwood@arm.com>

	* tree.h (SET_DECL_MODE): New macro.
	* cfgexpand.c (avoid_deep_ter_for_debug): Use SET_DECL_MODE.
	(expand_gimple_basic_block): Likewise.
	* function.c (split_complex_args): Likeise.
	* ipa-prop.c (ipa_modify_call_arguments): Likewise.
	* omp-simd-clone.c (ipa_simd_modify_stmt_ops): Likewise.
	* stor-layout.c (layout_decl, relayout_decl): Likewise.
	(finish_bitfield_representative): Likewise.
	* tree.c (make_node_stat): Likewise.
	* tree-inline.c (remap_ssa_name): Likewise.
	(tree_function_versioning): Likewise.
	* tree-into-ssa.c (rewrite_debug_stmt_uses): Likewise.
	* tree-sra.c (sra_ipa_reset_debug_stmts): Likewise.
	* tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise.
	* tree-ssa-loop-ivopts.c (remove_unused_ivs): Likewise.
	* tree-ssa.c (insert_debug_temp_for_var_def): Likewise.
	* tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
	* varasm.c (make_debug_expr_from_rtl): Likewise.

libcc1/
2016-11-16  Richard Sandiford  <richard.sandiford@arm.com>
 	    Alan Hayward  <alan.hayward@arm.com>
 	    David Sherwood  <david.sherwood@arm.com>

	* plugin.cc (plugin_build_add_field): Use SET_DECL_MODE.

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>

From-SVN: r242585
2016-11-18 10:03:12 +00:00
Segher Boessenkool cd36a4518d bb-reorder: Improve compgotos pass (PR71785)
For code like the testcase in PR71785 GCC factors all the indirect branches
to a single dispatcher that then everything jumps to.  This is because
having many indirect branches with each many jump targets does not scale
in large parts of the compiler.  Very late in the pass pipeline (right
before peephole2) the indirect branches are then unfactored again, by
the duplicate_computed_gotos pass.

This pass works by replacing branches to such a common dispatcher by a
copy of the dispatcher.  For code like this testcase this does not work
so well: most cases do a single addition instruction right before the
dispatcher, but not all, and we end up with only two indirect jumps: the
one without the addition, and the one with the addition in its own basic
block, and now everything else jumps _there_.

This patch rewrites the algorithm to deal with this.  It also makes it
simpler: it does not need the "candidates" array anymore, it does not
need RTL layout mode, it does not need cleanup_cfg, and it does not
need to keep track of what blocks it already visited.


	PR rtl-optimization/71785
	* bb-reorder.c (maybe_duplicate_computed_goto): New function.
	(duplicate_computed_gotos): New function.
	(pass_duplicate_computed_gotos::execute): Rewrite.

From-SVN: r242584
2016-11-18 10:14:52 +01:00
Ian Lance Taylor 9bd0f0bc6b Correct gcc/go/gofrontend/lex.cc and libgo/aclocal.m4 to the versions in the gofrontend repo...
Correct gcc/go/gofrontend/lex.cc and libgo/aclocal.m4 to the versions
in the gofrontend repo, which is supposed to be the master copy.

Remove a few files in libgo that somehow were not deleted in the past.

From-SVN: r242583
2016-11-18 04:15:46 +00:00
Ian Lance Taylor 54f0deb00f Update libgo/configure to restore it to the master version.
Update a few binary files that were changed in the master gc repo,
copied into the gofrontend repo, but not correctly copied into the GCC
repo.  The changes are all minor and do not affect any actual tests.
Two instances of "http" changed to "https", and two timestamps were
zeroed out.

From-SVN: r242582
2016-11-18 04:05:10 +00:00
GCC Administrator 9427e29606 Daily bump.
From-SVN: r242581
2016-11-18 00:16:19 +00:00
Ian Lance Taylor 5302cd0250 runtime, reflect: rewrite Go to FFI type conversion in Go
As we move toward the Go 1.7 garbage collector, it's essential that all
    allocation of values that can contain Go pointers be done using the
    correct type descriptor.  That is simplest if we do all such allocation
    in Go code.  This rewrites the code that converts from a Go type to a
    libffi CIF into Go.
    
    Reviewed-on: https://go-review.googlesource.com/33353

From-SVN: r242578
2016-11-18 00:15:38 +00:00
Jeff Law f97db488a6 re PR middle-end/38219 (gcc.dg/tree-ssa/vrp47.c fails on m68k)
PR middle-end/38219
	* gcc.dg/tree-ssa/vrp47.c: Do not run on m68k.

From-SVN: r242576
2016-11-17 16:54:46 -07:00
Jeff Law f2b6aad987 re PR target/47192 (m68k target - gcc uses stack frame after it has been unlinked when compiling with -Os)
PR target/47192
	* config/m68k/m68k.c (m68k_expand_epilogue): Emit a scheduling
	barrier prior to deallocating the stack.

	PR target/47192
	* gcc.target/m68k/pr47192.c: New test.

From-SVN: r242575
2016-11-17 16:39:08 -07:00
Toma Tabacu e080b2818b branch-cost-1.c (dg-options): Use (HAS_MOVN) instead of isa>=4, in order to downgrade to R5.
2016-11-17  Toma Tabacu  <toma.tabacu@imgtec.com>

	* gcc.target/mips/branch-cost-1.c (dg-options): Use (HAS_MOVN)
	instead of isa>=4, in order to downgrade to R5.

From-SVN: r242574
2016-11-17 17:54:15 -05:00
Jason Merrill c2f2350e9b PR c++/78193 - inherited ctor regressions on sparc32.
* call.c (build_over_call): Don't set CALL_FROM_THUNK_P here.
	(build_call_a): Set it here, and don't insert EMPTY_CLASS_EXPR.
	(convert_like_real) [ck_rvalue]: Also pass non-addressable
	types along directly.

From-SVN: r242573
2016-11-17 17:40:28 -05:00
Andrew Burgess e389ba3073 arc/nps400: New peephole2 pattern allow more cmem loads
In the case where we access a single bit from a value and use this in a
EQ/NE comparison, GCC will convert this into a sign-extend and GE/LT
comparison.

Normally this would be fine, however, if the value is in CMEM memory,
then we don't have a sign-extending load available (using the special
short CMEM load instructions), and instead we end up using a long form
load with LIMM, which is less efficient.

This peephole optimisation looks for the sign-extend followed by GE/LT
pattern and converts this back into a load and EQ/NE comparison.

gcc/ChangeLog:

	* config/arc/arc.md (cmem bit/sign-extend peephole2): New peephole
	to make better use of cmem loads in the case where a single bit is
	being accessed.
	* config/arc/predicates.md (ge_lt_comparison_operator): New
	predicate.

gcc/testsuite/ChangeLog:

	* gcc.target/arc/cmem-bit-1.c: New file.
	* gcc.target/arc/cmem-bit-2.c: New file.
	* gcc.target/arc/cmem-bit-3.c: New file.
	* gcc.target/arc/cmem-bit-4.c: New file.

From-SVN: r242572
2016-11-17 22:40:05 +00:00
H.J. Lu 9775c1a5ea Add avx5124vnniw/avx5124fmaps to target attributes
gcc/

2016-11-17  Andrew Senkevich <andrew.senkevich@intel.com>

	* config/i386/i386.c (processor_features): Add F_AVX5124VNNIW,
	F_AVX5124FMAPS.
	(isa_names_table): Handle new features.

gcc/testsuite/

2016-11-17  Andrew Senkevich <andrew.senkevich@intel.com>

	* gcc.target/i386/builtin_target.c: Handle new "avx5124vnniw",
	"avx5124fmaps".
	* gcc.target/i386/funcspec-56.inc: Test new attributes.

libgcc/

2016-11-17  Andrew Senkevich <andrew.senkevich@intel.com>

	* config/i386/cpuinfo.c (processor_features): Add
	FEATURE_AVX5124VNNIW, FEATURE_AVX5124FMAPS.

From-SVN: r242570
2016-11-17 14:18:23 -08:00
Kirill Yukhin 5fbb13a720 Enable AVX512_4FMAPS and AVX512_4VNNIW instructions
This requires additional patch for register allocator from Vladimir
Makarov.

gcc/

2016-11-17  Kirill Yukhin  <kirill.yukhin@gmail.com>
	    Andrew Senkevich <andrew.senkevich@intel.com>

	* common/config/i386/i386-common.c
	(OPTION_MASK_ISA_AVX5124FMAPS_SET,
	OPTION_MASK_ISA_AVX5124FMAPS_UNSET,
	OPTION_MASK_ISA_AVX5124VNNIW_SET,
	OPTION_MASK_ISA_AVX5124VNNIW_UNSET): New.
	(ix86_handle_option): Handle OPT_mavx5124fmaps,
	OPT_mavx5124vnniw.
	* config.gcc: Add avx5124fmapsintrin.h, avx5124vnniwintrin.h.
	* config/i386/avx5124fmapsintrin.h: New file.
	* config/i386/avx5124vnniwintrin.h: Ditto.
	* config/i386/constraints.md (h): New constraint.
	* config/i386/cpuid.h: (bit_AVX5124VNNIW,
	bit_AVX5124FMAPS): New.
	* config/i386/driver-i386.c (host_detect_local_cpu):
	Detect avx5124fmaps, avx5124vnniw.
	* config/i386/i386-builtin-types.def: Add types
	V16SF_FTYPE_V16SF_V16SF_V16SF_V16SF_V16SF_PCV4SF_V16SF_UHI,
	V16SF_FTYPE_V16SF_V16SF_V16SF_V16SF_V16SF_PCV4SF,
	V4SF_FTYPE_V4SF_V4SF_V4SF_V4SF_V4SF_PCV4SF,
	V4SF_FTYPE_V4SF_V4SF_V4SF_V4SF_V4SF_PCV4SF_V4SF_UQI,
	V16SI_FTYPE_V16SI_V16SI_V16SI_V16SI_V16SI_PCV4SI,
	V16SI_FTYPE_V16SI_V16SI_V16SI_V16SI_V16SI_PCV4SI_V16SI_UHI.
	* config/i386/i386-builtin.def (__builtin_ia32_4fmaddps_mask,
	__builtin_ia32_4fmaddps, __builtin_ia32_4fmaddss,
	__builtin_ia32_4fmaddss_mask, __builtin_ia32_4fnmaddps_mask,
	__builtin_ia32_4fnmaddps, __builtin_ia32_4fnmaddss,
	__builtin_ia32_4fnmaddss_mask, __builtin_ia32_vp4dpwssd,
	__builtin_ia32_vp4dpwssd_mask, __builtin_ia32_vp4dpwssds,
	__builtin_ia32_vp4dpwssds_mask): New.
	* config/i386/i386-c.c (ix86_target_macros_internal):
	Define __AVX5124FMAPS__, __AVX5124VNNIW__.
	* config/i386/i386-modes.def: Fixed comment typos, added new
	modes (VECTOR_MODES (FLOAT, 256), VECTOR_MODE (INT, SI, 64)).
	* config/i386/i386.c (ix86_target_string): Add -mavx5124fmaps,
	-mavx5124vnniw.
	(PTA_AVX5124FMAPS, PTA_AVX5124VNNIW): Define.
	(ix86_option_override_internal): Handle new options.
	(ix86_valid_target_attribute_inner_p): Add avx5124fmaps,
	avx5124vnniw.
	(ix86_expand_builtin): Handle new builtins.
	(ix86_additional_allocno_class_p): New.
	* config/i386/i386.h (TARGET_AVX5124FMAPS,
	TARGET_AVX5124FMAPS_P,
	TARGET_AVX5124VNNIW,
	TARGET_AVX5124VNNIW_P): Define.
	(reg_class): Add MOD4_SSE_REGS.
	(MOD4_SSE_REG_P, MOD4_SSE_REGNO_P): New.
	* config/i386/i386.opt: Add mavx5124fmaps, mavx5124vnniw.
	* config/i386/immintrin.h: Include avx5124fmapsintrin.h,
	avx5124vnniwintrin.h.
	* config/i386/sse.md (unspec): Add UNSPEC_VP4FMADD,
	UNSPEC_VP4FNMADD,
	UNSPEC_VP4DPWSSD, UNSPEC_VP4DPWSSDS.
	(define_mode_iterator IMOD4): New.
	(define_mode_attr imod4_narrow): Ditto.
	(define_insn "mov<mode>"): Ditto.
	(define_insn "avx5124fmaddps_4fmaddps"): Ditto.
	(define_insn "avx5124fmaddps_4fmaddps_mask"): Ditto.
	(define_insn "avx5124fmaddps_4fmaddps_maskz"): Ditto.
	(define_insn "avx5124fmaddps_4fmaddss"): Ditto.
	(define_insn "avx5124fmaddps_4fmaddss_mask"): Ditto.
	(define_insn "avx5124fmaddps_4fmaddss_maskz"): Ditto.
	(define_insn "avx5124fmaddps_4fnmaddps"): Ditto.
	(define_insn "avx5124fmaddps_4fnmaddps_mask"): Ditto.
	(define_insn "avx5124fmaddps_4fnmaddps_maskz"): Ditto.
	(define_insn "avx5124fmaddps_4fnmaddss"): Ditto.
	(define_insn "avx5124fmaddps_4fnmaddss_mask"): Ditto.
	(define_insn "avx5124fmaddps_4fnmaddss_maskz"): Ditto.
	(define_insn "avx5124vnniw_vp4dpwssd"): Ditto.
	(define_insn "avx5124vnniw_vp4dpwssd_mask"): Ditto.
	(define_insn "avx5124vnniw_vp4dpwssd_maskz"): Ditto.
	(define_insn "avx5124vnniw_vp4dpwssds"): Ditto.
	(define_insn "avx5124vnniw_vp4dpwssds_mask"): Ditto.
	(define_insn "avx5124vnniw_vp4dpwssds_maskz"): Ditto.
	* init-regs.c (initialize_uninitialized_regs): Add emit_clobber call.
	* genmodes.c (mode_size_inline): Extend return type.
	* machmode.h (mode_size, mode_base_align): Extend type.

gcc/testsuite/

2016-11-17  Kirill Yukhin  <kirill.yukhin@gmail.com>
	    Andrew Senkevich <andrew.senkevich@intel.com>

	* gcc.target/i386/avx5124fmadd-v4fmaddps-1.c: New test.
	* gcc.target/i386/avx5124fmadd-v4fmaddps-2.c: Ditto.
	* gcc.target/i386/avx5124fmadd-v4fmaddss-1.c: Ditto.
	* gcc.target/i386/avx5124fmadd-v4fnmaddps-1.c: Ditto.
	* gcc.target/i386/avx5124fmadd-v4fnmaddps-2.c: Ditto.
	* gcc.target/i386/avx5124fmadd-v4fnmaddss-1.c: Ditto.
	* gcc.target/i386/avx5124fmaps-check.h: Ditto.
	* gcc.target/i386/avx5124vnniw-check.h: Ditto.
	* gcc.target/i386/avx5124vnniw-vp4dpwssd-1.c: Ditto.
	* gcc.target/i386/avx5124vnniw-vp4dpwssd-2.c: Ditto.
	* gcc.target/i386/avx5124vnniw-vp4dpwssds-1.c: Ditto.
	* gcc.target/i386/avx5124vnniw-vp4dpwssds-2.c: Ditto.
	* gcc.target/i386/avx512f-helper.h: Add avx5124fmaps-check.h,
	avx5124vnniw-check.h.
	* gcc.target/i386/i386.exp (check_effective_target_avx5124fmaps,
	check_effective_target_avx5124vnniw): New.
	* gcc.target/i386/m128-check.h (ESP_FLOAT, ESP_DOUBLE):
	Set under ifndef.
	* gcc.target/i386/sse-12.c: Add -mavx5124fmaps, -mavx5124vnniw.
	* gcc.target/i386/sse-13.c: Ditto.
	* g++.dg/other/i386-2.C: Ditto.
	* g++.dg/other/i386-3.C: Ditto.
	* gcc.target/i386/sse-22.c: Ditto.
	* gcc.target/i386/sse-23.c: Ditto.

From-SVN: r242569
2016-11-17 14:11:21 -08:00
Paolo Carlini 80557bb787 re PR c++/55080 (-pedantic produces error: floating-point literal cannot appear in a constant-expression)
/cp
2016-11-17  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/55080
	* parser.c (cp_parser_non_integral_constant_expression): Issue a
	pedwarn instead of an error for case NIC_FLOAT.

/testsuite
2016-11-17  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/55080
	* g++.dg/parse/pr55080.C: New.

From-SVN: r242565
2016-11-17 21:44:05 +00:00
Michael Meissner c80620fcfa re PR target/78101 (PowerPC 64-bit little endian fusion failure with -O3 -mcpu=power9)
[gcc]
2016-11-17  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/78101
	* config/rs6000/predicates.md (fusion_addis_mem_combo_load): Add
	the appropriate checks for SFmode/DFmode load/stores in GPR
	registers.
	(fusion_addis_mem_combo_store): Likewise.
	* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Rename
	fusion_fpr_* to fusion_vsx_* and add in support for ISA 3.0 scalar
	d-form instructions for traditional Altivec registers.
	(emit_fusion_p9_load): Likewise.
	(emit_fusion_p9_store): Likewise.
	* config/rs6000/rs6000.md (p9 fusion store peephole2): Remove
	early clobber from scratch register.  Do not match if the register
	being stored is the scratch register.
	(fusion_vsx_<P:mode>_<FPR_FUSION:mode>_load): Rename fusion_fpr_*
	to fusion_vsx_* and add in support for ISA 3.0 scalar d-form
	instructions for traditional Altivec registers.
	(fusion_fpr_<P:mode>_<FPR_FUSION:mode>_load): Likewise.
	(fusion_vsx_<P:mode>_<FPR_FUSION:mode>_store): Likewise.
	(fusion_fpr_<P:mode>_<FPR_FUSION:mode>_store): Likewise.

[gcc/testsuite]
2016-11-17  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/78101
	* gcc.target/powerpc/fusion4.c: New test.

From-SVN: r242564
2016-11-17 21:42:13 +00:00