8.0.1-0.19

This commit is contained in:
Jakub Jelinek 2018-03-17 14:56:00 +01:00
parent 83dbb2847c
commit 1bfe0e3c3b
5 changed files with 20 additions and 166 deletions

1
.gitignore vendored
View File

@ -41,3 +41,4 @@
/gcc-8.0.1-20180222.tar.xz
/gcc-8.0.1-20180310.tar.xz
/gcc-8.0.1-20180312.tar.xz
/gcc-8.0.1-20180317.tar.xz

View File

@ -1,10 +1,10 @@
%global DATE 20180312
%global SVNREV 258461
%global DATE 20180317
%global SVNREV 258622
%global gcc_version 8.0.1
%global gcc_major 8
# Note, gcc_release must be integer, if you want to add suffixes to
# %%{release}, append them after %%{gcc_release} on Release: line.
%global gcc_release 0.18
%global gcc_release 0.19
%global nvptx_tools_gitrev c28050f60193b3b95a18866a96f03334e874e78f
%global nvptx_newlib_gitrev aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24
%global _unpackaged_files_terminate_build 0
@ -245,8 +245,6 @@ Patch9: gcc8-aarch64-async-unw-tables.patch
Patch10: gcc8-foffload-default.patch
Patch11: gcc8-Wno-format-security.patch
Patch12: gcc8-rh1512529-aarch64.patch
Patch13: gcc8-pr84786.patch
Patch14: gcc8-pr84808.patch
Patch1000: nvptx-tools-no-ptxas.patch
Patch1001: nvptx-tools-build.patch
@ -806,8 +804,6 @@ to NVidia PTX capable devices if available.
%patch10 -p0 -b .foffload-default~
%patch11 -p0 -b .Wno-format-security~
%patch12 -p0 -b .rh1512529-aarch64~
%patch13 -p0 -b .pr84786~
%patch14 -p0 -b .pr84808~
cd nvptx-tools-%{nvptx_tools_gitrev}
%patch1000 -p1 -b .nvptx-tools-no-ptxas~
@ -3068,6 +3064,21 @@ fi
%endif
%changelog
* Sat Mar 17 2018 Jakub Jelinek <jakub@redhat.com> 8.0.1-0.19
- update from the trunk
- PRs ada/82813, c++/79085, c++/79937, c++/80227, c++/81236, c++/82336,
c++/82410, c++/82565, c++/83911, c++/83916, c++/83937, c++/84222,
c++/84720, c++/84798, c++/84801, c++/84820, c++/84839, c++/84843,
c++/84874, c++/84906, c/46921, c/84852, c/84853, c/84873, c/84909,
c/84910, fortran/61775, fortran/69395, fortran/78741, ipa/84658,
ipa/84722, ipa/8480, ipa/84833, libgfortran/84880, libstdc++/78420,
libstdc++/83662, libstdc++/84773, lto/84805, middle-end/84831,
middle-end/84834, sanitizer/83392, target/68256, target/78090,
target/83451, target/84574, target/84711, target/84743, target/84827,
target/84828, target/84844, target/84860, target/84876, target/84899,
target/84902, tree-optimization/84725, tree-optimization/84830,
tree-optimization/84841
* Mon Mar 12 2018 Jakub Jelinek <jakub@redhat.com> 8.0.1-0.18
- update from the trunk
- PRs c++/84355, c++/84802, c++/84813, debug/58150, fortran/83939,

View File

