]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
8 years ago * c-c++-common/ubsan/sanitize-recover-7.c (dg-options): Add -w.
ebotcazou [Mon, 26 Jun 2017 09:49:08 +0000 (09:49 +0000)] 
* c-c++-common/ubsan/sanitize-recover-7.c (dg-options): Add -w.

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

8 years ago * MAINTAINERS: Add myself to Write After Approval.
chefmax [Mon, 26 Jun 2017 09:44:49 +0000 (09:44 +0000)] 
* MAINTAINERS: Add myself to Write After Approval.

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

8 years ago[ARM, testsuite] Add -mfloat-abi=hard to arm_neon_ok
clyon [Mon, 26 Jun 2017 09:25:55 +0000 (09:25 +0000)] 
[ARM, testsuite] Add -mfloat-abi=hard to arm_neon_ok

2017-06-02  Christophe Lyon  <christophe.lyon@linaro.org>

gcc/testsuite/
* lib/target-supports.exp
(check_effective_target_arm_neon_ok_nocache): Add flags with
-mfloat-abi=hard. Include arm_neon.h.
(check_effective_target_arm_neon_ok_no_float_abi_nocache): New.
(check_effective_target_arm_neon_ok_no_float_abi): New.
* gcc.target/arm/lto/pr65837_0.c: Require
arm_neon_ok_no_float_abi. Add -mfpu=neon to dg-lto-options.
* gcc.target/arm/lto/pr65837-attr_0.c: Require
arm_neon_ok_no_float_abi. Remove dg-suppress-ld-options.

gcc/
* doc/sourcebuild.texi (ARM-specific attributes): Document new
arm_neon_ok_no_float_abi effective target.

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

8 years ago2017-06-26 Richard Biener <rguenther@suse.de>
rguenth [Mon, 26 Jun 2017 07:19:37 +0000 (07:19 +0000)] 
2017-06-26  Richard Biener  <rguenther@suse.de>

        PR tree-optimization/80928
* cfghooks.c (duplicate_block): Do not copy BB_DUPLICATED flag.
(copy_bbs): Set BB_DUPLICATED flag early.
(execute_on_growing_pred): Do not execute for BB_DUPLICATED
marked blocks.
(execute_on_shrinking_pred): Likewise.
* tree-ssa.c (ssa_redirect_edge): Do not look for PHI args in
BB_DUPLICATED blocks.
* tree-ssa-phionlycoprop.c (eliminate_degenerate_phis_1): Properly
iterate over all PHIs considering removal of *gsi.

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

8 years agoDaily bump.
gccadmin [Mon, 26 Jun 2017 00:16:27 +0000 (00:16 +0000)] 
Daily bump.

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

8 years agoDaily bump.
gccadmin [Sun, 25 Jun 2017 00:16:23 +0000 (00:16 +0000)] 
Daily bump.

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

8 years ago2017-06-24 Jerry DeLisle <jvdelisle@gcc.gnu.org>
jvdelisle [Sat, 24 Jun 2017 21:22:08 +0000 (21:22 +0000)] 
2017-06-24  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR fortran/81160
* arith.c (wprecision_int_real): Set return value before
mpz_clear and then return after it.

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

8 years ago/cp
paolo [Sat, 24 Jun 2017 19:31:24 +0000 (19:31 +0000)] 
/cp
2017-06-24  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/62315
* parser.c (cp_parser_diagnose_invalid_type_name): Don't print
'typename' in error messages about missing 'typename'.

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

PR c++/62315
* g++.dg/parse/typedef2.C: Specify a dg-error string.

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

8 years ago2017-06-24 Thomas Koenig <tkoenig@gcc.gnu.org>
tkoenig [Sat, 24 Jun 2017 07:07:56 +0000 (07:07 +0000)] 
2017-06-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR fortran/52473
* Makefile.am:  Add i_cshift1a_c.  Add rules to generate files
from cshift1a.m4.
* Makefile.in: Regenerated.
* m4/cshift1a.m4: New file.
* m4/cshift.m4 (cshift1): Split up inner loop by removing
condition. Use memcpy where possible.  Call helper functions
based on dtype.
* libgfortran.h: Add prototypes for cshift1_16_c10,
cshift1_16_c16, cshift1_16_c4, cshift1_16_c8, cshift1_16_i1,
cshift1_16_i16, cshift1_16_i2, cshift1_16_i4, cshift1_16_i8,
cshift1_16_r10, cshift1_16_r16, cshift1_16_r4, cshift1_16_r8,
cshift1_4_c10, cshift1_4_c16, cshift1_4_c4, cshift1_4_c8,
cshift1_4_i1, cshift1_4_i16, cshift1_4_i2, cshift1_4_i4,
cshift1_4_i8, cshift1_4_r10, cshift1_4_r16, cshift1_4_r4,
cshift1_4_r8, cshift1_8_c10, cshift1_8_c16, cshift1_8_c4,
cshift1_8_c8, cshift1_8_i1, cshift1_8_i16, cshift1_8_i2,
cshift1_8_i4, cshift1_8_i8, cshift1_8_r10, cshift1_8_r16,
cshift1_8_r4 and cshift1_8_r8.
* generated/cshift1_16_c10.c: New file, generated from cshift1a.m4.
* generated/cshift1_16_c16.c: New file, generated from cshift1a.m4.
* generated/cshift1_16_c4.c: New file, generated from cshift1a.m4.
* generated/cshift1_16_c8.c: New file, generated from cshift1a.m4.
* generated/cshift1_16_i1.c: New file, generated from cshift1a.m4.
* generated/cshift1_16_i16.c: New file, generated from cshift1a.m4.
* generated/cshift1_16_i2.c: New file, generated from cshift1a.m4.
* generated/cshift1_16_i4.c: New file, generated from cshift1a.m4.
* generated/cshift1_16_i8.c: New file, generated from cshift1a.m4.
* generated/cshift1_16_r10.c: New file, generated from cshift1a.m4.
* generated/cshift1_16_r16.c: New file, generated from cshift1a.m4.
* generated/cshift1_16_r4.c: New file, generated from cshift1a.m4.
* generated/cshift1_16_r8.c: New file, generated from cshift1a.m4.
* generated/cshift1_4_c10.c: New file, generated from cshift1a.m4.
* generated/cshift1_4_c16.c: New file, generated from cshift1a.m4.
* generated/cshift1_4_c4.c: New file, generated from cshift1a.m4.
* generated/cshift1_4_c8.c: New file, generated from cshift1a.m4.
* generated/cshift1_4_i1.c: New file, generated from cshift1a.m4.
* generated/cshift1_4_i16.c: New file, generated from cshift1a.m4.
* generated/cshift1_4_i2.c: New file, generated from cshift1a.m4.
* generated/cshift1_4_i4.c: New file, generated from cshift1a.m4.
* generated/cshift1_4_i8.c: New file, generated from cshift1a.m4.
* generated/cshift1_4_r10.c: New file, generated from cshift1a.m4.
* generated/cshift1_4_r16.c: New file, generated from cshift1a.m4.
* generated/cshift1_4_r4.c: New file, generated from cshift1a.m4.
* generated/cshift1_4_r8.c: New file, generated from cshift1a.m4.
* generated/cshift1_8_c10.c: New file, generated from cshift1a.m4.
* generated/cshift1_8_c16.c: New file, generated from cshift1a.m4.
* generated/cshift1_8_c4.c: New file, generated from cshift1a.m4.
* generated/cshift1_8_c8.c: New file, generated from cshift1a.m4.
* generated/cshift1_8_i1.c: New file, generated from cshift1a.m4.
* generated/cshift1_8_i16.c: New file, generated from cshift1a.m4.
* generated/cshift1_8_i2.c: New file, generated from cshift1a.m4.
* generated/cshift1_8_i4.c: New file, generated from cshift1a.m4.
* generated/cshift1_8_i8.c: New file, generated from cshift1a.m4.
* generated/cshift1_8_r10.c: New file, generated from cshift1a.m4.
* generated/cshift1_8_r16.c: New file, generated from cshift1a.m4.
* generated/cshift1_8_r4.c: New file, generated from cshift1a.m4.
* generated/cshift1_8_r8.c: New file, generated from cshift1a.m4.

