gcc.git
8 years agoSkip gcc.dg/lto/pr60449_0.c for avr
Senthil Kumar Selvaraj [Mon, 31 Oct 2016 14:06:04 +0000 (14:06 +0000)]
Skip gcc.dg/lto/pr60449_0.c for avr

The testcase requires gettimeofday to be available for the target. The avr
target doesn't have an implementation, so the test always fails with a
linker error.

gcc/testsuite

2016-10-31  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

* gcc.dg/lto/pr60449_0.c: Skip for avr.

From-SVN: r241701

8 years agore PR c++/77886 (-Wimplicit-fallthrough: breaks duff's device (in function templates))
Jakub Jelinek [Mon, 31 Oct 2016 13:39:49 +0000 (14:39 +0100)]
re PR c++/77886 (-Wimplicit-fallthrough: breaks duff's device (in function templates))

PR c++/77886
* pt.c (tsubst_expr) <case CASE_LABEL_EXPR> Copy over
FALLTHROUGH_LABEL_P flag to the new LABEL_DECL.
(tsubst_expr) <case LABEL_EXPR>: Likewise.

* g++.dg/warn/Wimplicit-fallthrough-2.C: New test.

From-SVN: r241700

8 years agoAdd -Wshadow=global -Wshadow=local and -Wshadow=compatible-local.
Le-Chun Wu [Mon, 31 Oct 2016 13:21:59 +0000 (13:21 +0000)]
Add -Wshadow=global -Wshadow=local and -Wshadow=compatible-local.

This patch from Le-Chun Wu adds two new shadow warning flags for
C and C++:

  -Wshadow=local which warns if a local variable shadows another local
  variable or parameter,

  -Wshadow=compatible-local which warns if a local variable shadows
  another local variable or parameter whose type is compatible with
  that of the shadowing variable.

It is already on the google/main branch (Google ref 39127) and was
previously submitted by Diego Novillo and reviewed on
http://codereview.appspot.com/4452058

I addressed the review comments and made the following changes:
- Add -Wshadow=global (the default alias for -Wshadow).
- Make the documented options -Wshadow=global, -Wshadow=local
  and -Wshadow=compatible-local (with hidden undocumented aliases
  -Wshadow-local and -Wshadow-compatible-local for compatibility).
- The -Wshadow=global, -Wshadow=local and -Wshadow=compatible-local
  relationships are expressed in common.opt instead of in opts.c
  and documented in invoke.texi.
- The "previous declaration" warnings were turned into notes and use
  the (now) existing infrastructure instead of duplicating the warnings.
  The testcases have been adjusted to expect the notes.
- The conditional change in name-lookup.c for non-locals (where we
  don't want to change the warnings, but just check the global ones)
  has been dropped.
- Use warning_at in c-decl.c (warn_if_shadowing).

gcc/ChangeLog:
2016-10-30  Le-Chun Wu  <lcwu@google.com>
            Mark Wielaard  <mjw@redhat.com>

       * doc/invoke.texi: Document Wshadow-local and Wshadow-compatible-local.
       * common.opt (Wshadow=global): New option. Default for -Wshadow.
       (Wshadow=local): New option.
       (Wshadow-local): Hidden alias for -Wshadow=local.
       (Wshadow=compatible-local): New option.
       (Wshadow-compatible-local): Hidden alias for
       -Wshadow=compatible-local.
       * doc/invoke.texi: Document Wshadow=global, Wshadow=local and
       Wshadow=compatible-local.

gcc/c/ChangeLog:
2016-10-30  Le-Chun Wu  <lcwu@google.com>
            Mark Wielaard  <mjw@redhat.com>

       * c-decl.c (warn_if_shadowing): Use the warning code corresponding
       to the given -Wshadow= variant. Use warning_at.

gcc/cp/ChangeLog:
2016-10-30  Le-Chun Wu  <lcwu@google.com>
            Mark Wielaard  <mjw@redhat.com>

       * name-lookup.c (pushdecl_maybe_friend): When emitting a
       shadowing warning, use the code corresponding to the
       given -Wshadow= variant.

gcc/testsuite/ChangeLog
2016-10-30  Le-Chun Wu  <lcwu@google.com>
            Mark Wielaard  <mjw@redhat.com>

       * gcc.dg/Wshadow-compatible-local-1.c: New test.
       * gcc.dg/Wshadow-local-1.c: Likewise.
       * gcc.dg/Wshadow-local-2.c: Likewise.
       * g++.dg/warn/Wshadow-compatible-local-1.C: Likewise.
       * g++.dg/warn/Wshadow-local-1.C: Likewise.
       * g++.dg/warn/Wshadow-local-2.C: Likewise.

Co-Authored-By: Mark Wielaard <mjw@redhat.com>
From-SVN: r241699

8 years agore PR lto/78129 (-Werror=suggest-final-types leads to -ENOSPC.)
Richard Biener [Mon, 31 Oct 2016 12:52:23 +0000 (12:52 +0000)]
re PR lto/78129 (-Werror=suggest-final-types leads to -ENOSPC.)

2016-10-31  Richard Biener  <rguenther@suse.de>

PR lto/78129
* lto.c (do_whole_program_analysis): Bail out after errors
from WPA analysis.

From-SVN: r241698

8 years agotree-vect-slp.c (vect_get_and_check_slp_defs): New parameter SWAP.
Bin Cheng [Mon, 31 Oct 2016 09:30:47 +0000 (09:30 +0000)]
tree-vect-slp.c (vect_get_and_check_slp_defs): New parameter SWAP.

* tree-vect-slp.c (vect_get_and_check_slp_defs): New parameter SWAP.
Check slp defs for COND_EXPR by swapping/inverting operands if the
new parameter SWAP indicates so.
(vect_build_slp_tree_1): New parameter SWAP.  Check COND_EXPR stmt
is isomorphic to the first stmt via swapping/inverting.  Store swap
information in the new parameter SWAP.
(vect_build_slp_tree): New local array SWAP and pass it to function
vect_build_slp_tree_1.  Cleanup result handling code for function
call to vect_get_and_check_slp_defs.  Skip operand swapping if the
order of operands has been fixed as indicated by SWAP[i].

From-SVN: r241697

8 years agotree-vect-data-refs.c (vect_slp_analyze_node_dependences): Skip unnecessary data...
Bin Cheng [Mon, 31 Oct 2016 09:27:31 +0000 (09:27 +0000)]
tree-vect-data-refs.c (vect_slp_analyze_node_dependences): Skip unnecessary data dependence check after visited store stmt.

* tree-vect-data-refs.c (vect_slp_analyze_node_dependences): Skip
unnecessary data dependence check after visited store stmt.

From-SVN: r241696

8 years agore PR tree-optimization/71915 (A missed opportunity for SLSR)
Bill Schmidt [Mon, 31 Oct 2016 03:04:59 +0000 (03:04 +0000)]
re PR tree-optimization/71915 (A missed opportunity for SLSR)

[gcc]

2016-10-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR tree-optimization/71915
PR tree-optimization/71490
* gimple-ssa-strength-reduction.c (struct slsr_cand_d): Add
stride_type field.
(find_basis_for_base_expr): Require stride types to match when
seeking a basis.
(alloc_cand_and_find_basis): Record the stride type.
(slsr_process_phi): Pass stride type to alloc_cand_and_find_basis.
(backtrace_base_for_ref): Pass types to legal_cast_p_1 rather than
the expressions having those types.
(slsr_process_ref): Pass stride type to alloc_cand_and_find_basis.
(create_mul_ssa_cand): Likewise.
(create_mul_imm_cand): Likewise.
(create_add_ssa_cand): Likewise.
(create_add_imm_cand): Likewise.
(legal_cast_p_1): Change interface to accept types rather than the
expressions having those types.
(legal_cast_p): Pass types to legal_cast_p_1.
(slsr_process_cast): Pass stride type to
alloc_cand_and_find_basis.
(slsr_process_copy): Likewise.
(dump_candidate): Display stride type when a cast exists.
(create_add_on_incoming_edge): Introduce a cast when necessary for
the stride type.
(analyze_increments): Change the code checking for invalid casts
to rely on the stride type, and update the documentation and
example.  Change the code checking for pointer multiplies to rely
on the stride type.
(insert_initializers): Introduce a cast when necessary for the
stride type.  Use the stride type for the type of the initializer.

[gcc/testsuite]

2016-10-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR tree-optimization/71915
PR tree-optimization/71490
* gcc.dg/tree-ssa/pr54245.c: Delete.
* gcc.dg/tree-ssa/slsr-8.c: Adjust for new optimization and
document why.

From-SVN: r241695

8 years agoDaily bump.
GCC Administrator [Mon, 31 Oct 2016 00:16:18 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r241694

8 years agore PR libfortran/78123 (Short reads with T edit descriptor not padding correctly)
Jerry DeLisle [Sun, 30 Oct 2016 22:14:01 +0000 (22:14 +0000)]
re PR libfortran/78123 (Short reads with T edit descriptor not padding correctly)

2016-10-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR fortran/78123
* io/transfer.c (formatted_transfer_scalar_read): Clear seen_eor
only if we have tabbed to left of current position.

* gfortran.dg/fmt_t_9.f: New test.

From-SVN: r241691

8 years agore PR fortran/67219 (Incorrect conversion warning)
Thomas Koenig [Sun, 30 Oct 2016 17:48:27 +0000 (17:48 +0000)]
re PR fortran/67219 (Incorrect conversion warning)

2016-10-30  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/67219
* arith.c (gfc_int2real):  Change gfc_warning_now
to gfc_warning.
* primary.c (match_complex_constant):  If there
is no comma, throw away any warning which might have
been issued by gfc_int2real.

2016-10-30  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/67219
* gfortran.dg/pr67219.f90:  New test.

From-SVN: r241689

8 years agocompiler: fix slice/array evaluation order bug
Ian Lance Taylor [Sun, 30 Oct 2016 16:48:37 +0000 (16:48 +0000)]
compiler: fix slice/array evaluation order bug

    There was a phase ordering issue in the handling of "keyed" array
    literal expressions: the lowering phase was canonicalizing the
    indices/vals before the phase that fixed evaluation order, meaning that
    the evaluation order was incorrect. The fix is to capture the orginal
    ordering and use that ordering when doing traversals (there is already
    something similar being done for struct literal expressions).

    Fixes golang/go#17640

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

From-SVN: r241688

8 years agolibgo: eliminate a lot of duplication in Makefile.am
Ian Lance Taylor [Sun, 30 Oct 2016 16:45:34 +0000 (16:45 +0000)]
libgo: eliminate a lot of duplication in Makefile.am

    I read through the GNU make manual.  I knew there had to be a way to do it.

    Remove the special netgo library.  The essential feature--using the Go
    DNS resolver--is now available by setting GODEBUG=netdns=go.

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

From-SVN: r241687

8 years agoarm.c (arm_const_not_ok_for_debug_p): Use VAR_P.
Prathamesh Kulkarni [Sun, 30 Oct 2016 14:06:16 +0000 (14:06 +0000)]
arm.c (arm_const_not_ok_for_debug_p): Use VAR_P.

2016-10-30  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

* config/arm/arm.c (arm_const_not_ok_for_debug_p): Use VAR_P.

From-SVN: r241686

8 years agoAdd missing name
Eric Botcazou [Sun, 30 Oct 2016 10:15:55 +0000 (10:15 +0000)]
Add missing name

From-SVN: r241685

8 years agoDaily bump.
GCC Administrator [Sun, 30 Oct 2016 00:16:15 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r241684

8 years agore PR rtl-optimization/77919 (ICE converting DC to V2DF mode)
Jakub Jelinek [Sat, 29 Oct 2016 20:22:36 +0000 (22:22 +0200)]
re PR rtl-optimization/77919 (ICE converting DC to V2DF mode)

PR rtl-optimization/77919
* expr.c (expand_expr_real_1) <normal_inner_ref>: Only avoid forcing
into memory if both modes are complex and their inner modes have the
same precision.  If the two modes are different complex modes, convert
each part separately and generate a new CONCAT.

* g++.dg/torture/pr77919-2.C: New test.

From-SVN: r241681

8 years agopa64-hpux.h (FINI_SECTION_ASM_OP): Define to null string.
John David Anglin [Sat, 29 Oct 2016 16:25:49 +0000 (16:25 +0000)]
pa64-hpux.h (FINI_SECTION_ASM_OP): Define to null string.

* config/pa/pa64-hpux.h (FINI_SECTION_ASM_OP): Define to null string.

From-SVN: r241680

8 years agore PR tree-optimization/78148 (r241649 causes -fcompare-debug failure on ppc64le)
Jakub Jelinek [Sat, 29 Oct 2016 15:55:50 +0000 (17:55 +0200)]
re PR tree-optimization/78148 (r241649 causes -fcompare-debug failure on ppc64le)

PR target/78148
* gimple-ssa-store-merging.c
(imm_store_chain_info::output_merged_store): Use build_aligned_type
instead of SET_TYPE_ALIGN on shared integral type.

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

From-SVN: r241679

8 years agopa.h (BIGGEST_ALIGNMENT): Adjust comment.
John David Anglin [Sat, 29 Oct 2016 15:30:26 +0000 (15:30 +0000)]
pa.h (BIGGEST_ALIGNMENT): Adjust comment.

* config/pa/pa.h (BIGGEST_ALIGNMENT): Adjust comment.
(MALLOC_ABI_ALIGNMENT): Define to 128 on all targets except SOM.
Adjust comment.

From-SVN: r241676

8 years agovax.h (REGNO_REG_CLASS): Access the REGNO argument.
Jeff Law [Sat, 29 Oct 2016 04:23:33 +0000 (22:23 -0600)]
vax.h (REGNO_REG_CLASS): Access the REGNO argument.

* config/vax/vax.h (REGNO_REG_CLASS): Access the REGNO argument.
* config/spu/spu.h (REGNO_REG_CLASS): Likewise.

From-SVN: r241675

8 years ago* eo.po: Update.
Joseph Myers [Sat, 29 Oct 2016 01:38:09 +0000 (02:38 +0100)]
* eo.po: Update.

From-SVN: r241673

8 years agoDaily bump.
GCC Administrator [Sat, 29 Oct 2016 00:16:14 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r241672

8 years agore PR fortran/71891 (fortran/symbol.c:4864: suspicious if ?)
Steven G. Kargl [Fri, 28 Oct 2016 23:37:03 +0000 (23:37 +0000)]
re PR fortran/71891 (fortran/symbol.c:4864: suspicious if ?)

2016-10-28  Steven G. Kargl <kargl@gcc.gnu.org>

PR fortran/71891
* symbol.c (gfc_type_compatible): Fix typo.

From-SVN: r241668

8 years agocompiler, runtime: copy slice code from Go 1.7 runtime
Ian Lance Taylor [Fri, 28 Oct 2016 22:34:47 +0000 (22:34 +0000)]
compiler, runtime: copy slice code from Go 1.7 runtime

    Change the compiler handle append as the gc compiler does: call a
    function to grow the slice, but otherwise assign the new elements
    directly to the final slice.

    For the current gccgo memory allocator the slice code has to call
    runtime_newarray, not mallocgc directly, so that the allocator sets the
    TypeInfo_Array bit in the type pointer.

    Rename the static function cnew to runtime_docnew, so that the stack
    trace ignores it when ignoring runtime functions.  This was needed to
    fix the runtime/pprof tests on 386.

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

From-SVN: r241667

8 years ago* doc/sourcebuild.texi (Ada Tests): Remove mention of gcc chapter.
Eric Botcazou [Fri, 28 Oct 2016 21:06:14 +0000 (21:06 +0000)]
* doc/sourcebuild.texi (Ada Tests): Remove mention of gcc chapter.

From-SVN: r241666

8 years agotarget.def (min_arithmetic_precision): New hook.
Eric Botcazou [Fri, 28 Oct 2016 21:04:51 +0000 (21:04 +0000)]
target.def (min_arithmetic_precision): New hook.

* target.def (min_arithmetic_precision): New hook.
* doc/tm.texi.in (Misc): Add TARGET_MIN_ARITHMETIC_PRECISION.
* doc/tm.texi: Regenerate.
* internal-fn.c (expand_arith_overflow): Adjust handling of target
dependent support by means of TARGET_MIN_ARITHMETIC_PRECISION.
* targhooks.c (default_min_arithmetic_precision): New function.
* targhooks.h (default_min_arithmetic_precision): Declare.
* config/sparc/sparc.c (TARGET_MIN_ARITHMETIC_PRECISION): Define.
(sparc_min_arithmetic_precision): New function.

From-SVN: r241665

8 years agocombine: Improve change_zero_ext (fixes PR71847)
Segher Boessenkool [Fri, 28 Oct 2016 20:56:28 +0000 (22:56 +0200)]
combine: Improve change_zero_ext (fixes PR71847)

This improves a few things in change_zero_ext.  Firstly, it should use
the passed in pattern in recog_for_combine, not the pattern of the insn
(they are not the same if the whole pattern was replaced).  Secondly,
it handled zero_ext of a subreg, but with hard registers we do not get
a subreg, instead the mode of the reg is changed.  So this handles that.
Thirdly, after changing a zero_ext to an AND, the resulting RTL may become
non-canonical, like (ior (ashift ..) (and ..)); the AND should be first,
it is commutative.  And lastly, zero_extract as a set_dest wasn't handled
at all, but now it is.

This fixes the testcase in PR71847, and improves code generation in some
other edge cases too.

PR target/71847
* combine.c (change_zero_ext): Handle zero_ext of hard registers.
Swap commutative operands in new RTL if needed.  Handle zero_ext
in the set_dest.
(recog_for_combine): Pass *pnewpat to change_zero_ext instead of
PATTERN (insn).

From-SVN: r241664

8 years agore PR go/78144 (FAIL: time on systems with tzdata2016g installed)
Ian Lance Taylor [Fri, 28 Oct 2016 20:21:52 +0000 (20:21 +0000)]
re PR go/78144 (FAIL: time on systems with tzdata2016g installed)

PR go/78144
    libgo: incorporate fix for timezone test

    This brings over the test-only fix for issue 17276 into gccgo/libgo
    (with tzdata-2016g there is a new zone abbreviation).  This is a
    copy of https://golang.org/cl/29995.

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

From-SVN: r241661

8 years agore PR tree-optimization/43721 (Failure to optimise (a/b) and (a%b) into single __aeab...
Prathamesh Kulkarni [Fri, 28 Oct 2016 19:05:12 +0000 (19:05 +0000)]
re PR tree-optimization/43721 (Failure to optimise (a/b) and (a%b) into single __aeabi_idivmod call)

2016-10-28  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
    Kugan Vivekanandarajah  <kuganv@linaro.org>
    Jim Wilson  <jim.wilson@linaro.org>

PR tree-optimization/43721
* target.def: New hook expand_divmod_libfunc.
* doc/tm.texi.in: Add hook for TARGET_EXPAND_DIVMOD_LIBFUNC
* doc/tm.texi: Regenerate.
* internal-fn.def: Add new entry for DIVMOD ifn.
* internal-fn.c (expand_DIVMOD): New.
* tree-ssa-math-opts.c: Include optabs-libfuncs.h, tree-eh.h,
targhooks.h.
(widen_mul_stats): Add new field divmod_calls_inserted.
(target_supports_divmod_p): New.
(divmod_candidate_p): Likewise.
(convert_to_divmod): Likewise.
(pass_optimize_widening_mul::execute): Call
calculate_dominance_info(), renumber_gimple_stmt_uids() at
beginning of function. Call convert_to_divmod()
and record stats for divmod.
* config/arm/arm.c (arm_expand_divmod_libfunc): Override hook
TARGET_EXPAND_DIVMOD_LIBFUNC.
* doc/sourcebuild.texi: Add items for arm_divmod_simode, divmod,
divmod_simode.

testsuite/
* lib/target-supports.exp (check_effective_target_divmod): New.
(check_effective_target_divmod_simode): Likewise.
(check_effective_target_arm_divmod_simode): Likewise.
* gcc.dg/divmod-1-simode.c: New test.
* gcc.dg/divmod-1.c: Likewise.
* gcc.dg/divmod-2-simode.c: Likewise.
* gcc.dg/divmod-2.c: Likewise.
* gcc.dg/divmod-3-simode.c: Likewise.
* gcc.dg/divmod-3.c: Likewise.
* gcc.dg/divmod-4-simode.c: Likewise.
* gcc.dg/divmod-4.c: Likewise.
* gcc.dg/divmod-5.c: Likewise.
* gcc.dg/divmod-6-simode.c: Likewise.
* gcc.dg/divmod-6.c: Likewise.
* gcc.dg/divmod-7.c: Likewise.

Co-Authored-By: Jim Wilson <jim.wilson@linaro.org>
Co-Authored-By: Kugan Vivekanandarajah <kuganv@linaro.org>
From-SVN: r241660

8 years agore PR go/78143 (bootstrap broken in libgo on powerpc-linux-gnu)
Ian Lance Taylor [Fri, 28 Oct 2016 18:57:36 +0000 (18:57 +0000)]
re PR go/78143 (bootstrap broken in libgo on powerpc-linux-gnu)

PR go/78143
    runtime: build lfstack_32bit.go on ppc

    Missed a build tag.  This is GCC PR 78143.

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

From-SVN: r241659

8 years agoMake filesystem::path work with basic_string_view (P0392R0)
Jonathan Wakely [Fri, 28 Oct 2016 18:48:43 +0000 (19:48 +0100)]
Make filesystem::path work with basic_string_view (P0392R0)

* include/experimental/bits/fs_path.h (__is_path_src)
(_S_range_begin, _S_range_end): Overload to treat string_view as a
Source object.
(path::operator+=, path::compare): Overload for basic_string_view.
* testsuite/experimental/filesystem/path/construct/string_view.cc:
New test.
* testsuite/experimental/filesystem/path/construct/
string_view_cxx17.cc: New test.

From-SVN: r241658

8 years agodojump.c (do_jump_by_parts_greater_rtx): Invert probability when swapping the arms...
Eric Botcazou [Fri, 28 Oct 2016 18:10:14 +0000 (18:10 +0000)]
dojump.c (do_jump_by_parts_greater_rtx): Invert probability when swapping the arms of the branch.

* dojump.c (do_jump_by_parts_greater_rtx): Invert probability when
swapping the arms of the branch.
* internal-fn.c (expand_addsub_overflow): Use a straight-line code
sequence for the generic signed-signed-signed case.

From-SVN: r241656

8 years agolibgo: redirect grep output in mkrsysinfo.sh to /dev/null
Ian Lance Taylor [Fri, 28 Oct 2016 17:55:13 +0000 (17:55 +0000)]
libgo: redirect grep output in mkrsysinfo.sh to /dev/null

    I noticed a stray useless output line when building libgo.

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

From-SVN: r241655

8 years agoFix filesystem::path for iterators with const value_type
Jonathan Wakely [Fri, 28 Oct 2016 17:47:57 +0000 (18:47 +0100)]
Fix filesystem::path for iterators with const value_type

* include/experimental/bits/fs_path.h
(path::_S_convert<_Iter>(_Iter, _Iter)): Remove cv-qualifiers from
iterator's value_type.
(path::_S_convert<_Iter>(_Iter __first, __null_terminated)): Likewise.
Do not use operation not supported by input iterators.
(path::__is_path_iter_src): Add partial specialization for const
encoded character types.
* testsuite/experimental/filesystem/path/construct/range.cc: Test
construction from input iterators with const value types.

From-SVN: r241654

8 years agore PR debug/77773 (Segfault when compiling __simd64_float16_t using arm-none-eabi...
Aldy Hernandez [Fri, 28 Oct 2016 16:41:29 +0000 (16:41 +0000)]
re PR debug/77773 (Segfault when compiling __simd64_float16_t using arm-none-eabi-g++ with debug information)

PR debug/77773
* c-pretty-print.c (simple_type_specifier): Do not dereference `t'
if NULL.

From-SVN: r241653

8 years agobfin.c (bfin_legitimate_address_p): Add missing fallthru comment.
Jeff Law [Fri, 28 Oct 2016 15:22:28 +0000 (09:22 -0600)]
bfin.c (bfin_legitimate_address_p): Add missing fallthru comment.

* config/bfin/bfin.c (bfin_legitimate_address_p): Add missing
fallthru comment.
* config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Likewise.

From-SVN: r241651

8 years agosched: Do not mix prologue and epilogue insns
Segher Boessenkool [Fri, 28 Oct 2016 14:39:28 +0000 (16:39 +0200)]
sched: Do not mix prologue and epilogue insns

This patch makes scheduling not reorder prologue insns relative to
epilogue insns and vice versa.  This fixes PR78029.

The problem in that PR:
We have two insns, in this order:

(insn/f 300 299 267 8 (set (reg:DI 65 lr)
        (reg:DI 0 0)) 579 {*movdi_internal64}
     (expr_list:REG_DEAD (reg:DI 0 0)
        (expr_list:REG_CFA_RESTORE (reg:DI 65 lr)
            (nil))))
...
(insn/f 310 268 134 8 (set (mem/c:DI (plus:DI (reg/f:DI 1 1)
                (const_int 144 [0x90])) [6  S8 A8])
        (reg:DI 0 0)) 579 {*movdi_internal64}
     (expr_list:REG_DEAD (reg:DI 0 0)
        (expr_list:REG_CFA_OFFSET (set (mem/c:DI (plus:DI (reg/f:DI 1 1)
                        (const_int 144 [0x90])) [6  S8 A8])
                (reg:DI 65 lr))
            (nil))))

and sched swaps them (when compiling for power6, it tries to put memory
stores together, so insn 310 is moved up past 300 to go together with
some other store).  But the REG_CFA_RESTORE and REG_CFA_OFFSET cannot be
swapped (they both say where the orig value of LR now lives).

PR rtl-optimization/78029
* function.c (prologue_contains, epilogue_contains): New functions.
(record_prologue_seq, record_epilogue_seq): New functions.
* function.h (prologue_contains, epilogue_contains,
record_prologue_seq, record_epilogue_seq): New declarations.
* sched-deps.c (sched_analyze_insn): Make dependencies to prevent
mixing prologue and epilogue insns.
(init_deps): Initialize the new fields in struct deps_desc.
* sched-int.h (struct deps_desc): New fields last_prologue,
last_epilogue, and last_logue_was_epilogue.
* shrink-wrap.c (emit_common_heads_for_components): Record all
emitted prologue and epilogue insns.
(emit_common_tails_for_components): Ditto.
(insert_prologue_epilogue_for_components): Ditto.

From-SVN: r241650

8 years agoGIMPLE store merging pass
Kyrylo Tkachov [Fri, 28 Oct 2016 14:18:50 +0000 (14:18 +0000)]
GIMPLE store merging pass

2016-10-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

PR middle-end/22141
* Makefile.in (OBJS): Add gimple-ssa-store-merging.o.
* common.opt (fstore-merging): New Optimization option.
* opts.c (default_options_table): Add entry for
OPT_ftree_store_merging.
* fold-const.h (can_native_encode_type_p): Declare prototype.
* fold-const.c (can_native_encode_type_p): Define.
* params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Define.
(PARAM_MAX_STORES_TO_MERGE): Likewise.
* timevar.def (TV_GIMPLE_STORE_MERGING): New timevar.
* passes.def: Insert pass_tree_store_merging.
* tree-pass.h (make_pass_store_merging): Declare extern
prototype.
* gimple-ssa-store-merging.c: New file.
* doc/invoke.texi (Optimization Options): Document
-fstore-merging.
(--param documentation): Document store-merging-allow-unaligned
and max-stores-to-merge.

2016-10-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
            Jakub Jelinek  <jakub@redhat.com>
            Andrew Pinski  <pinskia@gmail.com>

PR middle-end/22141
PR rtl-optimization/23684
* gcc.c-torture/execute/pr22141-1.c: New test.
* gcc.c-torture/execute/pr22141-2.c: Likewise.
* gcc.target/aarch64/ldp_stp_1.c: Adjust for -fstore-merging.
* gcc.target/aarch64/ldp_stp_4.c: Likewise.
* gcc.dg/store_merging_1.c: New test.
* gcc.dg/store_merging_2.c: Likewise.
* gcc.dg/store_merging_3.c: Likewise.
* gcc.dg/store_merging_4.c: Likewise.
* gcc.dg/store_merging_5.c: Likewise.
* gcc.dg/store_merging_6.c: Likewise.
* gcc.dg/store_merging_7.c: Likewise.
* gcc.target/i386/pr22141.c: Likewise.
* gcc.target/i386/pr34012.c: Add -fno-store-merging to dg-options.
* g++.dg/init/new17.C: Likewise.

Co-Authored-By: Andrew Pinski <pinskia@gmail.com>
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r241649

8 years agoImplement std::launder for C++17
Jonathan Wakely [Fri, 28 Oct 2016 14:09:33 +0000 (15:09 +0100)]
Implement std::launder for C++17

* doc/xml/manual/status_cxx2017.xml: Update status.
* doc/html/*: Regenerate.
* include/std/type_traits (has_unique_object_representations): Guard
with __has_builtin check.
* libsupc++/new (launder): Define for C++17.
* testsuite/18_support/launder/1.cc: New test.
* testsuite/18_support/launder/requirements.cc: New test.
* testsuite/18_support/launder/requirements_neg.cc: New test.

From-SVN: r241648

8 years agore PR middle-end/72747 (powerpc: wrong code generated for vec_splats in cascading...
Will Schmidt [Fri, 28 Oct 2016 13:28:46 +0000 (13:28 +0000)]
re PR middle-end/72747 (powerpc: wrong code generated for vec_splats in cascading assignment)

gcc:
2016-10-26  Will Schmidt <will_schmidt@vnet.ibm.com>

        PR middle-end/72747
        * gimplify.c (gimplify_init_constructor): Move emit of constructor
        assignment to earlier in the if/else logic.

testsuite:
2016-10-26  Will Schmidt <will_schmidt@vnet.ibm.com>

        PR middle-end/72747
        * c-c++-common/pr72747-1.c: New test.
        * c-c++-common/pr72747-2.c: Likewise.

From-SVN: r241647

8 years agore PR middle-end/78128 (fortran/resolve.c:resolve_operator miscompiled at -O2)
Richard Biener [Fri, 28 Oct 2016 13:07:59 +0000 (13:07 +0000)]
re PR middle-end/78128 (fortran/resolve.c:resolve_operator miscompiled at -O2)

2016-10-28  Richard Biener  <rguenther@suse.de>

PR middle-end/78128
PR middle-end/71002
* fold-const.c (make_bit_field_ref): Only adjust alias set
when the original alias set was zero.

From-SVN: r241645

8 years agoS/390: Add static OSC breaker if necessary.
Andreas Krebbel [Fri, 28 Oct 2016 12:31:37 +0000 (12:31 +0000)]
S/390: Add static OSC breaker if necessary.

This patch adds a magic OSC (operand store compare) break instruction
which is necessary if a store is followed closely by a load with same
base+indx+displ while either base or index get modified in between.

The patch improves several SpecCPU testcases running on IBM z13.

gcc/testsuite/ChangeLog:

2016-10-28  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* gcc.target/s390/oscbreak-1.c: New test.

gcc/ChangeLog:

2016-10-28  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/s390.c (s390_adjust_loop_scan_osc): New function.
(s390_adjust_loops): New function.
(s390_reorg): Invoke s390_adjust_loops.
* config/s390/s390.md: (UNSPEC_OSC_BREAK): New constant.
("osc_break"): New insn definition.

From-SVN: r241644

8 years agoS/390: Add support for arch<n> arch/tune options.
Andreas Krebbel [Fri, 28 Oct 2016 12:28:24 +0000 (12:28 +0000)]
S/390: Add support for arch<n> arch/tune options.

This patch adds an alternate CPU level naming following the
architecture level number in the Principles of Operations manual.  So
instead of having z196, zEC12, and z13 you can use arch9, arch10, and
arch11.  The old cpu names stay valid and should preferably be used.

The alternate names are supposed to improve compatibility with the IBM
XL compiler toolchain which uses the arch numbering.

gcc/testsuite/ChangeLog:

2016-10-28  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* gcc.target/s390/target-attribute/tattr-m64-33.c: New test.

gcc/ChangeLog:

2016-10-28  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/s390.opt: Support alternate cpu level naming (archXX).
* config.gcc: Support alternate archXX cpu levels with
--with-arch= and --with-tune=.
* config/s390/linux.h: Translate new archXX cpu levels to the
original names when calling GAS.
* config/s390/tpf.h: Likewise.
* doc/invoke.texi: Document the alternate cpu level names.

From-SVN: r241643

8 years agore PR rtl-optimization/77919 (ICE converting DC to V2DF mode)
Jakub Jelinek [Fri, 28 Oct 2016 08:11:57 +0000 (10:11 +0200)]
re PR rtl-optimization/77919 (ICE converting DC to V2DF mode)

PR rtl-optimization/77919
* expr.c (expand_expr_real_1) <normal_inner_ref>: Force CONCAT into
MEM if mode1 is not a complex mode.

* g++.dg/torture/pr77919.C: New test.

From-SVN: r241642

8 years agore PR rtl-optimization/78132 (GCC produces invalid instruction (kmovd and kmovq)...
Jakub Jelinek [Fri, 28 Oct 2016 07:12:52 +0000 (09:12 +0200)]
re PR rtl-optimization/78132 (GCC produces invalid instruction (kmovd and kmovq) for KNL.)

PR rtl-optimization/78132
* ree.c (combine_reaching_defs): Give up if copy_needed and
!HARD_REGNO_MODE_OK (REGNO (src_reg), dst_mode).

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

From-SVN: r241641

8 years agoDaily bump.
GCC Administrator [Fri, 28 Oct 2016 00:16:16 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r241640

8 years agoIndex...
Carl Love [Thu, 27 Oct 2016 23:21:54 +0000 (23:21 +0000)]
Index...

Index: ChangeLog
===================================================================
--- ChangeLog (revision 241636)
+++ ChangeLog (working copy)
@@ -1,3 +1,7 @@
+2016-10-27  Carl Love  <cel@us.ibm.com>
+
+ * MAINTAINERS (Write After Approval): Add myself.
+
 2016-10-27  Andrew Burgess  <andrew.burgess@embecosm.com>

  * MAINTAINERS (Reviewers): Add myself.
Index: MAINTAINERS
===================================================================
--- MAINTAINERS (revision 241636)
+++ MAINTAINERS (working copy)
@@ -479,6 +479,7 @@
 Manuel López-Ibáñez <manu@gcc.gnu.org>
 Martin v. Löwis <loewis@informatik.hu-berlin.de>
 H.J. Lu <hjl.tools@gmail.com>
+Carl Love <cel@us.ibm.com>
 Christophe Lyon <christophe.lyon@st.com>
 Luis Machado <luisgpm@br.ibm.com>
 Ziga Mahkovec <ziga.mahkovec@klika.si>

From-SVN: r241637

8 years ago* gcc.dg/vect/pr71264.c: XFAIL on SPARC.
Eric Botcazou [Thu, 27 Oct 2016 21:02:25 +0000 (21:02 +0000)]
* gcc.dg/vect/pr71264.c: XFAIL on SPARC.

From-SVN: r241634

8 years ago* config/sparc/sparc.md (<*vlop:code><VL:mode>3): Remove leading '*'.
Eric Botcazou [Thu, 27 Oct 2016 21:00:22 +0000 (21:00 +0000)]
* config/sparc/sparc.md (<*vlop:code><VL:mode>3): Remove leading '*'.

From-SVN: r241632

8 years agoconstraints.md (wH constraint): Add new constraints for allowing 32-bit integers...
Michael Meissner [Thu, 27 Oct 2016 20:52:07 +0000 (20:52 +0000)]
constraints.md (wH constraint): Add new constraints for allowing 32-bit integers (and eventually 8/16-bit...

[gcc]
2016-10-27  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/constraints.md (wH constraint): Add new
constraints for allowing 32-bit integers (and eventually 8/16-bit
integers) into the vector registers.
(wI constraint): Likewise.
(wJ constraint): Likewise.
(wK constraint): Likewise.
* config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
-mvsx-small-integer as a default option for ISA 2.07
(i.e. power8).
(POWERPC_MASKS): Likewise.
* config/rs6000/rs6000.opt (-mvsx-small-integer): Add new debug
switch to turn off small integer support in vector registers.
* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Eliminate
test for -mupper-regs-di, since it is already done with the
reg_add[mode].scalar_in_vsx_p.  Add support for the switch
-mvsx-small-integer.
(rs6000_debug_reg_global): Add support for wH, wI, wJ, and wK
constraints.
(rs6000_setup_reg_addr_masks): Likewise.
(rs6000_init_hard_regno_mode_ok): Likewise.
(rs6000_option_override_internal): Add consistency checks for
-mvsx-small-integer.
(rs6000_secondary_reload_simple_move): SImode is a simple move if
-mvsx-small-integer.
(rs6000_secondary_reload): Use std::swap.
(rs6000_preferred_reload_class): Don't prefer FLOAT_REGS over
VSX_REGS for small integers in vector registers, since there is no
D-FORM address mode for such types.
(rs6000_register_move_cost): Use FIRST_FPR_REGNO instead of 32.
(rs6000_opt_masks): Add -mvsx-small-integer.
* config/rs6000/vsx.md (VSINT_84): Add SImode for small integer
support.
(VSX_EXTRACT_I2): Clone VSX_EXTRACT_I, but drop V4SI since SImode
extracts can be done on ISA 2.07.
(vsx_extract_<mode>): Add support for small integers in vsx
registers.
(vsx_extract_<mode>_p9): Use 'v' instead of VSX_EX, since we no
longer support V4SImode in this pattern.
(vsx_extract_si): New insn to support extraction of SImode in ISA
2.07 using either xxextractuw or vspltw.
(vsx_extract_<mode>_p8): Use 'v' instead of VSX_EX, since we no
longer support V4SImode in this pattern.
* config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wH, wI,
wJ, and wK constraints.
* config/rs6000/rs6000.md (f32_sv): Use correct instruction for
storing SDmode with VSX instructions.
(zero_extendsi<mode>2): Reorder pattern, so RLDICL comes after the
GPR load and before the FPR and VSX loads.  Remove ??, ! from the
constraints.  Add MFVSRWZ and XXEXTRACTUW instructions to support
small integers in vector registers.
(extendsi<mode>2): Reorder pattern, so EXTSW comes after the GPR
load and before the FPR and VSX loads.  Remove ??, ! from the
constraints.  Add VEXTSW2D support for small integers in vector
registers.
(lfiwax): Remove ! constraint.  Add VEXTSW2D support for small
integers in vector registers.
(floatsi<mode>2_lfiwax): If -mvsx-small-integer issue a normal
move instead of using an UNSPEC.
(lfiwzx): Remove ! constraint.  Add XXEXTRACTUW support for small
integers in vector registers.
(floatunssi<mode>2_lfiwzx): If -mvsx-small-integer issue a normal
move instead of using an UNSPEC.
(movsi_internal1): Add support for -mvsx-small-integer.  Align
columns so that it is more readable.
(SImode splitter for ISA 3.0 constants): Add splitter for
-128..127 constants that can easily be constructed on ISA 3.0.
* doc/md.texi (PowerPC Constraints): Document wH, wI, wJ, and wK
constraints.

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

* gcc.target/powerpc/vsx-simode.c: New test.
* gcc.target/powerpc/vsx-simode2.c: Likewise.
* gcc.target/powerpc/vsx-simode3.c: Likewise.

From-SVN: r241631

8 years agore PR fortran/78026 (ICE in gfc_resolve_omp_declare_simd, at fortran/openmp.c:5190)
Jakub Jelinek [Thu, 27 Oct 2016 19:55:12 +0000 (21:55 +0200)]
re PR fortran/78026 (ICE in gfc_resolve_omp_declare_simd, at fortran/openmp.c:5190)

PR fortran/78026
* parse.c (decode_statement): Don't create namespace for possible
select type here and destroy it afterwards.
(parse_select_type_block): Set gfc_current_ns to new_st.ext.block.ns.
(parse_executable, gfc_parse_file): Formatting fixes.
* match.c (gfc_match_select_type): Create namespace for select type
here, only after matching select type.  Formatting fixes.  Free that
namespace if not returning MATCH_YES, after gfc_undo_symbols,
otherwise remember it in new_st.ext.block.ns and switch to parent
namespace anyway.

* gfortran.dg/gomp/pr78026.f03: New test.
* gfortran.dg/select_type_38.f03: New test.

From-SVN: r241630

8 years agoPR70975 Pass valid offset argument to sendfile
Uros Bizjak [Thu, 27 Oct 2016 18:55:55 +0000 (20:55 +0200)]
PR70975 Pass valid offset argument to sendfile

PR libstdc++/70975
* src/filesystem/ops.cc (do_copy_file) [_GLIBCXX_USE_SENDFILE]:
Pass non-null pointer to sendfile for offset argument.

From-SVN: r241629

8 years agore PR middle-end/78025 (ICE in simd_clone_adjust, at omp-simd-clone.c:1126)
Jakub Jelinek [Thu, 27 Oct 2016 18:51:28 +0000 (20:51 +0200)]
re PR middle-end/78025 (ICE in simd_clone_adjust, at omp-simd-clone.c:1126)

PR middle-end/78025
* omp-simd-clone.c (simd_clone_adjust): Handle noreturn declare simd
functions.

* g++.dg/gomp/declare-simd-7.C: New test.

From-SVN: r241628

8 years agooacc-init.c (goacc_new_thread): Use sizeof of the appropriate size when allocating...
Aldy Hernandez [Thu, 27 Oct 2016 17:36:36 +0000 (17:36 +0000)]
oacc-init.c (goacc_new_thread): Use sizeof of the appropriate size when allocating new thread.

* oacc-init.c (goacc_new_thread): Use sizeof of the appropriate
size when allocating new thread.

From-SVN: r241627

8 years agoFix initialization of UNIONs with -finit-derived.
Fritz Reese [Thu, 27 Oct 2016 17:21:46 +0000 (17:21 +0000)]
Fix initialization of UNIONs with -finit-derived.

gcc/fortran/
* expr.c (generate_union_initializer, get_union_initializer): New.
* expr.c (component_initializer): Consider BT_UNION specially.
* resolve.c (resolve_structure_cons): Hack for BT_UNION.
* trans-expr.c (gfc_trans_subcomponent_assign): Ditto.
* trans-expr.c (gfc_conv_union_initializer): New.
* trans-expr.c (gfc_conv_structure): Replace UNION handling code with
new function gfc_conv_union_initializer.

gcc/testsuite/gfortran.dg/
* dec_init_1.f90, dec_init_2.f90: Remove -fdump-tree-original.
* dec_init_3.f90, dec_init_4.f90: New tests.

From-SVN: r241626

8 years agobuiltins.c (expand_builtin_nonlocal_goto): Avoid evaluating PIC_OFFSET_TABLE_REGNUM...
Aldy Hernandez [Thu, 27 Oct 2016 16:13:19 +0000 (16:13 +0000)]
builtins.c (expand_builtin_nonlocal_goto): Avoid evaluating PIC_OFFSET_TABLE_REGNUM twice.

* builtins.c (expand_builtin_nonlocal_goto): Avoid evaluating
PIC_OFFSET_TABLE_REGNUM twice.

From-SVN: r241625

8 years agomatch.pd ((convert (op:s (convert@2 @0) (convert?@3 @1)))): Add support for constant...
Bin Cheng [Thu, 27 Oct 2016 14:59:04 +0000 (14:59 +0000)]
match.pd ((convert (op:s (convert@2 @0) (convert?@3 @1)))): Add support for constant operand for OP.

* match.pd ((convert (op:s (convert@2 @0) (convert?@3 @1)))): Add
support for constant operand for OP.

gcc/testsuite
* gcc.dg/fold-narrowbopcst-1.c: New test.

From-SVN: r241624

8 years agoFix some DEC I/O testcases.
Fritz Reese [Thu, 27 Oct 2016 14:14:44 +0000 (14:14 +0000)]
Fix some DEC I/O testcases.

gcc/testsuite/gfortran.dg/
* dec_io_5.f90, dec_io_6.f90: Don't use "test.txt", and use
dg-shouldfail/dg-output instead of XFAIL.

From-SVN: r241623

8 years agodwarf2out.c (gen_member_die): Only reparent_child instead of splice_child_die if...
Jakub Jelinek [Thu, 27 Oct 2016 13:57:47 +0000 (15:57 +0200)]
dwarf2out.c (gen_member_die): Only reparent_child instead of splice_child_die if...

* dwarf2out.c (gen_member_die): Only reparent_child instead of
splice_child_die if child doesn't have DW_AT_specification attribute.

From-SVN: r241622

8 years agoFix target selectors in uniform_inside_sphere_distribution tests
Jonathan Wakely [Thu, 27 Oct 2016 13:55:36 +0000 (14:55 +0100)]
Fix target selectors in uniform_inside_sphere_distribution tests

* testsuite/ext/random/uniform_inside_sphere_distribution/cons/
default.cc: Fix effective target selector.
* testsuite/ext/random/uniform_inside_sphere_distribution/cons/
parms.cc: Likewise.
* testsuite/ext/random/uniform_inside_sphere_distribution/operators/
equal.cc: Likewise.
* testsuite/ext/random/uniform_inside_sphere_distribution/operators/
generate.cc: Likewise.
* testsuite/ext/random/uniform_inside_sphere_distribution/operators/
inequal.cc: Likewise.
* testsuite/ext/random/uniform_inside_sphere_distribution/operators/
serialize.cc: Likewise.

From-SVN: r241621

8 years ago* class.c (add_method): Allow using-declarations to coexist.
Jason Merrill [Thu, 27 Oct 2016 13:39:48 +0000 (09:39 -0400)]
* class.c (add_method): Allow using-declarations to coexist.

From-SVN: r241620

8 years agoAdd myself to the MAINTAINERS file
Andrew Burgess [Thu, 27 Oct 2016 13:04:19 +0000 (14:04 +0100)]
Add myself to the MAINTAINERS file

* MAINTAINERS (Reviewers): Add myself.
(Write After Approval): Add myself.

From-SVN: r241619

8 years agoAdjust precision of filesystem::last_write_time tests
Jonathan Wakely [Thu, 27 Oct 2016 11:01:49 +0000 (12:01 +0100)]
Adjust precision of filesystem::last_write_time tests

* testsuite/experimental/filesystem/iterators/directory_iterator.cc:
Use end() function to get end iterator.
* testsuite/experimental/filesystem/iterators/pop.cc: Remove printf
statements that were present for debugging.
* testsuite/experimental/filesystem/iterators/
recursive_directory_iterator.cc: Use end() function to get end
iterator.
* testsuite/experimental/filesystem/operations/last_write_time.cc:
Only require file timestamps to be accurate to one second.

From-SVN: r241616

8 years agoEnable ARMv8-M atomic and synchronization support for ARMv8-M Baseline
Thomas Preud'homme [Thu, 27 Oct 2016 10:19:27 +0000 (10:19 +0000)]
Enable ARMv8-M atomic and synchronization support for ARMv8-M Baseline

2016-10-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config/arm/arm.h (TARGET_HAVE_LDREX): Define for ARMv8-M Baseline.
    (TARGET_HAVE_LDREXBH): Likewise.
    (TARGET_HAVE_LDACQ): Likewise.

    gcc/testsuite/
    * gcc.target/arm/atomic-comp-swap-release-acquire-3.c: New test.
    * gcc.target/arm/atomic-op-acq_rel-3.c: Likewise.
    * gcc.target/arm/atomic-op-acquire-3.c: Likewise.
    * gcc.target/arm/atomic-op-char-3.c: Likewise.
    * gcc.target/arm/atomic-op-consume-3.c: Likewise.
    * gcc.target/arm/atomic-op-int-3.c: Likewise.
    * gcc.target/arm/atomic-op-relaxed-3.c: Likewise.
    * gcc.target/arm/atomic-op-release-3.c: Likewise.
    * gcc.target/arm/atomic-op-seq_cst-3.c: Likewise.
    * gcc.target/arm/atomic-op-short-3.c: Likewise.

From-SVN: r241615

8 years agoAdapt other atomic operations to ARMv8-M Baseline
Thomas Preud'homme [Thu, 27 Oct 2016 10:19:13 +0000 (10:19 +0000)]
Adapt other atomic operations to ARMv8-M Baseline

2016-10-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config/arm/arm.c (arm_split_atomic_op): Add function comment.  Add
    logic to to decide whether to copy over old value to register for new
    value.
    * config/arm/sync.md: Add comments explaning why mode and code
    attribute are not defined in iterators.md
    (thumb1_atomic_op_str): New code attribute.
    (thumb1_atomic_newop_str): Likewise.
    (thumb1_atomic_fetch_op_str): Likewise.
    (thumb1_atomic_fetch_newop_str): Likewise.
    (thumb1_atomic_fetch_oldop_str): Likewise.
    (atomic_exchange<mode>): Add new ARMv8-M Baseline only alternatives to
    mirror the more restrictive constraints of the Thumb-1 insns after
    split compared to Thumb-2 counterpart insns.
    (atomic_<sync_optab><mode>): Likewise.  Add comment to keep constraints
    in sync with non atomic version.
    (atomic_nand<mode>): Likewise.
    (atomic_fetch_<sync_optab><mode>): Likewise.
    (atomic_fetch_nand<mode>): Likewise.
    (atomic_<sync_optab>_fetch<mode>): Likewise.
    (atomic_nand_fetch<mode>): Likewise.
    * config/arm/thumb1.md (thumb1_addsi3): Add comment to keep contraint
    in sync with atomic version.
    (thumb1_subsi3_insn): Likewise.
    (thumb1_andsi3_insn): Likewise.
    (thumb1_iorsi3_insn): Likewise.
    (thumb1_xorsi3_insn): Likewise.

From-SVN: r241614

8 years agoplugin.c (register_plugin_info): Produce an error message if the plugin is not found...
Nick Clifton [Thu, 27 Oct 2016 08:38:07 +0000 (08:38 +0000)]
plugin.c (register_plugin_info): Produce an error message if the plugin is not found in the hash table.

* plugin.c (register_plugin_info): Produce an error message if the
plugin is not found in the hash table.

From-SVN: r241613

8 years agomatch.pd ((convert1 (minmax ((convert2 (x) c)))) -> minmax (x c)): New pattern.
Bin Cheng [Thu, 27 Oct 2016 08:31:01 +0000 (08:31 +0000)]
match.pd ((convert1 (minmax ((convert2 (x) c)))) -> minmax (x c)): New pattern.

* match.pd ((convert1 (minmax ((convert2 (x) c)))) -> minmax (x c)):
New pattern.

gcc/testsuite
* gcc.dg/fold-convmaxconv-1.c: New test.
* gcc.dg/fold-convminconv-1.c: New test.

From-SVN: r241612

8 years agore PR fortran/78092 (ICE when calling SIZEOF on CLASS(*) entry)
Steven G. Kargl [Thu, 27 Oct 2016 03:08:13 +0000 (03:08 +0000)]
re PR fortran/78092 (ICE when calling SIZEOF on CLASS(*) entry)

2016-10-26  Steven G. Kargl <kargl@gcc.gnu.org>

PR fortran/78092
* trans-intrinsic.c (gfc_conv_intrinsic_sizeof):  Fix reference to an
array element of type CLASS.

2016-10-26  Steven G. Kargl <kargl@gcc.gnu.org>

PR fortran/78092
* gfortran.dg/pr78092.f90: New test.

From-SVN: r241610

8 years agoDaily bump.
GCC Administrator [Thu, 27 Oct 2016 00:16:15 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r241609

8 years agostl_map.h (map()): Make default.
François Dumont [Wed, 26 Oct 2016 20:52:21 +0000 (20:52 +0000)]
stl_map.h (map()): Make default.

2016-10-26  François Dumont  <fdumont@gcc.gnu.org>

* include/bits/stl_map.h (map()): Make default.
* include/bits/stl_multimap.h (multimap()): Likewise.
* include/bits/stl_multiset.h (multiset()): Likewise.
* include/bits/stl_set.h (set()): Likewise.
* include/bits/stl_tree.h (_Rb_tree_impl()): Add conditional noexcept.
(_Rb_tree()): Make default.

From-SVN: r241601

8 years agosh.c (output_branch): Add missing fallthru comments.
Jeff Law [Wed, 26 Oct 2016 20:25:06 +0000 (14:25 -0600)]
sh.c (output_branch): Add missing fallthru comments.

* config/sh/sh.c (output_branch): Add missing fallthru comments.
(gen_shl_and): Likewise.
* config/sh/sh.md (movsicc): Add missing fallthru comments.

From-SVN: r241600

8 years agore PR target/78056 (build failure on Power7)
Kelvin Nilsen [Wed, 26 Oct 2016 20:19:39 +0000 (20:19 +0000)]
re PR target/78056 (build failure on Power7)

gcc/ChangeLog:

2016-10-26  Kelvin Nilsen  <kelvin@gcc.gnu.org>

PR target/78056
* config/rs6000/rs6000.c (spe_init_builtins): Modify loops to not
define builtin functions from the bdesc_spe_predicates or
bdesc_spe_evsel arrays if the builtin mask is not compatible with
the current compiler configuration.
(paired_init_builtins): Modify loop to not define define builtin
functions from the bdesc_paried_preds array if the builtin mask is
not compatible with the current compiler configuration.
(altivec_init_builtins): Modify loops to not define the
__builtin_altivec_stxvl function nor the builtin functions from
the bdesc_dst or bdesc_altivec_preds, or bdesc_abs arrays if the
builtin mask is not compatible with the current compiler
configuration.

gcc/testsuite/ChangeLog:

2016-10-26  Kelvin Nilsen  <kelvin@gcc.gnu.org>

PR target/78056
* gcc.target/powerpc/vsu/vec-any-eqz-7.c (test_any_equal): Change
expected error message.
* gcc.target/powerpc/vsu/vec-xst-len-12.c (store_data): Change
expected error message.
* gcc.target/powerpc/vsu/vec-all-nez-7.c
(test_all_not_equal_and_not_zero): Change expected error message.

From-SVN: r241599

8 years agomips.c (mips16_constant_cost): Add missing fallthru comments.
Jeff Law [Wed, 26 Oct 2016 20:16:57 +0000 (14:16 -0600)]
mips.c (mips16_constant_cost): Add missing fallthru comments.

* config/mips/mips.c (mips16_constant_cost): Add missing
fallthru comments.
(mips16_build_call_stub): Increase buffer size.  Adjust
fallthru comment.

From-SVN: r241597

8 years agoShow INSN_UIDs in compact mode
David Malcolm [Wed, 26 Oct 2016 18:25:14 +0000 (18:25 +0000)]
Show INSN_UIDs in compact mode

gcc/ChangeLog:
* print-rtl.c (rtx_writer::print_rtx_operand_code_u): Print
INSN_UIDs for all insns in compact mode.
(rtx_writer::print_rtx): Likewise.
* print-rtl.h (rtx_writer::flag_compact): Update comment.
* rtl-tests.c (selftest::test_dumping_insns): Update expected
output to include INSN_UID.
(selftest::test_uncond_jump): Likewise.

From-SVN: r241593

8 years agore PR libstdc++/78110 (freestanding libstdc++ fails to compile)
Bernd Edlinger [Wed, 26 Oct 2016 17:26:00 +0000 (17:26 +0000)]
re PR libstdc++/78110 (freestanding libstdc++ fails to compile)

2016-10-26  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR libstdc++/78110
        * libsupc++/new_opa.cc: Don't include <malloc.h> in a free standing
        environment.  Declare memalign directly in that case.

From-SVN: r241591

8 years agohaifa-sched.c (call_used_regs_num): Rename to...
Pat Haugen [Wed, 26 Oct 2016 17:07:55 +0000 (17:07 +0000)]
haifa-sched.c (call_used_regs_num): Rename to...

* haifa-sched.c (call_used_regs_num): Rename to...
(call_saved_regs_num): ...this.
(fixed_regs_num): New variable.
(sched_pressure_start_bb): Subtract out fixed_regs. Scale call_saved
regs not call_used.
(alloc_global_sched_pressure_data): Compute call_saved and fixed regs.

From-SVN: r241590

8 years agomicroblaze.c (tls_mentioned_p): Avoid fallthru.
Jeff Law [Wed, 26 Oct 2016 17:00:18 +0000 (11:00 -0600)]
microblaze.c (tls_mentioned_p): Avoid fallthru.

* config/microblaze/microblaze.c (tls_mentioned_p): Avoid
fallthru.

From-SVN: r241587

8 years agoIntroduce class rtx_writer
David Malcolm [Wed, 26 Oct 2016 16:51:53 +0000 (16:51 +0000)]
Introduce class rtx_writer

gcc/ChangeLog:
* print-rtl-function.c (print_rtx_function): Rewrite in terms of
class rtx_writer.
* print-rtl.c (outfile): Delete global.
(sawclose): Likewise.
(indent): Likewise.
(in_call_function_usage): Likewise.
(flag_compact): Likewise.
(flag_simple): Likewise.
(rtx_writer::rtx_writer): New ctor.
(print_rtx_operand_code_0): Convert to...
(rtx_writer::print_rtx_operand_code_0): ...this.
(print_rtx_operand_code_e): Convert to...
(rtx_writer::print_rtx_operand_code_e): ...this.
(print_rtx_operand_codes_E_and_V): Convert to...
(rtx_writer::print_rtx_operand_codes_E_and_V): ...this.
(print_rtx_operand_code_i): Convert to...
(rtx_writer::print_rtx_operand_code_i): ...this.
(print_rtx_operand_code_r): Convert to...
(rtx_writer::print_rtx_operand_code_r): ...this.
(print_rtx_operand_code_u): Convert to...
(rtx_writer::print_rtx_operand_code_u): ...this.
(print_rtx_operand): Convert to...
(rtx_writer::print_rtx_operand): ...this.
(print_rtx): Convert to...
(rtx_writer::print_rtx): ...this.
(print_inline_rtx): Rewrite in terms of class rtx_writer.
(debug_rtx): Likewise.
(print_rtl): Convert to...
(rtx_writer::print_rtl): ...this.
(print_rtl): Reimplement in terms of class rtx_writer.
(print_rtl_single): Rewrite in terms of class rtx_writer.
(print_rtl_single_with_indent): Convert to..
(rtx_writer::print_rtl_single_with_indent): ...this.
(print_simple_rtl): Rewrite in terms of class rtx_writer.
* print-rtl.h (flag_compact): Delete decl.
(class rtx_writer): New class.
* rtl-tests.c (selftest::assert_rtl_dump_eq): Rewrite in terms of
class rtx_writer.

From-SVN: r241586

8 years agoarc.c (acr_print_operand): Adjust fallthru comment.
Jeff Law [Wed, 26 Oct 2016 16:33:22 +0000 (10:33 -0600)]
arc.c (acr_print_operand): Adjust fallthru comment.

* config/arc/arc.c (acr_print_operand): Adjust fallthru comment.
(check_if_valid_sleep_operand): Add missing fallthru comment.
(arc_register_move_cost): Increase buffer size.
* config/arc/arc.md (cbranch4si_scratch): Add missing fallthru
comment.
* config/arc/predicates.md (move_str_operand): Avoid fallthru.

From-SVN: r241585

8 years agocr16.c (cr16_print_operand): Add missing fallthru comment.
Jeff Law [Wed, 26 Oct 2016 16:27:44 +0000 (10:27 -0600)]
cr16.c (cr16_print_operand): Add missing fallthru comment.

* config/cr16/cr16.c (cr16_print_operand): Add missing fallthru
comment.  Add gcc_unreachable for path that should never happen.

From-SVN: r241584

8 years agoFix test for recursive_directory_iterator::pop
Jonathan Wakely [Wed, 26 Oct 2016 16:25:44 +0000 (17:25 +0100)]
Fix test for recursive_directory_iterator::pop

* testsuite/experimental/filesystem/iterators/pop.cc: Remove
unreliable dependency on directory order.

From-SVN: r241583

8 years agoepiphany.c (epiphany_print_operand): Adjust fallthru comment.
Jeff Law [Wed, 26 Oct 2016 16:23:27 +0000 (10:23 -0600)]
epiphany.c (epiphany_print_operand): Adjust fallthru comment.

* config/epiphany/epiphany.c (epiphany_print_operand): Adjust
fallthru comment.

From-SVN: r241582

8 years agore PR fortran/77973 (ICE in scan_omp_1_op, at omp-low.c:3841)
Jakub Jelinek [Wed, 26 Oct 2016 16:21:56 +0000 (18:21 +0200)]
re PR fortran/77973 (ICE in scan_omp_1_op, at omp-low.c:3841)

PR fortran/77973
* gimplify.c (gimplify_adjust_omp_clauses_1): For all added map
clauses with OMP_CLAUSE_SIZE being a decl, call omp_notice_variable
on outer context if any.

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

Co-Authored-By: Martin Liska <mliska@suse.cz>
From-SVN: r241581

8 years agogen-pass-instances.awk (adjust_linenos): INcrement pass_lines[p] by increment rather...
Jakub Jelinek [Wed, 26 Oct 2016 16:20:54 +0000 (18:20 +0200)]
gen-pass-instances.awk (adjust_linenos): INcrement pass_lines[p] by increment rather than double it.

* gen-pass-instances.awk (adjust_linenos): INcrement pass_lines[p]
by increment rather than double it.
(insert_remove_pass): Strip leading whitespace from args[3].  Don't
emit a space before args[4].
(END): Don't emit a space before with_arg.

From-SVN: r241580

8 years ago* config/fr30/fr30.c (fr30_print_operand): Adjust fallthru comment.
Jeff Law [Wed, 26 Oct 2016 16:19:55 +0000 (10:19 -0600)]
* config/fr30/fr30.c (fr30_print_operand): Adjust fallthru comment.

From-SVN: r241579

8 years agoAdapt atomic compare and swap to ARMv8-M Baseline
Thomas Preud'homme [Wed, 26 Oct 2016 16:17:54 +0000 (16:17 +0000)]
Adapt atomic compare and swap to ARMv8-M Baseline

2016-10-26  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Add new ARMv8-M
    Baseline only alternatives to (i) hold store atomic success value in a
    return register rather than a scratch register, (ii) use a low register
    for it and to (iii) ensure the cbranchsi insn generated by the split
    respect the constraints of Thumb-1 cbranchsi4_insn and
    cbranchsi4_scratch.
    * config/arm/thumb1.md (cbranchsi4_insn): Add comment to indicate
    constraints must match those in atomic_compare_and_swap.
    (cbranchsi4_scratch): Likewise.

From-SVN: r241578

8 years agoRefactor atomic compare_and_swap to make it fit for ARMv8-M Baseline
Thomas Preud'homme [Wed, 26 Oct 2016 16:17:44 +0000 (16:17 +0000)]
Refactor atomic compare_and_swap to make it fit for ARMv8-M Baseline

2016-10-26  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config/arm/arm.c (arm_expand_compare_and_swap): Add new bdst local
    variable.  Add the new parameter to the insn generator.  Set that
    parameter to be CC flag for 32-bit targets, bval otherwise.  Set the
    return value from the negation of that parameter for Thumb-1, keeping
    the logic unchanged otherwise except for using bdst as the destination
    register of the compare_and_swap insn.
    (arm_split_compare_and_swap): Add explanation about how is the value
    returned to the function comment.  Rename scratch variable to
    neg_bval.  Adapt initialization of variables holding operands to the
    new operand numbers.  Use return register to hold result of store
    exclusive for Thumb-1, scratch register otherwise.  Construct the
    appropriate cbranch for Thumb-1 targets, keeping the logic unchanged
    for 32-bit targets.  Guard Z flag setting to restrict to 32bit targets.
    Use gen_cbranchsi4 rather than hand-written conditional branch to loop
    for strongly ordered compare_and_swap.
    * config/arm/predicates.md (cc_register_operand): New predicate.
    * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Use a
    match_operand with the new predicate to accept either the CC flag or a
    destination register for the boolean return value, restricting it to
    CC flag only via constraint.  Adapt operand numbers accordingly.

From-SVN: r241577

8 years agofrv.c (comparison_string): Do not fall through after an error.
Jeff Law [Wed, 26 Oct 2016 16:15:38 +0000 (10:15 -0600)]
frv.c (comparison_string): Do not fall through after an error.

* config/frv/frv.c (comparison_string): Do not fall through after
an error.

From-SVN: r241576

8 years agoiq2000.c (iq2000_function_arg): Adjust fallthru comment.
Jeff Law [Wed, 26 Oct 2016 16:10:40 +0000 (10:10 -0600)]
iq2000.c (iq2000_function_arg): Adjust fallthru comment.

* config/iq2000/iq2000.c (iq2000_function_arg): Adjust fallthru
comment.
(expand_one_builtin): Add missing break.

From-SVN: r241573

8 years agom32c.c (encode_pattern_1): Add fallthru comment.
Jeff Law [Wed, 26 Oct 2016 16:08:30 +0000 (10:08 -0600)]
m32c.c (encode_pattern_1): Add fallthru comment.

* config/m32c/m32c.c (encode_pattern_1): Add fallthru comment.
(m32c_legitimate_address_p): Likewise.

From-SVN: r241572

8 years ago* config/m32r/m32r.c (m32r_print_operand): Adjust fallthru comment.
Jeff Law [Wed, 26 Oct 2016 16:02:58 +0000 (10:02 -0600)]
* config/m32r/m32r.c (m32r_print_operand): Adjust fallthru comment.

From-SVN: r241571

8 years ago* config/mcore/mcore.c (mcore_gen_compare): Adjust fallthru comments.
Jeff Law [Wed, 26 Oct 2016 15:59:34 +0000 (09:59 -0600)]
* config/mcore/mcore.c (mcore_gen_compare): Adjust fallthru comments.

From-SVN: r241569

8 years agomicroblaze.c (microblaze_function_arg): Adjust fallthru comment.
Jeff Law [Wed, 26 Oct 2016 15:52:41 +0000 (09:52 -0600)]
microblaze.c (microblaze_function_arg): Adjust fallthru comment.

* config/microblaze/microblaze.c (microblaze_function_arg): Adjust
fallthru comment.

From-SVN: r241568

8 years agomsp430.c (msp430_legitimate_address_p): Adjust fallthru comment.
Jeff Law [Wed, 26 Oct 2016 15:49:25 +0000 (09:49 -0600)]
msp430.c (msp430_legitimate_address_p): Adjust fallthru comment.

* config/msp430/msp430.c (msp430_legitimate_address_p): Adjust
fallthru comment.

From-SVN: r241567

8 years ago* config/nios2/nios2.c (nios2_rtx_costs): Avoid fallthru.
Jeff Law [Wed, 26 Oct 2016 15:47:48 +0000 (09:47 -0600)]
* config/nios2/nios2.c (nios2_rtx_costs): Avoid fallthru.

From-SVN: r241566

8 years agorl78.c (rl78_calculate_death_notes): Add fallthru comment.
Jeff Law [Wed, 26 Oct 2016 15:42:11 +0000 (09:42 -0600)]
rl78.c (rl78_calculate_death_notes): Add fallthru comment.

* config/rl78/rl78.c (rl78_calculate_death_notes): Add fallthru
comment.
(rl78_asm_ctor_dtor): Increase buffer size.

From-SVN: r241565

8 years agostormy16.c (xstormy16_asm_output_destrutor): Increase buffer size.
Jeff Law [Wed, 26 Oct 2016 15:36:48 +0000 (09:36 -0600)]
stormy16.c (xstormy16_asm_output_destrutor): Increase buffer size.

* config/stormy16/stormy16.c (xstormy16_asm_output_destrutor): Increase
buffer size.
(xstormy16_asm_output_constructor): Likewise.

From-SVN: r241564

8 years agoImplement uniform_inside_sphere_distribution extension.
Edward Smith-Rowland [Wed, 26 Oct 2016 15:34:18 +0000 (15:34 +0000)]
Implement uniform_inside_sphere_distribution extension.

2016-10-26  Edward Smith-Rowland  <3dw4rd@verizon.net>

Implement uniform_inside_sphere_distribution extension.
* include/ext/random: Implement uniform_inside_sphere_distribution.
* include/ext/random.tcc: Ditto.
* testsuite/ext/random/uniform_inside_sphere_distribution/
cons/default.cc: New.
* testsuite/ext/random/uniform_inside_sphere_distribution/
cons/parms.cc: New.
* testsuite/ext/random/uniform_inside_sphere_distribution/
operators/equal.cc: New.
* testsuite/ext/random/uniform_inside_sphere_distribution/
operators/generate.cc: New.
* testsuite/ext/random/uniform_inside_sphere_distribution/
operators/inequal.cc: New.
* testsuite/ext/random/uniform_inside_sphere_distribution/
operators/serialize.cc: New.

From-SVN: r241562

8 years agopa.c (pa_asm_output_mi_thunk): Increase buffer size.
Jeff Law [Wed, 26 Oct 2016 15:25:27 +0000 (09:25 -0600)]
pa.c (pa_asm_output_mi_thunk): Increase buffer size.

* config/pa/pa.c (pa_asm_output_mi_thunk): Increase buffer
size.

From-SVN: r241561

8 years agoh8300.c (h8300_print_operand): Adjust FALLTHRU comment to silence warning.
Jeff Law [Wed, 26 Oct 2016 15:20:33 +0000 (09:20 -0600)]
h8300.c (h8300_print_operand): Adjust FALLTHRU comment to silence warning.

* config/h8300/h8300.c (h8300_print_operand): Adjust FALLTHRU
comment to silence warning.

From-SVN: r241560