@ -1,76 +0,0 @@
2018-03-12 Jakub Jelinek <jakub@redhat.com>
PR target/84786
* config/i386/sse.md (sse2_loadhpd): Use Yv constraint rather than v
on the last operand.
* gcc.target/i386/avx512f-pr84786-1.c: New test.
* gcc.target/i386/avx512f-pr84786-2.c: New test.
--- gcc/config/i386/sse.md.jj 2018-03-05 17:00:24.568655800 +0100
+++ gcc/config/i386/sse.md 2018-03-12 11:05:48.917401886 +0100
@@ -9022,14 +9022,14 @@ (define_expand "sse2_loadhpd_exp"
;; see comment above inline_secondary_memory_needed function in i386.c
(define_insn "sse2_loadhpd"
[(set (match_operand:V2DF 0 "nonimmediate_operand"
- "=x,v,x,v,o,o ,o")
+ "=x,v,x,v ,o,o ,o")
(vec_concat:V2DF
(vec_select:DF
(match_operand:V2DF 1 "nonimmediate_operand"
- " 0,v,0,v,0,0 ,0")
+ " 0,v,0,v ,0,0 ,0")
(parallel [(const_int 0)]))
(match_operand:DF 2 "nonimmediate_operand"
- " m,m,x,v,x,*f,r")))]
+ " m,m,x,Yv,x,*f,r")))]
"TARGET_SSE2 && !(MEM_P (operands[1]) && MEM_P (operands[2]))"
"@
movhpd\t{%2, %0|%0, %2}
--- gcc/testsuite/gcc.target/i386/avx512f-pr84786-1.c.jj 2018-03-12 11:32:33.563665173 +0100
+++ gcc/testsuite/gcc.target/i386/avx512f-pr84786-1.c 2018-03-12 11:35:33.964695384 +0100
@@ -0,0 +1,25 @@
+/* PR target/84786 */
+/* { dg-do run { target { ! ia32 } } } */
+/* { dg-options "-mavx512f -mno-avx512vl -O2" } */
+/* { dg-require-effective-target avx512f } */
+
+#include "avx512f-check.h"
+
+typedef double V __attribute__((vector_size (16)));
+
+__attribute__((noipa)) V
+foo (V x, double y)
+{
+ register double z __asm ("xmm18");
+ asm volatile ("" : "=v" (z) : "0" (y));
+ x[1] = z;
+ return x;
+}
+
+static void
+avx512f_test (void)
+{
+ V a = foo ((V) { 1.0, 2.0 }, 3.0);
+ if (a[0] != 1.0 || a[1] != 3.0)
+ abort ();
+}
--- gcc/testsuite/gcc.target/i386/avx512f-pr84786-2.c.jj 2018-03-12 11:32:43.445666826 +0100
+++ gcc/testsuite/gcc.target/i386/avx512f-pr84786-2.c 2018-03-12 11:35:45.260697279 +0100
@@ -0,0 +1,16 @@
+/* PR target/84786 */
+/* { dg-do compile { target { ! ia32 } } } */
+/* { dg-options "-mavx512f -mno-avx512vl -O2" } */
+
+typedef double V __attribute__((vector_size (16)));
+
+__attribute__((noipa)) V
+foo (V x, double y)
+{
+ register double z __asm ("xmm18");
+ asm volatile ("" : "=v" (z) : "0" (y));
+ x[1] = z;
+ return x;
+}
+
+/* { dg-final { scan-assembler-not "vunpcklpd\[\^\n\r]*xmm(1\[6-9]|\[23]\[0-9])" } } */

View File