2017-06-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR fortran/52473
* gfortran.dg/cshift_2.f90:  New test.

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

8 years agoDaily bump.
gccadmin [Sat, 24 Jun 2017 00:16:20 +0000 (00:16 +0000)] 
Daily bump.

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

8 years ago PR c++/79056 - C++17 ICE with invalid template syntax.
jason [Fri, 23 Jun 2017 23:29:51 +0000 (23:29 +0000)] 
PR c++/79056 - C++17 ICE with invalid template syntax.

* parser.c (cp_parser_simple_type_specifier): Don't assume that type
is a TYPE_DECL.
(cp_parser_check_for_invalid_template_id): Handle TYPE_DECL.
* pt.c (template_placeholder_p): New.
* cp-tree.h: Declare it.

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

8 years agoFix missing Aarch64 falkor/qdf24xx options.
wilson [Fri, 23 Jun 2017 21:40:55 +0000 (21:40 +0000)] 
Fix missing Aarch64 falkor/qdf24xx options.

gcc/
* doc/invoke.texi (AArch64 Options, -mtune): Re-add falkor and
qdf24xx.

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

8 years agoTestcase for FSF GCC bug 79794.
wilson [Fri, 23 Jun 2017 21:01:32 +0000 (21:01 +0000)] 
Testcase for FSF GCC bug 79794.

gcc/testsuite/
PR middle-end/79794
* gcc.target/aarch64/pr79794.c: New.

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

8 years ago runtime: complete defer handling in CgocallBackDone
ian [Fri, 23 Jun 2017 20:19:40 +0000 (20:19 +0000)] 
runtime: complete defer handling in CgocallBackDone

    When C code calls a Go function, it actually calls a function
    generated by cgo. That function is written in Go, and, among other
    things, it calls the real Go function like this:
            CgocallBack()
            defer CgocallBackDone()
            RealGoFunction()
    The deferred CgocallBackDone function enters syscall mode as we return
    to C. Typically the C function will then eventually return to Go.

    However, in the case where the C function is running on a thread
    created in C, it will not return to Go. For that case we will have
    allocated an m struct, with an associated g struct, for the duration
    of the Go code, and when the Go is complete we will return the m and g
    to a free list.

    That all works, but we are running in a deferred function, which means
    that we have been invoked by deferreturn, and deferreturn expects to
    do a bit of cleanup to record that the defer has been completed. Doing
    that cleanup while using an m and g that have already been returned to
    the free list is clearly a bad idea. It was kind of working because
    deferreturn was holding the g pointer in a local variable, but there
    were races with some other thread picking up and using the newly freed g.
    It was also kind of working because of a special check in freedefer;
    that check is no longer necessary.

    This patch changes the special case of releasing the m and g to do the
    defer cleanup in CgocallBackDone itself.

    This patch also checks for the special case of a panic through
    CgocallBackDone. In that special case, we don't want to release the m
    and g. Since we are returning to C code that was not called by Go
    code, we know that the panic is not going to be caught and we are
    going to exit the program. So for that special case we keep the m and
    g structs so that the rest of the panic code can use them.

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

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

8 years ago cmd/go: don't require GOROOT to exist for gccgo
ian [Fri, 23 Jun 2017 20:11:27 +0000 (20:11 +0000)] 
cmd/go: don't require GOROOT to exist for gccgo

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

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

8 years ago2017-06-23 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
acsawdey [Fri, 23 Jun 2017 19:59:42 +0000 (19:59 +0000)] 
2017-06-23  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>

* config/rs6000/rs6000-string.c: (expand_block_clear,
do_load_for_compare, select_block_compare_mode,
compute_current_alignment, expand_block_compare,
expand_strncmp_align_check, expand_strn_compare,
expand_block_move, rs6000_output_load_multiple)
Move functions related to string/block move/compare
to a separate file.
* config/rs6000/rs6000.c: Move above functions to rs6000-string.c.
* config/rs6000/rs6000-protos.h (rs6000_emit_dot_insn): Add prototype
for this function which is now used in two files.
* config/rs6000/t-rs6000: Add rule to compile rs6000-string.o.
* config.gcc: Add rs6000-string.o to extra_objs for
targets powerpc*-*-* and rs6000*-*-*.

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

8 years ago[gcc]
meissner [Fri, 23 Jun 2017 18:25:10 +0000 (18:25 +0000)] 
[gcc]
2017-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/80510
* config/rs6000/rs6000.md (ALTIVEC_DFORM): Do not allow DImode in
32-bit, since indexed is not valid for DImode.
(mov<mode>_hardfloat32): Reorder ISA 2.07 load/stores before ISA
3.0 d-form load/stores to be the same as mov<mode>_hardfloat64.
(define_peephole2 for Altivec d-form load): Add 32-bit support.
(define_peephole2 for Altivec d-form store): Likewise.

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

PR target/80510
* gcc.target/powerpc/pr80510-1.c: Allow test to run on 32-bit.
* gcc.target/powerpc/pr80510-2.c: Likewise.

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

8 years ago2017-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
meissner [Fri, 23 Jun 2017 18:08:31 +0000 (18:08 +0000)] 
2017-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR ipa/81185
* multiple_target.c (create_dispatcher_calls): Only create the
dispatcher call if the function is the default clone of a
versioned function.

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

8 years ago * gcc-interface/trans.c (gnat_to_gnu): Initialize sync to false to
jakub [Fri, 23 Jun 2017 17:46:21 +0000 (17:46 +0000)] 
* gcc-interface/trans.c (gnat_to_gnu): Initialize sync to false to
avoid UB.

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

8 years agoFix expand_builtin_atomic_fetch_op for pre-op (PR80902)
segher [Fri, 23 Jun 2017 17:37:27 +0000 (17:37 +0000)] 
Fix expand_builtin_atomic_fetch_op for pre-op (PR80902)

__atomic_add_fetch adds a value to some memory, and returns the result.
If there is no direct support for this, expand_builtin_atomic_fetch_op
is asked to implement this as __atomic_fetch_add (which returns the
original value of the mem), followed by the addition.  Now, the
__atomic_add_fetch could have been a tail call, but we shouldn't
perform the __atomic_fetch_add as a tail call: following code would
not be executed, and in fact thrown away because there is a barrier
after tail calls.

This fixes it.

PR middle-end/80902
* builtins.c (expand_builtin_atomic_fetch_op): If emitting code after
a call, force the call to not be a tail call.

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

8 years ago * runtime/config/sparc/os-unix-sysdep.c (__cilkrts_getticks): Adjust
ebotcazou [Fri, 23 Jun 2017 17:33:43 +0000 (17:33 +0000)] 
* runtime/config/sparc/os-unix-sysdep.c (__cilkrts_getticks): Adjust
preprocessor test for SPARC/Linux.
* runtime/jmpbuf.h (CILK_[UN]ADJUST_SP): Likewise.

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

