8.0.1-0.18

This commit is contained in:
Jakub Jelinek 2018-03-12 22:52:23 +01:00
parent b182d5ff6b
commit 86d615d880
5 changed files with 174 additions and 8 deletions

1
.gitignore vendored
View File

@ -40,3 +40,4 @@
/gcc-8.0.1-20180220.tar.xz
/gcc-8.0.1-20180222.tar.xz
/gcc-8.0.1-20180310.tar.xz
/gcc-8.0.1-20180312.tar.xz

View File

@ -1,17 +1,17 @@
%global DATE 20180310
%global SVNREV 258420
%global DATE 20180312
%global SVNREV 258461
%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.17
%global gcc_release 0.18
%global nvptx_tools_gitrev c28050f60193b3b95a18866a96f03334e874e78f
%global nvptx_newlib_gitrev aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24
%global _unpackaged_files_terminate_build 0
%global _performance_build 1
# Hardening slows the compiler way too much.
%undefine _hardened_build
%if 0%{?fedora} > 27
%if 0%{?fedora} > 27 || 0%{?rhel} >= 8
# Until annobin is fixed (#1519165).
%undefine _annotated_build
%endif
@ -131,7 +131,7 @@ URL: http://gcc.gnu.org
# Need binutils which support --no-add-needed >= 2.20.51.0.2-12
# Need binutils which support -plugin
# Need binutils which support .loc view >= 2.30
%if %{?fedora} >= 29
%if %{?fedora} >= 29 || 0%{?rhel} >= 8
BuildRequires: binutils >= 2.30
%else
BuildRequires: binutils >= 2.24
@ -200,7 +200,7 @@ Requires: cpp = %{version}-%{release}
# Need binutils that support --no-add-needed
# Need binutils that support -plugin
# Need binutils that support .loc view >= 2.30
%if %{?fedora} >= 29
%if %{?fedora} >= 29 || 0%{?rhel} >= 8
Requires: binutils >= 2.30
%else
Requires: binutils >= 2.24
@ -1886,7 +1886,7 @@ cd obj-%{gcc_target_platform}
# run the tests.
make %{?_smp_mflags} -k check ALT_CC_UNDER_TEST=gcc ALT_CXX_UNDER_TEST=g++ \
%if 0%{?fedora} >= 20
%if 0%{?fedora} >= 20 || 0%{?rhel} >= 8
RUNTESTFLAGS="--target_board=unix/'{,-fstack-protector-strong}'" || :
%else
RUNTESTFLAGS="--target_board=unix/'{,-fstack-protector}'" || :
@ -3064,7 +3064,14 @@ fi
%endif
%changelog
* 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,
fortran/84546, rtl-optimization/84780, tree-optimization/83456,
tree-optimization/84777, tree-optimization/84803
- add pconfigintrin.h and wbnoinvdintrin.h headers (#1554279)
- fix -march=knl from emitting AVX512VL instructions (PR target/84786)
- fix C++ constexpr RANGE_EXPR splitting (PR c++/84808)
* Sat Mar 10 2018 Jakub Jelinek <jakub@redhat.com> 8.0.1-0.17
- update from the trunk

76
gcc8-pr84786.patch Normal file
View File

@ -0,0 +1,76 @@
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])" } } */

82
gcc8-pr84808.patch Normal file
View File

@ -0,0 +1,82 @@
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-20180310.tar.xz) = 9dff425cd8463676b0e9ed6a7d9e7cd967c2e26d17cb195261cd900bff4d307f38e8f4ded1696deffd69ffa687108e1db0bcfaaa3cb3f4fd9917cc17608dcb47
SHA512 (gcc-8.0.1-20180312.tar.xz) = 4d88974201d1894fa66c39aabd27f0657ce4d451c35df8ace7500c2ad1109da3147e770cb23e4121035ea6ec742a96bc4d6374836ddccac34cc1330fbc7b9345
SHA512 (nvptx-newlib-aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24.tar.xz) = 94f7089365296f7dfa485107b4143bebc850a81586f3460fd896bbbb6ba099a00217d4042133424fd2183b352132f4fd367e6a60599bdae2a26dfd48a77d0e04
SHA512 (nvptx-tools-c28050f60193b3b95a18866a96f03334e874e78f.tar.xz) = a688cb12cf805950a5abbb13b52f45c81dbee98e310b7ed57ae20e76dbfa5964a16270148374a6426d177db71909d28360490f091c86a5d19d4faa5127beeee1