@ -1,82 +0,0 @@
2018-03-12 Jakub Jelinek <jakub@redhat.com>
PR c++/84808
* constexpr.c (find_array_ctor_elt): Don't use elt reference after
first potential CONSTRUCTOR_ELTS reallocation. Convert dindex to
sizetype. Formatting fixes.
* g++.dg/cpp1y/constexpr-84808.C: New test.
--- gcc/cp/constexpr.c.jj 2018-03-07 22:52:02.000000000 +0100
+++ gcc/cp/constexpr.c 2018-03-12 12:39:46.890321137 +0100
@@ -2194,9 +2194,9 @@ find_array_ctor_elt (tree ary, tree dind
that the same is true of the other elements and index directly. */
if (end > 0)
{
- tree cindex = (*elts)[end-1].index;
+ tree cindex = (*elts)[end - 1].index;
if (TREE_CODE (cindex) == INTEGER_CST
- && compare_tree_int (cindex, end-1) == 0)
+ && compare_tree_int (cindex, end - 1) == 0)
{
if (i < end)
return i;
@@ -2225,6 +2225,8 @@ find_array_ctor_elt (tree ary, tree dind
constructor_elt e;
tree lo = TREE_OPERAND (idx, 0);
tree hi = TREE_OPERAND (idx, 1);
+ tree value = elt.value;
+ dindex = fold_convert (sizetype, dindex);
if (tree_int_cst_lt (lo, dindex))
{
/* There are still some lower elts; shorten the range. */
@@ -2238,7 +2240,7 @@ find_array_ctor_elt (tree ary, tree dind
/* Append the element we want to insert. */
++middle;
e.index = dindex;
- e.value = unshare_constructor (elt.value);
+ e.value = unshare_constructor (value);
vec_safe_insert (CONSTRUCTOR_ELTS (ary), middle, e);
}
else
@@ -2254,8 +2256,8 @@ find_array_ctor_elt (tree ary, tree dind
e.index = hi;
else
e.index = build2 (RANGE_EXPR, sizetype, new_lo, hi);
- e.value = unshare_constructor (elt.value);
- vec_safe_insert (CONSTRUCTOR_ELTS (ary), middle+1, e);
+ e.value = unshare_constructor (value);
+ vec_safe_insert (CONSTRUCTOR_ELTS (ary), middle + 1, e);
}
}
return middle;
--- gcc/testsuite/g++.dg/cpp1y/constexpr-84808.C.jj 2018-03-12 12:45:29.472374837 +0100
+++ gcc/testsuite/g++.dg/cpp1y/constexpr-84808.C 2018-03-12 12:46:11.742381465 +0100
@@ -0,0 +1,27 @@
+// PR c++/84808
+// { dg-do compile { target c++14 } }
+
+struct A { int i; constexpr A () : i() {} };
+struct B { A a[24]; };
+
+constexpr int
+foo (int n)
+{
+ B b;
+ ++b.a[n + 20].i;
+ ++b.a[n + 18].i;
+ ++b.a[n + 16].i;
+ ++b.a[n + 14].i;
+ ++b.a[n + 12].i;
+ ++b.a[n + 10].i;
+ ++b.a[n + 8].i;
+ ++b.a[n + 6].i;
+ ++b.a[n + 4].i;
+ ++b.a[n + 2].i;
+ ++b.a[n].i;
+ return b.a[2].i + b.a[4].i + b.a[6].i + b.a[8].i + b.a[10].i
+ + b.a[12].i + b.a[14].i + b.a[16].i + b.a[18].i + b.a[20].i + b.a[22].i;
+}
+
+constexpr int i = foo (2);
+static_assert (i == 11, "");

View File

@ -1,3 +1,3 @@
SHA512 (gcc-8.0.1-20180312.tar.xz) = 4d88974201d1894fa66c39aabd27f0657ce4d451c35df8ace7500c2ad1109da3147e770cb23e4121035ea6ec742a96bc4d6374836ddccac34cc1330fbc7b9345
SHA512 (gcc-8.0.1-20180317.tar.xz) = 9104499d49c15003be7e18e5ceadb902b0d0751e005f5a43cf9a671d295998a9e0d6de344ecb80840ff4d2b8ceedbd52a448cc2782ed063fbd58aef12c8a0398
SHA512 (nvptx-newlib-aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24.tar.xz) = 94f7089365296f7dfa485107b4143bebc850a81586f3460fd896bbbb6ba099a00217d4042133424fd2183b352132f4fd367e6a60599bdae2a26dfd48a77d0e04
SHA512 (nvptx-tools-c28050f60193b3b95a18866a96f03334e874e78f.tar.xz) = a688cb12cf805950a5abbb13b52f45c81dbee98e310b7ed57ae20e76dbfa5964a16270148374a6426d177db71909d28360490f091c86a5d19d4faa5127beeee1