8 years ago os: align siginfo argument to waitid
ian [Fri, 23 Jun 2017 17:10:18 +0000 (17:10 +0000)] 
os: align siginfo argument to waitid

    Backport https://golang.org/cl/46511 from gc trunk, as it may fix a
    bug reported for gccgo running on MIPS
    (https://groups.google.com/d/msg/golang-dev/sDg-t1_DPw0/-AJmLxgPBQAJ).

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

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

8 years ago runtime: don't crash if no p in kickoff
ian [Fri, 23 Jun 2017 16:05:44 +0000 (16:05 +0000)] 
runtime: don't crash if no p in kickoff

    The kickoff function for g0 can be invoked without a p, for example
    from mcall(exitsyscall0) in exitsyscall after exitsyscall has cleared
    the p field. The assignment gp.param = nil will invoke a write barrier.
    If gp.param is not already nil, this will require a p. Avoid the problem
    for a specific case that is known to be OK: when the value in gp.param
    is a *g.

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

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

8 years ago compiler: add go:notinheap magic comment
ian [Fri, 23 Jun 2017 16:03:49 +0000 (16:03 +0000)] 
compiler: add go:notinheap magic comment

    Implement go:notinheap as the gc compiler does. A type marked as
    go:notinheap may not live in the heap, and does not require a write
    barrier. Struct and array types that incorporate notinheap types are
    themselves notinheap. Allocating a value of a notinheap type on the
    heap is an error.

    This is not just an optimization. There is code where a write barrier
    may not occur that was getting a write barrier with gccgo but not gc,
    because the types in question were notinheap. The case I found was
    setting the mcache field in exitsyscallfast.

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

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

8 years ago * doc/contrib.texi: Add entry for Steven Pemberton's work on
law [Fri, 23 Jun 2017 15:57:58 +0000 (15:57 +0000)] 
* doc/contrib.texi: Add entry for Steven Pemberton's work on
enquire.

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

8 years ago * gcc.c-torture/compile/stack-check-1.c: Require "untyped_assembly".
law [Fri, 23 Jun 2017 14:57:52 +0000 (14:57 +0000)] 
* gcc.c-torture/compile/stack-check-1.c: Require "untyped_assembly".

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

8 years ago[gcc]
willschm [Fri, 23 Jun 2017 14:40:26 +0000 (14:40 +0000)] 
[gcc]

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

* config/rs6000/rs6000.c: Add include of ssa-propagate.h for
update_call_from_tree().  (rs6000_gimple_fold_builtin): Add
handling for early expansion of vector shifts (sl,sr,sra,rl).
(builtin_function_type): Add vector shift right instructions
to the unsigned argument list.

[gcc/testsuite]

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

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

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

8 years ago runtime: improve handling of panic during deferred function
ian [Fri, 23 Jun 2017 13:45:36 +0000 (13:45 +0000)] 
runtime: improve handling of panic during deferred function

    When a panic occurs while processing a deferred function that
    recovered an earlier panic, we shouldn't report the recovered panic
    in the panic stack trace. Stop doing so by keeping track of the panic
    that triggered a defer, marking it as aborted if we see the defer again,
    and discarding aborted panics when a panic is recovered. This is what
    the gc runtime does.

    The test for this is TestRecursivePanic in runtime/crash_test.go.
    We don't run that test yet, but we will soon.

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

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

8 years ago * go.test/go-test.exp (go-set-goarch): Update MIPS architecture
ian [Fri, 23 Jun 2017 13:19:30 +0000 (13:19 +0000)] 
* go.test/go-test.exp (go-set-goarch): Update MIPS architecture
        names.

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

8 years ago2017-06-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
edlinger [Fri, 23 Jun 2017 12:44:07 +0000 (12:44 +0000)] 
2017-06-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        rtl-optimizatoin/79286
        * ira.c (update_equiv_regs): Revert to using may_trap_or_fault_p again.
        * rtlanal.c (rtx_addr_can_trap_p_1): SYMBOL_REF_FUNCTION_P can never
        trap.  PIC register plus a const unspec without offset can never trap.

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

8 years agoRefactor fileptr_type_node handling
glisse [Fri, 23 Jun 2017 09:05:47 +0000 (09:05 +0000)] 
Refactor fileptr_type_node handling

2017-06-23  Marc Glisse  <marc.glisse@inria.fr>

gcc/
* tree.h (builtin_structptr_type): New type.
(builtin_structptr_types): Declare new array.
* tree.c (builtin_structptr_types): New array.
(free_lang_data, build_common_tree_nodes): Use it.

gcc/c-family/
* c-common.c (c_common_nodes_and_builtins): Use builtin_structptr_types.

gcc/cp/
* decl.c (duplicate_decls): Use builtin_structptr_types.

gcc/lto/
* lto-lang.c (lto_init): Use builtin_structptr_types.

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

8 years agoPR c++/81187 fix -Wnoexcept-type entry in manual
redi [Fri, 23 Jun 2017 08:16:05 +0000 (08:16 +0000)] 
PR c++/81187 fix -Wnoexcept-type entry in manual

PR c++/81187
* doc/invoke.texi (-Wnoexcept-type): Fix name of option, from
-Wnoexcept.

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

8 years agoDaily bump.
gccadmin [Fri, 23 Jun 2017 00:16:22 +0000 (00:16 +0000)] 
Daily bump.

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

8 years ago runtime: uncomment check for gchelper on g0 stack
ian [Thu, 22 Jun 2017 22:12:50 +0000 (22:12 +0000)] 
runtime: uncomment check for gchelper on g0 stack

    Now that systemstack changes to the g0 stack, this check passes.

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

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

8 years ago runtime: mark dropm and callees nowritebarrierrec
ian [Thu, 22 Jun 2017 22:11:01 +0000 (22:11 +0000)] 
runtime: mark dropm and callees nowritebarrierrec

    The CgocallbackDone function calls dropm after it calls entersyscall,
    which means that dropm must not have any write barriers. Mark it
    accordingly.

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

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

8 years ago runtime: export getm function
ian [Thu, 22 Jun 2017 22:08:50 +0000 (22:08 +0000)] 
runtime: export getm function

    Use go:linkname to export the getm function. This makes it visible to
    runtime/testdata/testprogcgo/dropm_stub.go, which uses it as part of
    the TestEnsureDropM test in runtime/crash_cgo_test.go. That test is
    not run today, but it will be soon.

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

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

8 years ago runtime: fix type cast in assignment to gcnextsp in C code
ian [Thu, 22 Jun 2017 19:52:11 +0000 (19:52 +0000)] 
runtime: fix type cast in assignment to gcnextsp in C code

    Patch from Rainer Orth.

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

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

8 years agogcc/
uros [Thu, 22 Jun 2017 19:46:10 +0000 (19:46 +0000)] 
gcc/

2017-06-22  Matt Turner  <mattst88@gmail.com>

* config/i386/driver-i386.c (host_detect_local_cpu): Add Kaby
Lake models to skylake case.  Assume skylake for unknown
models with clflushopt.

gcc/testsuite/

2017-06-22  Matt Turner  <mattst88@gmail.com>

* gcc.target/i386/builtin_target.c: Add Kaby Lake models to
skylake check.

libgcc/

2017-06-22  Matt Turner  <mattst88@gmail.com>

* config/i386/cpuinfo.c (get_intel_cpu): Add Kaby Lake models to
skylake case.

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

8 years agogcc/testsuite/ChangeLog:
carll [Thu, 22 Jun 2017 18:45:35 +0000 (18:45 +0000)] 
gcc/testsuite/ChangeLog:

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

* gcc.target/powerpc/builtins-3.c (vmulosh, vmulouh, vmulesh,
vmuleuh): Fix scan-assembler-times should check for word not half word
instructions.

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

8 years ago Reorder IDENTIFIER flags
nathan [Thu, 22 Jun 2017 18:40:56 +0000 (18:40 +0000)] 
Reorder IDENTIFIER flags
gcc/cp/
* cp-tree.h (enum cp_identifier_kind): New.
(IDENTIFIER_KIND_BIT_0, IDENTIFIER_KIND_BIT_1,
IDENTIFIER_KIND_BIT_2): New.
(IDENTIFIER_MARKED): Move to TREE_LANG_FLAG_4.
(IDENTIFIER_VIRTUAL_P, IDENTIFIER_REPO_CHOSEN): Add
IDENTIFIER_CHECK.
(C_IS_RESERVED_WORD): Replace with ...
(IDENTIFIER_KEYWORD_P): ... this.
(IDENTIFIER_CTOR_OR_DTOR_P): Replace with ...
(IDENTIFIER_CDTOR_P): ... this.
(IDENTIFIER_CTOR_P, IDENTIFIER_DTOR_P): New.
(IDENTIFIER_OPNAME_P): Replace with ...
(IDENTIFIER_ANY_OP_P): ... this.
(IDENTIFIER_ASSIGN_OP_P): New.
(IDENTIFIER_TYPENAME_P): Replace with ...
(IDENTIFIER_CONV_OP_P): ... this.
(NEW_DELETE_OPNAME_P): Replace with ...
(IDENTIFIER_NEWDEL_OP_P): ... this.
(DECL_CONV_FN_P, DECL_OVERLOADED_OPERATOR_P): Adjust.
(get_identifier_kind_name, set_identifier_kind): Declare.
* lex.c (get_identifier_kind_name, set_identifier_kind): New.
(init_operators): Adjust to avoid keywords, use
set_identifier_kind. Copy TYPE_EXPR slot.
(init_reswords): Call set_identifier_kind.
(unqualified_name_lookup_error): Adjust.
* operators.def (TYPE_EXPR): Remove.
* decl.c (struct predefined_identifier): Move into ...
(initialize_predefined_identifiers): ... here.  Call
set_identifier_kind.
(grokfndecl, check_var_type, grokdeclarator): Adjust.
(grok_op_properties): Use IDENTIFIER_ANY_ASSIGN_OP to halve search
space.  Adjust.
* call.c (name_as_c_string): Adjust.
(build_new_method_call_1): Likewise.
* cp-cilkplus.c (is_conversion_operator_function_decl_p):
Likewise.
* cxx-pretty-print.c (pp_cxx_unqualified_id): Adjust.
* dump.c (cp_dump_tree): Adjust.
* error.c (dump_decl_name): Adjust.
* mangle.c (write_unqualified_id, write_member_name)
write_expression): Adjust.
(mangle_conv_op_name_for_type): Use set_identifier_kind.
* name-lookup.c (do_class_using_decl): Adjust.
(lookup_name_fuzzy, lookup_name_real_1): Likewise.
* parser.c (cp_lexer_get_preprocessor_token)
cp_parser_direct_declarator): Likewise.
* pt.c (push_template_decl_real, tsubst_decl, tsubst_baselink)
tsubst_copy, tsubst_copy_and_build): Adjust.
* ptree.c (cxx_print_identifier): Print identifier kind.
* search.c (lookup_field_r, lookup_member)
lookup_fnfields_idx_nolazy): Adjust.
* semantics.c (finish_id_expression): Adjust..
* typeck.c (cp_build_addr_expr_1): Adjust.

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

8 years ago * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Handle
law [Thu, 22 Jun 2017 17:18:05 +0000 (17:18 +0000)] 
* config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Handle
frame sizes that do not satisfy aarch64_uimm12_shift.

* gcc.c-torture/compile/stack-check-1.c: New test.

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

8 years ago runtime: make NumGoroutine wait for system goroutines to register
ian [Thu, 22 Jun 2017 15:46:47 +0000 (15:46 +0000)] 
runtime: make NumGoroutine wait for system goroutines to register

    In libgo system goroutines register themselves after they start.
    That means that there is a small race between the goroutine being
    seen by the scheduler and the scheduler knowing that the goroutine
    is a system goroutine. That in turn means that runtime.NumGoroutines
    can overestimate the number of goroutines at times.

    This patch fixes the overestimate by counting the number of system
    goroutines waiting to start, and pausing NumGoroutines until those
    goroutines have all registered.

    This is kind of a lot of mechanism for this not very important
    problem, but I couldn't think of a better approach.

    The test for this is TestNumGoroutine in runtime/proc_test.go.
    The test is not currently run, but it will be soon.

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

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

8 years ago compiler: fix stale comment in lexer
ian [Thu, 22 Jun 2017 15:42:50 +0000 (15:42 +0000)] 
compiler: fix stale comment in lexer

    Remove stale comment in code that accepts "go:nowritebarrier"
    pragma. Update comment for "go:nowritebarrierrec".

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

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

8 years ago * profile-count.h (apply_probability,
hubicka [Thu, 22 Jun 2017 14:50:23 +0000 (14:50 +0000)] 
* profile-count.h (apply_probability,
apply_scale, probability_in): Fix checks for zero.

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

8 years ago runtime: don't assume that _ = *s will panic if s is nil
ian [Thu, 22 Jun 2017 14:46:12 +0000 (14:46 +0000)] 
runtime: don't assume that _ = *s will panic if s is nil

    With the gc toolchain apparently
            var s *string
            _ = *s
    is enough to panic with a nil pointer dereference. The gccgo compiler
    will simply discard the dereference, which I think is a reasonable and
    acceptable optimization. Change the tests to use an exported variable
    instead. The tests are not currently run, but they will be with a
    later patch to gotools.

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

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

8 years ago runtime: change some stack fields to uintptr
ian [Thu, 22 Jun 2017 14:44:30 +0000 (14:44 +0000)] 
runtime: change some stack fields to uintptr

    Because of how gccgo implements cgo calls, the code in dropm may not
    have any write barriers.  As a step toward implementing that, change
    the gcstack, gcnextsegment, and gcnextsp fields of the g struct to
    uintptr, so that assignments to them do not require write barriers.
    The gcinitialsp field remains unsafe.Pointer, as on 32-bit systems
    that do not support split stack it points to a heap allocated space
    used for the goroutine stack.

    The test for this is runtime tests like TestCgoCallbackGC, which are
    not run today but will be run with a future gotools patch.

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

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

8 years agoSupport $SYSROOT for = in -I etc.
ro [Thu, 22 Jun 2017 14:37:17 +0000 (14:37 +0000)] 
Support $SYSROOT for = in -I etc.

* incpath.c (add_sysroot_to_chain): Allow for $SYSROOT prefix.
* doc/cppdiropts.texi (-I @var{dir}): Document it.

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

8 years ago runtime: avoid write barriers when calling deferred function
ian [Thu, 22 Jun 2017 14:33:13 +0000 (14:33 +0000)] 
runtime: avoid write barriers when calling deferred function

    Calling a deferred function currently requires changing from a uintptr
    to the function code to a Go function value. That is done by setting
    the value of a func local variable using unsafe.Pointer. The local
    variable will always be on the stack. Adjust the code that sets the
    local variable to avoid generating a write barrier.

    A write barrier is never needed here. Also, for deferreturn, we must
    avoid write barriers entirely when called from a cgo function; that
    requires more than just this, but this is a start.

    The test for this is runtime tests that use the go tool; these are not
    currently run, but they will be in the future.

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

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

8 years ago runtime: rename _defer struct _panic field to panicStack
ian [Thu, 22 Jun 2017 14:31:16 +0000 (14:31 +0000)] 
runtime: rename _defer struct _panic field to panicStack

    The gc version of the _defer struct has a _panic field that has a
    completely different meaning. We are going to want that bring that new
    meaning into the gofrontend to improve panic reports with nested
    panic calls. Simplify that by first renaming the existing _panic field.

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

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

8 years ago runtime: adjust tests for gofrontend
ian [Thu, 22 Jun 2017 14:28:57 +0000 (14:28 +0000)] 
runtime: adjust tests for gofrontend

    - don't run tests that depend on SetCgoTraceback
    - don't expect a '(' after the function name in a traceback
    - change the expected name of nested functions in a traceback

    These tests are not currently run, but they will be soon.

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

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

8 years ago runtime: don't build test files that use SetCgoTraceback for gccgo
ian [Thu, 22 Jun 2017 14:27:09 +0000 (14:27 +0000)] 
runtime: don't build test files that use SetCgoTraceback for gccgo

    The gofrontend doesn't support the runtime.SetCgoTraceback function,
    which is specifically for handling mixed Go and C tracebacks.
    Use a build tag to avoid compiling the runtime/testdata/testprogcgo
    files that refer to SetCgoTraceback. These files are not currently
    compiled anyhow, but they will be with a future gotools patch.

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

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

8 years ago runtime: build testprogcgo with -pthread
ian [Thu, 22 Jun 2017 14:23:54 +0000 (14:23 +0000)] 
runtime: build testprogcgo with -pthread

    Building this test with gccgo requires an explicit -pthread option to
    be passed to the C compiler, so that it links against -lpthread.
    This test is not built today, but it will be soon with a future patch.

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

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

8 years agoPR libstdc++/81173 fix undefined memset with null pointer
redi [Thu, 22 Jun 2017 14:16:38 +0000 (14:16 +0000)] 
PR libstdc++/81173 fix undefined memset with null pointer

PR libstdc++/81173
* include/bits/stl_bvector.h (vector<bool>::_M_initialize_value):
Do not pass null pointer to memset.

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

8 years ago2016-06-22 Richard Biener <rguenther@suse.de>
rguenth [Thu, 22 Jun 2017 12:07:07 +0000 (12:07 +0000)] 
2016-06-22  Richard Biener  <rguenther@suse.de>

* tree-vect-loop.c (vect_model_reduction_cost): Handle
COND_REDUCTION and INTEGER_INDUC_COND_REDUCTION without
REDUC_MAX_EXPR support.
(vectorizable_reduction): Likewise.
(vect_create_epilog_for_reduction): Likewise.

* gcc.dg/vect/pr65947-1.c: Remove xfail.
* gcc.dg/vect/pr65947-2.c: Likewise.
* gcc.dg/vect/pr65947-3.c: Likewise.
* gcc.dg/vect/pr65947-4.c: Likewise.
* gcc.dg/vect/pr65947-5.c: Likewise.
* gcc.dg/vect/pr65947-6.c: Likewise.
* gcc.dg/vect/pr65947-8.c: Likewise.
* gcc.dg/vect/pr65947-9.c: Likewise.
* gcc.dg/vect/pr65947-10.c: Likewise.
* gcc.dg/vect/pr65947-12.c: Likewise.
* gcc.dg/vect/pr65947-13.c: Likewise.
* gcc.dg/vect/pr65947-14.c: Likewise.
* gcc.dg/vect/vect-cond-2.c: Likewise.
* gcc.dg/vect/vect-pr69848.c: Likewise.

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

8 years agoFix ipa-split-5.c test-case.
marxin [Thu, 22 Jun 2017 10:54:40 +0000 (10:54 +0000)] 
Fix ipa-split-5.c test-case.

2017-06-22  Martin Liska  <mliska@suse.cz>

* gcc.dg/tree-ssa/ipa-split-5.c: Make function bigger in order
to not inline it.

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

8 years ago[Patch match.pd] Fold (A / (1 << B)) to (A >> B)
jgreenhalgh [Thu, 22 Jun 2017 08:39:04 +0000 (08:39 +0000)] 
[Patch match.pd] Fold (A / (1 << B)) to (A >> B)

For the testcase in the patch:

  unsigned long
  f2 (unsigned long a, int b)
  {
    unsigned long x = 1UL << b;
    return a / x;
  }

We currently generate an unsigned division and a left shift, where
we could instead generate a right shift.

gcc/

2017-06-21  James Greenhalgh  <james.greenhalgh@arm.com>

* match.pd (A / (1 << B) -> A >> B): New.
* generic-match-head.c: Include optabs-tree.h.
* gimple-match-head.c: Likewise.
* optabs-tree.h (target_supports_op_p): New.
* optabs-tree.c (target_supports_op_p): New.

gcc/testsuite/

2017-06-21  James Greenhalgh  <james.greenhalgh@arm.com>

* gcc.dg/tree-ssa/forwprop-37.c: New.

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

8 years ago2017-06-22 Richard Biener <rguenther@suse.de>
rguenth [Thu, 22 Jun 2017 08:33:28 +0000 (08:33 +0000)] 
2017-06-22  Richard Biener  <rguenther@suse.de>

* gcc.dg/vect/pr65947-14.c: Fix missing brace.

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

8 years ago2017-06-22 Richard Biener <rguenther@suse.de>
rguenth [Thu, 22 Jun 2017 08:14:21 +0000 (08:14 +0000)] 
2017-06-22  Richard Biener  <rguenther@suse.de>

* gcc.dg/vect/pr65947-14.c: New testcase.

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

8 years agoSupport --sysroot with Solaris ld
ro [Thu, 22 Jun 2017 06:54:04 +0000 (06:54 +0000)] 
Support --sysroot with Solaris ld

* configure.ac (gcc_cv_ld_static_dynamic): Also check stderr for
$gcc_cv_ld --help output.
(gcc_cv_ld_demangle): Likewise.
(gcc_cv_ld_eh_frame_hdr): Likewise.
(gcc_cv_ld_pie): Likewise.
(gcc_cv_ld_as_needed): Likewise.  Prefer native forms unless $gnu_ld.
(gcc_cv_ld_buildid): Likewise.
(gcc_cv_ld_sysroot): Likewise.
(ld_bndplt_support): Likewise.
(ld_pushpopstate_support): Likewise.
* configure: Regenerate.
* config/sol2.h [!USE_GLD] (SYSROOT_SPEC): Define.

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

8 years ago runtime: in traceback, print panic rather than runtime.gopanic
ian [Thu, 22 Jun 2017 04:16:23 +0000 (04:16 +0000)] 
runtime: in traceback, print panic rather than runtime.gopanic

    The gc toolchain does the same thing, in gentraceback in
    runtime/traceback.go.

    The test for this is TestPanicTraceback in runtime/crash_test.go.  We
    don't yet run that test, but we will in a future change.

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

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

8 years ago compiler, runtime: better stack trace for `go f()` where f is nil
ian [Thu, 22 Jun 2017 04:13:36 +0000 (04:13 +0000)] 
compiler, runtime: better stack trace for `go f()` where f is nil

    The test for this is TestGoNil in the runtime package, which we don't
    run yet but will run with a subsequent gotools patch.

    Updates golang/go#8045

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

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

8 years agoDaily bump.
gccadmin [Thu, 22 Jun 2017 00:16:21 +0000 (00:16 +0000)] 
Daily bump.

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

8 years ago debug/elf: handle Alpha relocs
ian [Wed, 21 Jun 2017 22:39:36 +0000 (22:39 +0000)] 
debug/elf: handle Alpha relocs

    Patch by Uros Bizjak.

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

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

8 years ago compiler: fix missing case in Array_type::get_value_pointer
ian [Wed, 21 Jun 2017 22:29:58 +0000 (22:29 +0000)] 
compiler: fix missing case in Array_type::get_value_pointer

    Update the code in Array_type::get_value_pointer that handles
    "lvalue" context to look for both regular var expressions
    and temp var expressions, since both can appear in array/slice
    index expressions on the left hand side of assignments.

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

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

8 years agoForgot to remove this file in the last libgo commit.
ian [Wed, 21 Jun 2017 22:29:36 +0000 (22:29 +0000)] 
Forgot to remove this file in the last libgo commit.

libgo: remove old MIPS architecture names

    This removes the old names for the 3 main MIPS ABIs: mipso32, mipsn32
    and mipsn64. It also removes the mipso64 ABI which has no equivalent
    architecture name in go. This ABI has been dead for sometime and I doubt
    anyone will miss it.

    Change-Id: I087b243784edf6705fdaf9c32e3233da5e387283

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

8 years ago libgo: remove old MIPS architecture names
ian [Wed, 21 Jun 2017 22:11:04 +0000 (22:11 +0000)] 
libgo: remove old MIPS architecture names

    This removes the old names for the 3 main MIPS ABIs: mipso32, mipsn32
    and mipsn64. It also removes the mipso64 ABI which has no equivalent
    architecture name in go. This ABI has been dead for sometime and I doubt
    anyone will miss it.

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

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

8 years ago libgo: use gc's arch names as the default GOARCHs on MIPS
ian [Wed, 21 Jun 2017 21:55:34 +0000 (21:55 +0000)] 
libgo: use gc's arch names as the default GOARCHs on MIPS

    This means that the gc tools and gofrontend agree on the architecture names
    for the 3 MIPS ABIs which should allow a gofrontend compiler to build go.

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

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

8 years ago cmd/cgo: add mips64p32* to ptrSizeMap and intSizeMap
ian [Wed, 21 Jun 2017 21:50:52 +0000 (21:50 +0000)] 
cmd/cgo: add mips64p32* to ptrSizeMap and intSizeMap

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

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

8 years ago internal/syscall/unix: implement randomTrap on mips64p32*
ian [Wed, 21 Jun 2017 21:47:35 +0000 (21:47 +0000)] 
internal/syscall/unix: implement randomTrap on mips64p32*

    Rename getrandom_linux_mipsn32.go to use the new architecture name for
    the n32 ABI and enable building it on mips64p32 and mips64p32le.

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

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

8 years ago libgo, syscall: fix ptrace implementation on MIPS
ian [Wed, 21 Jun 2017 21:46:03 +0000 (21:46 +0000)] 
libgo, syscall: fix ptrace implementation on MIPS

    On MIPS, the correct structure for PtraceRegs is 'struct pt_regs' which
    is declared in linux/ptrace.h. Previously no PtraceRegs structure was
    created on MIPS because 'struct user_regs_struct' doesn't exist there.

    Fallback to using pt_regs when the PtraceRegs structure is generated in
    mksysinfo.sh, then adjust syscall_linux_mipsx.go to read the program
    counter from the correct field.

    In addition, implement PtraceGetRegs and PtraceSetRegs on all 3 ABI
    variants.

    syscall_linux_mips64x.go can now be removed since the ptrace code on
    all 3 ABIs is identical.

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

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

8 years ago libgo, syscall: fix ptrace implementation on MIPS
ian [Wed, 21 Jun 2017 21:42:41 +0000 (21:42 +0000)] 
libgo, syscall: fix ptrace implementation on MIPS

    On MIPS, the correct structure for PtraceRegs is 'struct pt_regs' which
    is declared in linux/ptrace.h. Previously no PtraceRegs structure was
    created on MIPS because 'struct user_regs_struct' doesn't exist there.

    Fallback to using pt_regs when the PtraceRegs structure is generated in
    mksysinfo.sh, then adjust syscall_linux_mipsx.go to read the program
    counter from the correct field.

    In addition, implement PtraceGetRegs and PtraceSetRegs on all 3 ABI
    variants.

    syscall_linux_mips64x.go can now be removed since the ptrace code on
    all 3 ABIs is identical.

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

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

8 years ago2017-06-21 Michael Meissner <meissner@linux.vnet.ibm.com>
meissner [Wed, 21 Jun 2017 21:08:40 +0000 (21:08 +0000)] 
2017-06-21  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/80510
* gcc.target/powerpc/pr80510-1.c: Restrict test to 64-bit until
32-bit support is added.  Change ITYPE size to 64-bit integer.
* gcc.target/powerpc/pr80510-2.c: Likewise.

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

8 years ago PR target/81151
jakub [Wed, 21 Jun 2017 20:02:00 +0000 (20:02 +0000)] 
PR target/81151
* config/i386/sse.md (round<mode>2): Renumber match_dup and
operands indexes to avoid gap between operands and match_dups.

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

8 years agoPR libstdc++/80675, PR libstdc++/80940
ville [Wed, 21 Jun 2017 19:53:26 +0000 (19:53 +0000)] 
PR libstdc++/80675, PR libstdc++/80940

* include/std/istream:
(__is_convertible_to_basic_istream_test(basic_istream<_Ch, _Up>*)): New.
(__do_is_convertible_to_basic_istream_impl): Likewise.
(__is_convertible_to_basic_istream_impl): Likewise.
(__is_convertible_to_basic_istream): Use the new base.
(__rvalue_istream_type): New.
(operator>>(_Istream&&, _Tp&&)): Use the new helper alias
for the SFINAE check, convert to the helper alias type before
doing the actual extraction.
* include/std/ostream:
(__is_convertible_to_basic_ostream_test(basic_ostream<_Ch, _Up>*)): New.
(__do_is_convertible_to_basic_ostream_impl): Likewise.
(__is_convertible_to_basic_ostream_impl): Likewise.
(__is_convertible_to_basic_ostream): Use the new base.
(__rvalue_ostream_type): New.
(operator<<(_Ostream&&, const _Tp&)): Use the new helper alias
for the SFINAE check, convert to the helper alias type before
doing the actual insertion.
* testsuite/27_io/rvalue_streams-2.cc: Add new tests.

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

8 years ago PR c++/81154
jakub [Wed, 21 Jun 2017 18:30:32 +0000 (18:30 +0000)] 
PR c++/81154
* semantics.c (handle_omp_array_sections_1, finish_omp_clauses):
Complain about t not being a variable if t is OVERLOAD even
when processing_template_decl.

* g++.dg/gomp/pr81154.C: New test.

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

8 years agoFix variant selection in dg-cmp-results.sh
thopre01 [Wed, 21 Jun 2017 16:20:57 +0000 (16:20 +0000)] 
Fix variant selection in dg-cmp-results.sh

2017-06-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    contrib/
    * dg-cmp-results.sh: Restore filtering on target variant.

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

8 years ago * MAINTAINERS: Add myself as maintainer for PowerPC SPE port.
andrewjenner [Wed, 21 Jun 2017 16:17:24 +0000 (16:17 +0000)] 
   * MAINTAINERS: Add myself as maintainer for PowerPC SPE port.

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

8 years agoC++: Add fix-it hints for -Wold-style-cast
dmalcolm [Wed, 21 Jun 2017 16:11:36 +0000 (16:11 +0000)] 
C++: Add fix-it hints for -Wold-style-cast

gcc/cp/ChangeLog:
* parser.c (get_cast_suggestion): New function.
(maybe_add_cast_fixit): New function.
(cp_parser_cast_expression): Capture the location of the closing
parenthesis.  Call maybe_add_cast_fixit when emitting warnings
about old-style casts.

gcc/testsuite/ChangeLog:
* g++.dg/other/old-style-cast-fixits.C: New test case.

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

8 years ago2017-06-21 Andrew Pinski <apinski@cavium.com>
pinskia [Wed, 21 Jun 2017 15:58:12 +0000 (15:58 +0000)] 
2017-06-21  Andrew Pinski  <apinski@cavium.com>

        * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
        Increment Arith_shift and Arith_shift_reg by 1.
        * config/aarch64/aarch64-tuning-flags.def (cheap_shift_extend):
        New tuning flag.
        * config/aarch64/aarch64.c (thunderx_tunings): Enable
        AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
        (aarch64_strip_extend): Add new argument and test for it.
        (aarch64_cheap_mult_shift_p): New function.
        (aarch64_rtx_mult_cost): Call aarch64_cheap_mult_shift_p and don't
        add a cost if it is true.
        Update calls to aarch64_strip_extend.
        (aarch64_rtx_costs): Update calls to aarch64_strip_extend.

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

8 years ago2017-06-21 Andrew Pinski <apinski@cavium.com>
pinskia [Wed, 21 Jun 2017 15:35:14 +0000 (15:35 +0000)] 
2017-06-21  Andrew Pinski  <apinski@cavium.com>

        * config/aarch64/aarch64-cores.def (thunderxt88p1): Use thunderxt88
        tunings.
        (thunderxt88): Likewise.
        * config/aarch64/aarch64.c (thunderxt88_prefetch_tune): New variable.
        (thunderx_prefetch_tune): New variable.
        (thunderx2t99_prefetch_tune): Update for the correct values.
        (thunderxt88_tunings): New variable.
        (thunderx_tunings): Use thunderx_prefetch_tune instead of
        generic_prefetch_tune.
        (thunderx2t99_tunings): Use AUTOPREFETCHER_WEAK.

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

8 years ago[AArch64] Fix atomic_cmp_exchange_zero_reg_1.c with +lse
ktkachov [Wed, 21 Jun 2017 15:26:21 +0000 (15:26 +0000)] 
[AArch64] Fix atomic_cmp_exchange_zero_reg_1.c with +lse

* config/aarch64/atomics.md (aarch64_compare_and_swap<mode>_lse,
SHORT): Relax operand 3 to aarch64_reg_or_zero and constraint to Z.
(aarch64_compare_and_swap<mode>_lse, GPI): Likewise.
(aarch64_atomic_cas<mode>, SHORT): Likewise for operand 2.
(aarch64_atomic_cas<mode>, GPI): Likewise.

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

8 years ago * g++.dg/cpp0x/constexpr-cast.C: Adjust dg-error for ILP32.
jakub [Wed, 21 Jun 2017 14:55:40 +0000 (14:55 +0000)] 
* g++.dg/cpp0x/constexpr-cast.C: Adjust dg-error for ILP32.

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

8 years agoUpdate baseline symbols for aarch64-none-linux-gnu
ramana [Wed, 21 Jun 2017 14:38:56 +0000 (14:38 +0000)] 
Update baseline symbols for aarch64-none-linux-gnu

       * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Regenerate

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

8 years agoSupport dg-add-options in profopt.exp
vries [Wed, 21 Jun 2017 14:14:31 +0000 (14:14 +0000)] 
Support dg-add-options in profopt.exp

2017-06-21  Tom de Vries  <tom@codesourcery.com>

* lib/profopt.exp (profopt-get-options): Support dg-add-options.

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

8 years agoFix warning in gcc.dg/tree-prof/comp-goto-1.c
vries [Wed, 21 Jun 2017 14:14:16 +0000 (14:14 +0000)] 
Fix warning in gcc.dg/tree-prof/comp-goto-1.c

2017-06-21  Tom de Vries  <tom@codesourcery.com>

* gcc.dg/tree-prof/comp-goto-1.c: Fix 'return type defaults to int'
warning.

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

8 years agoRework cold and hot label attributes in predict.c.
marxin [Wed, 21 Jun 2017 12:52:14 +0000 (12:52 +0000)] 
Rework cold and hot label attributes in predict.c.

2017-06-21  Martin Liska  <mliska@suse.cz>

* gimplify.c (gimplify_label_expr): Insert GIMPLE_PREDICT
statements on cold and hot labels.
* predict.c (tree_estimate_probability_bb): Remove the
prediction from this place.
2017-06-21  Martin Liska  <mliska@suse.cz>

* gcc.dg/tree-ssa/attr-hotcold-2.c: Update scanned patterns.

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

8 years agoMake early return predictor more precise.
marxin [Wed, 21 Jun 2017 12:51:46 +0000 (12:51 +0000)] 
Make early return predictor more precise.

2017-06-21  Martin Liska  <mliska@suse.cz>

PR tree-optimization/79489
* gimplify.c (maybe_add_early_return_predict_stmt): New
function.
(gimplify_return_expr): Call the function.
* predict.c (tree_estimate_probability_bb): Remove handling
of early return.
* predict.def: Update comment about early return predictor.
* gimple-predict.h (is_gimple_predict): New function.
* predict.def: Change default value of early return to 66.
* tree-tailcall.c (find_tail_calls): Skip GIMPLE_PREDICT
statements.
* passes.def: Put pass_strip_predict_hints to the beginning of
IPA passes.

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

8 years agoDWARF: make it possible to emit debug info for declarations only
pmderodat [Wed, 21 Jun 2017 11:24:51 +0000 (11:24 +0000)] 
DWARF: make it possible to emit debug info for declarations only

The DWARF back-end used to systematically ignore file-scope function and
variable declarations.  While this is justified in language like C/C++,
where such declarations can appear in several translation units and thus
bloat uselessly the debug info, this behavior is counter-productive in
languages with a well-defined module system.  Specifically, it prevents
the description of imported entities, that belong to foreign languages,
making them unavailable from debuggers.

Take for instance:

    package C_Binding is
        function My_C_Function (I : Integer) return Integer;
        pragma Import (C, My_C_Function, "my_c_function");
    end C_Binding;

This makes available for Ada programs the C function "my_c_function"
under the following name: C_Binding.My_C_Function.  When GCC compiles
it, though, it is represented as a FUNCTION_DECL node with DECL_EXTERNAL
set and a null DECL_INITIAL, which used to be discarded unconditionally
in the DWARF back-end.

This patch moves such filter from the DWARF back-end to the relevant
callers: passes.c:rest_of_decl_compilation and
godump.c:go_early_global_decl. It also This patch also updates the Ada
front-end to call debug hooks for functions such as in the above
example, so that we do generate debugging information for them.

gcc/
* dwarf2out.c (gen_decl_die): Remove the guard to skip file-scope
FUNCTION_DECL declarations.
(dwarf2out_early_global_decl): Remove the guard to skip FUNCTION_DECL
declarations.
(dwaf2out_decl): Likewise.
* godump.c (go_early_global_decl): Skip call to the real debug hook
for FUNCTION_DECL declarations.
* passes.c (rest_of_decl_compilation): Skip call to the
early_global_decl debug hook for FUNCTION_DECL declarations, unless
-fdump-go-spec is passed.

gcc/ada/
* gcc-interface/ada-tree.h (DECL_FUNCTION_IS_DEF): Update copyright
notice.  New macro.
* gcc-interface/trans.c (Subprogram_Body_to_gnu): Tag the subprogram
as a definition.
(Compilation_Unit_to_gnu): Tag the elaboration procedure as a
definition.
* gcc-interface/decl.c (gnat_to_gnu_entity): Tag declarations of
imported subprograms for the current compilation unit as
definitions.  Disable debug info for references to variables.
* gcc-interface/gigi.h (create_subprog_decl): Update declaration.
* gcc-interface/utils.c (gnat_pushdecl): Add external DECLs that are
not built-in functions to their binding scope.
(create_subprog_decl): Add a DEFINITION parameter.  If it is true, tag
the function as a definition.  Update all callers.
(gnat_write_global_declarations): Emit debug info for imported
functions.  Filter out external variables for which debug info
is disabled.

gcc/testsuite/
* gnat.dg/debug11_pkg.adb, gnat.dg/debug11_pkg.ads,
gnat.dg/debug11_pkg2.ads: New testcase.

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

8 years ago[i386] __builtin_ia32_stmxcsr could be pure
glisse [Wed, 21 Jun 2017 11:20:41 +0000 (11:20 +0000)] 
[i386] __builtin_ia32_stmxcsr could be pure

2017-06-21  Marc Glisse  <marc.glisse@inria.fr>

gcc/
* config/i386/i386.c (struct builtin_isa): New field pure_p.
Reorder for compactness.
(def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p.
(def_builtin_pure, def_builtin_pure2): New functions.
(ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure.

gcc/testsuite/
* gcc.target/i386/getround.c: New file.

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

8 years agoNOP conversions in X+CST+CST
glisse [Wed, 21 Jun 2017 11:16:27 +0000 (11:16 +0000)] 
NOP conversions in X+CST+CST

2017-06-21  Marc Glisse  <marc.glisse@inria.fr>

gcc/
* match.pd (nop_convert): New predicate.
((A +- CST1) +- CST2): Allow some NOP conversions.

gcc/testsuite/
* gcc.dg/tree-ssa/addadd.c: Un-XFAIL.
* gcc.dg/tree-ssa/addadd-2.c: New file.

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

8 years ago * line-map.c (location_adhoc_data_update): Perform addition in
jakub [Wed, 21 Jun 2017 10:59:12 +0000 (10:59 +0000)] 
* line-map.c (location_adhoc_data_update): Perform addition in
uintptr_t type rather than char * type.  Read *data using
ptrdiff_t type instead of int64_t.
(get_combined_adhoc_loc): Change offset type to ptrdiff_t from
int64_t.

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

8 years ago PR c++/81130
jakub [Wed, 21 Jun 2017 10:58:00 +0000 (10:58 +0000)] 
PR c++/81130
* gimplify.c (omp_add_variable): Don't force GOVD_SEEN for types
with ctors/dtors if GOVD_SHARED is set.

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

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

8 years agoEmit SIMD moves as mov
wilco [Wed, 21 Jun 2017 10:48:51 +0000 (10:48 +0000)] 
Emit SIMD moves as mov

SIMD moves are currently emitted as ORR.  Change this to use the MOV
pseudo instruction just like integer moves (the ARM-ARM states MOV is the
preferred disassembly), improving readability of -S output.

    gcc/
* config/aarch64/aarch64.md (movti_aarch64):
Emit mov rather than orr.
(movtf_aarch64): Likewise.
* config/aarch64/aarch64-simd.md (aarch64_simd_mov):
Emit mov rather than orr.

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

8 years agoImprove dup pattern
wilco [Wed, 21 Jun 2017 10:46:02 +0000 (10:46 +0000)] 
Improve dup pattern

Improve the dup pattern to prefer vector registers.  When doing a dup
after a load, the register allocator thinks the costs are identical
and chooses an integer load.  However a dup from an integer register
includes an int->fp transfer which is not modelled.  Adding a '?' to
the integer variant means the cost is increased slightly so we prefer
using a vector register.  This improves the following example:

#include <arm_neon.h>
void f(unsigned *a, uint32x4_t *b)
{
  b[0] = vdupq_n_u32(a[1]);
  b[1] = vdupq_n_u32(a[2]);
}

to:
        ldr     s0, [x0, 4]
        dup     v0.4s, v0.s[0]
        str     q0, [x1]
        ldr     s0, [x0, 8]
        dup     v0.4s, v0.s[0]
        str     q0, [x1, 16]
        ret

    gcc/
* config/aarch64/aarch64-simd.md (aarch64_simd_dup):
Swap alternatives, make integer dup more expensive.

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

8 years agoMark symbols as constant
wilco [Wed, 21 Jun 2017 10:40:21 +0000 (10:40 +0000)] 
Mark symbols as constant

Aarch64_legitimate_constant_p currently returns false for symbols,
eventhough they are always valid constants.  This means LOSYM isn't
CSEd correctly.  If we return true CSE works better, resulting in
smaller/faster code (0.3% smaller code on SPEC2006).  Avoid this
for TLS symbols since their sequence is complex.

    gcc/
* config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
Return true for non-tls symbols.

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

8 years ago[Patch AArch64] Add initial tuning support for Cortex-A55 and Cortex-A75
jgreenhalgh [Wed, 21 Jun 2017 09:58:57 +0000 (09:58 +0000)] 
[Patch AArch64] Add initial tuning support for Cortex-A55 and Cortex-A75

This patch adds support for the ARM Cortex-A75 and
Cortex-A55 processors through the -mcpu/-mtune values cortex-a55 and
cortex-a75, and an ARM DynamIQ big.LITTLE configuration of these two
processors through the -mcpu/-mtune value cortex-a75.cortex-a55

The ARM Cortex-A75 is ARM's latest and highest performance applications
processor. For the initial tuning provided in this patch, I have chosen to
share the tuning structure with its predecessor, the Cortex-A73.

The ARM Cortex-A55 delivers the best combination of power efficiency
and performance in its class. For the initial tuning provided in this patch,
I have chosen to share the tuning structure with its predecessor, the
Cortex-A53.

Both Cortex-A55 and Cortex-A75 support ARMv8-A with the ARM8.1-A and
ARMv8.2-A extensions, along with the cryptography extension, and
the RCPC extensions from ARMv8.3-A. This is reflected in the patch,
-mcpu=cortex-a75 is treated as equivalent to passing -mtune=cortex-a75
-march=armv8.2-a+rcpc .

2017-06-21  James Greenhalgh  <james.greenhalgh@arm.com>

* config/aarch64/aarch64-cores.def (cortex-a55): New.
(cortex-a75): Likewise.
(cortex-a75.cortex-a55): Likewise.
* config/aarch64/aarch64-tune.md: Regenerate.
* doc/invoke.texi (-mtune): Document new values for -mtune.

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

8 years agoAdd dg-add-options feature stack_size
vries [Wed, 21 Jun 2017 09:10:16 +0000 (09:10 +0000)] 
Add dg-add-options feature stack_size

2017-06-21  Tom de Vries  <tom@codesourcery.com>

* doc/sourcebuild.texi (Add Options, Features for dg-add-options): Add
stack_size feature.
(Effective-Target Keywords, Other attributes): Suggest using
dg-add-options stack_size feature to get stack limit in stack_size
effective target documentation.

* lib/target-supports.exp (add_options_for_stack_size): New proc.
* gcc.c-torture/execute/920501-7.c: Use dg-add-options stack_size.
* gcc.c-torture/compile/20080806-1.c: Same.
* gcc.c-torture/compile/920723-1.c: Same.
* gcc.c-torture/compile/930621-1.c: Same.
* gcc.c-torture/compile/991214-2.c: Same.
* gcc.c-torture/compile/bcopy.c: Same.
* gcc.c-torture/compile/memtst.c: Same.
* gcc.c-torture/compile/msp.c: Same.
* gcc.c-torture/compile/stuct.c: Same.
* gcc.c-torture/execute/20011008-3.c: Same.
* gcc.c-torture/execute/20030209-1.c: Same.
* gcc.c-torture/execute/20031012-1.c: Same.
* gcc.c-torture/execute/20040805-1.c: Same.
* gcc.c-torture/execute/920410-1.c: Same.
* gcc.c-torture/execute/921113-1.c: Same.
* gcc.c-torture/execute/921202-1.c: Same.
* gcc.c-torture/execute/921208-2.c: Same.
* gcc.c-torture/execute/930106-1.c: Same.
* gcc.c-torture/execute/930406-1.c: Same.
* gcc.c-torture/execute/950221-1.c: Same.
* gcc.c-torture/execute/960521-1.c: Same.
* gcc.c-torture/execute/980605-1.c: Same.
* gcc.c-torture/execute/comp-goto-1.c: Same.
* gcc.c-torture/execute/comp-goto-2.c: Same.
* gcc.c-torture/execute/memcpy-1.c: Same.
* gcc.c-torture/execute/multi-ix.c: Same.
* gcc.c-torture/execute/nestfunc-4.c: Same.
* gcc.c-torture/execute/pr20621-1.c: Same.
* gcc.c-torture/execute/pr23135.c: Same.
* gcc.c-torture/execute/pr28982b.c: Same.
* gcc.dg/loop-3.c: Same.
* gcc.dg/struct-ret-3.c: Same.
* gcc.dg/torture/stackalign/comp-goto-1.c: Same.
* gcc.dg/torture/stackalign/non-local-goto-4.c: Same.
* gcc.dg/tree-prof/comp-goto-1.c: Same.
* gcc.dg/tree-prof/pr44777.c: Same.

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

8 years agoPR libstdc++/81092 Regenerate configure for libtool_VERSION change
redi [Wed, 21 Jun 2017 08:55:26 +0000 (08:55 +0000)] 
PR libstdc++/81092 Regenerate configure for libtool_VERSION change

PR libstdc++/81092
* configure: Regenerate.

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

8 years ago2017-06-21 Richard Biener <rguenther@suse.de>
rguenth [Wed, 21 Jun 2017 07:04:13 +0000 (07:04 +0000)] 
2017-06-21  Richard Biener  <rguenther@suse.de>

* configure.ac: Add AC_SYS_LARGEFILE.
* config.h.in: Regenerate.
* configure: Likewise.

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

8 years ago2017-06-21 Richard Biener <rguenther@suse.de>
rguenth [Wed, 21 Jun 2017 07:01:34 +0000 (07:01 +0000)] 
2017-06-21  Richard Biener  <rguenther@suse.de>

PR gcov-profile/81080
* configure.ac: Add AC_SYS_LARGEFILE.
* libgcov.h: Include auto-target.h before tsystem.h to pick
up _FILE_OFFSET_BITS which might differ for multilibs.
* config.in: Regenerate.
* configure: Likewise.

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