9.0.1-0.4
This commit is contained in:
parent
fe09f8496b
commit
7ee3a099fa
1
.gitignore
vendored
1
.gitignore
vendored
@ -62,3 +62,4 @@
|
||||
/gcc-9.0.1-20190123.tar.xz
|
||||
/gcc-9.0.1-20190129.tar.xz
|
||||
/gcc-9.0.1-20190203.tar.xz
|
||||
/gcc-9.0.1-20190209.tar.xz
|
||||
|
36
gcc.spec
36
gcc.spec
@ -1,10 +1,10 @@
|
||||
%global DATE 20190203
|
||||
%global SVNREV 268371
|
||||
%global DATE 20190209
|
||||
%global SVNREV 268719
|
||||
%global gcc_version 9.0.1
|
||||
%global gcc_major 9
|
||||
# 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.3
|
||||
%global gcc_release 0.4
|
||||
%global nvptx_tools_gitrev c28050f60193b3b95a18866a96f03334e874e78f
|
||||
%global nvptx_newlib_gitrev aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24
|
||||
%global _unpackaged_files_terminate_build 0
|
||||
@ -257,6 +257,8 @@ Patch11: gcc9-d-shared-libphobos.patch
|
||||
Patch12: gcc9-pr88714.patch
|
||||
Patch13: gcc9-pr89014.patch
|
||||
Patch14: gcc9-pr89093.patch
|
||||
Patch15: gcc9-pr88977.patch
|
||||
Patch16: gcc9-pr89229.patch
|
||||
|
||||
Patch1000: nvptx-tools-no-ptxas.patch
|
||||
Patch1001: nvptx-tools-build.patch
|
||||
@ -327,6 +329,8 @@ Summary: C++ support for GCC
|
||||
Requires: gcc = %{version}-%{release}
|
||||
Requires: libstdc++ = %{version}-%{release}
|
||||
Requires: libstdc++-devel = %{version}-%{release}
|
||||
Provides: gcc-g++ = %{version}-%{release}
|
||||
Provides: g++ = %{version}-%{release}
|
||||
Autoreq: true
|
||||
|
||||
%description c++
|
||||
@ -404,6 +408,8 @@ Requires: libgfortran = %{version}-%{release}
|
||||
Requires: libquadmath = %{version}-%{release}
|
||||
Requires: libquadmath-devel = %{version}-%{release}
|
||||
%endif
|
||||
Provides: gcc-fortran = %{version}-%{release}
|
||||
Provides: gfortran = %{version}-%{release}
|
||||
Autoreq: true
|
||||
|
||||
%description gfortran
|
||||
@ -436,6 +442,8 @@ This package contains static Fortran libraries.
|
||||
Summary: D support
|
||||
Requires: gcc = %{version}-%{release}
|
||||
Requires: libgphobos = %{version}-%{release}
|
||||
Provides: gcc-d = %{version}-%{release}
|
||||
Provides: gdc = %{version}-%{release}
|
||||
Autoreq: true
|
||||
|
||||
%description gdc
|
||||
@ -688,6 +696,7 @@ Requires: libgo = %{version}-%{release}
|
||||
Requires: libgo-devel = %{version}-%{release}
|
||||
Requires(post): %{_sbindir}/update-alternatives
|
||||
Requires(postun): %{_sbindir}/update-alternatives
|
||||
Provides: gccgo = %{version}-%{release}
|
||||
Autoreq: true
|
||||
|
||||
%description go
|
||||
@ -763,6 +772,8 @@ to NVidia PTX capable devices if available.
|
||||
%patch12 -p0 -b .pr88714~
|
||||
%patch13 -p0 -b .pr89014~
|
||||
%patch14 -p0 -b .pr89093~
|
||||
%patch15 -p0 -b .pr88977~
|
||||
%patch16 -p0 -b .pr89229~
|
||||
|
||||
cd nvptx-tools-%{nvptx_tools_gitrev}
|
||||
%patch1000 -p1 -b .nvptx-tools-no-ptxas~
|
||||
@ -2951,6 +2962,25 @@ end
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Sat Feb 9 2019 Jakub Jelinek <jakub@redhat.com> 9.0.1-0.4
|
||||
- update from trunk
|
||||
- PRs c++/44648, c++/71302, c++/86218, c++/87770, c++/89158, c++/89187,
|
||||
c/69661, c/88584, c/88606, c/88698, c/89211, debug/87451,
|
||||
fortran/52789, fortran/71860, fortran/88912, fortran/89077,
|
||||
fortran/89185, gcov-profile/89000, go/89019, ipa/88985,
|
||||
libbacktrace/78063, libstdc++/71044, libstdc++/87106, libstdc++/89090,
|
||||
libstdc++/89102, libstdc++/89128, libstdc++/89130, libstdc++/89194,
|
||||
middle-end/88560, middle-end/89150, middle-end/89210,
|
||||
middle-end/89223, middle-end/89246, rtl-optimization/11304,
|
||||
rtl-optimization/89195, rtl-optimization/89225,
|
||||
rtl-optimization/89234, target/88343, target/88856, target/89112,
|
||||
target/89186, target/89188, target/89229, testsuite/89250,
|
||||
testsuite/89258, tree-optimization/86637, tree-optimization/89182,
|
||||
tree-optimization/89235, tree-optimization/89247
|
||||
- add gcc-g++ and g++ provides to gcc-c++, gcc-fortran and gfortran
|
||||
provides to gcc-gfortran, gcc-d and gdc provides to gcc-gdc and gccgo
|
||||
provides to gcc-go
|
||||
|
||||
* Sun Feb 3 2019 Jakub Jelinek <jakub@redhat.com> 9.0.1-0.3
|
||||
- update from trunk
|
||||
- PRs c++/80864, c++/86943, c++/87175, c++/88325, c++/88752, c++/88761,
|
||||
|
@ -1,122 +1,32 @@
|
||||
2019-01-17 Jakub Jelinek <jakub@redhat.com>
|
||||
2019-02-08 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR bootstrap/88714
|
||||
* config/arm/ldrdstrd.md: If alias sets on the SImode MEMs are
|
||||
different, clear alias set on the DImode MEM. Clear MEM_EXPR.
|
||||
* config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint
|
||||
instead of r.
|
||||
|
||||
* gcc.c-torture/execute/pr88714.c: New test.
|
||||
--- gcc/config/arm/ldrdstrd.md.jj 2019-02-08 11:25:42.368916124 +0100
|
||||
+++ gcc/config/arm/ldrdstrd.md 2019-02-08 12:38:33.647585108 +0100
|
||||
@@ -157,9 +157,9 @@ (define_peephole2 ; swap the destination
|
||||
;; We use gen_operands_ldrd_strd() with a modify argument as false so that the
|
||||
;; operands are not changed.
|
||||
(define_insn "*arm_ldrd"
|
||||
- [(parallel [(set (match_operand:SI 0 "s_register_operand" "=r")
|
||||
+ [(parallel [(set (match_operand:SI 0 "s_register_operand" "=q")
|
||||
(match_operand:SI 2 "memory_operand" "m"))
|
||||
- (set (match_operand:SI 1 "s_register_operand" "=r")
|
||||
+ (set (match_operand:SI 1 "s_register_operand" "=q")
|
||||
(match_operand:SI 3 "memory_operand" "m"))])]
|
||||
"TARGET_LDRD && TARGET_ARM && reload_completed
|
||||
&& valid_operands_ldrd_strd (operands, true)"
|
||||
@@ -178,9 +178,9 @@ (define_insn "*arm_ldrd"
|
||||
|
||||
--- gcc/config/arm/ldrdstrd.md.jj 2019-01-16 09:35:03.851334889 +0100
|
||||
+++ gcc/config/arm/ldrdstrd.md 2019-01-17 17:37:40.860791779 +0100
|
||||
@@ -39,6 +39,10 @@ (define_peephole2 ; ldrd
|
||||
/* In ARM state, the destination registers of LDRD/STRD must be
|
||||
consecutive. We emit DImode access. */
|
||||
operands[0] = gen_rtx_REG (DImode, REGNO (operands[0]));
|
||||
+ if (MEM_ALIAS_SET (operands[2])
|
||||
+ && MEM_ALIAS_SET (operands[2]) != MEM_ALIAS_SET (operands[3]))
|
||||
+ set_mem_alias_set (operands[2], 0);
|
||||
+ set_mem_expr (operands[2], NULL_TREE);
|
||||
operands[2] = adjust_address (operands[2], DImode, 0);
|
||||
/* Emit [(set (match_dup 0) (match_dup 2))] */
|
||||
emit_insn (gen_rtx_SET (operands[0], operands[2]));
|
||||
@@ -71,6 +75,10 @@ (define_peephole2 ; strd
|
||||
/* In ARM state, the destination registers of LDRD/STRD must be
|
||||
consecutive. We emit DImode access. */
|
||||
operands[0] = gen_rtx_REG (DImode, REGNO (operands[0]));
|
||||
+ if (MEM_ALIAS_SET (operands[2])
|
||||
+ && MEM_ALIAS_SET (operands[2]) != MEM_ALIAS_SET (operands[3]))
|
||||
+ set_mem_alias_set (operands[2], 0);
|
||||
+ set_mem_expr (operands[2], NULL_TREE);
|
||||
operands[2] = adjust_address (operands[2], DImode, 0);
|
||||
/* Emit [(set (match_dup 2) (match_dup 0))] */
|
||||
emit_insn (gen_rtx_SET (operands[2], operands[0]));
|
||||
@@ -106,6 +114,10 @@ (define_peephole2 ; strd of constants
|
||||
else if (TARGET_ARM)
|
||||
(define_insn "*arm_strd"
|
||||
[(parallel [(set (match_operand:SI 2 "memory_operand" "=m")
|
||||
- (match_operand:SI 0 "s_register_operand" "r"))
|
||||
+ (match_operand:SI 0 "s_register_operand" "q"))
|
||||
(set (match_operand:SI 3 "memory_operand" "=m")
|
||||
- (match_operand:SI 1 "s_register_operand" "r"))])]
|
||||
+ (match_operand:SI 1 "s_register_operand" "q"))])]
|
||||
"TARGET_LDRD && TARGET_ARM && reload_completed
|
||||
&& valid_operands_ldrd_strd (operands, false)"
|
||||
{
|
||||
rtx tmp = gen_rtx_REG (DImode, REGNO (operands[0]));
|
||||
+ if (MEM_ALIAS_SET (operands[2])
|
||||
+ && MEM_ALIAS_SET (operands[2]) != MEM_ALIAS_SET (operands[3]))
|
||||
+ set_mem_alias_set (operands[2], 0);
|
||||
+ set_mem_expr (operands[2], NULL_TREE);
|
||||
operands[2] = adjust_address (operands[2], DImode, 0);
|
||||
/* Emit the pattern:
|
||||
[(set (match_dup 0) (match_dup 4))
|
||||
@@ -149,6 +161,10 @@ (define_peephole2 ; strd of constants
|
||||
else if (TARGET_ARM)
|
||||
{
|
||||
rtx tmp = gen_rtx_REG (DImode, REGNO (operands[0]));
|
||||
+ if (MEM_ALIAS_SET (operands[2])
|
||||
+ && MEM_ALIAS_SET (operands[2]) != MEM_ALIAS_SET (operands[3]))
|
||||
+ set_mem_alias_set (operands[2], 0);
|
||||
+ set_mem_expr (operands[2], NULL_TREE);
|
||||
operands[2] = adjust_address (operands[2], DImode, 0);
|
||||
/* Emit the pattern
|
||||
[(set (match_dup 0) (match_dup 4))
|
||||
@@ -203,6 +219,10 @@ (define_peephole2 ; swap the destination
|
||||
else
|
||||
{
|
||||
operands[0] = gen_rtx_REG (DImode, REGNO (operands[0]));
|
||||
+ if (MEM_ALIAS_SET (operands[2])
|
||||
+ && MEM_ALIAS_SET (operands[2]) != MEM_ALIAS_SET (operands[3]))
|
||||
+ set_mem_alias_set (operands[2], 0);
|
||||
+ set_mem_expr (operands[2], NULL_TREE);
|
||||
operands[2] = adjust_address (operands[2], DImode, 0);
|
||||
}
|
||||
}
|
||||
@@ -238,6 +258,10 @@ (define_peephole2 ; swap the destination
|
||||
else
|
||||
{
|
||||
operands[0] = gen_rtx_REG (DImode, REGNO (operands[0]));
|
||||
+ if (MEM_ALIAS_SET (operands[2])
|
||||
+ && MEM_ALIAS_SET (operands[2]) != MEM_ALIAS_SET (operands[3]))
|
||||
+ set_mem_alias_set (operands[2], 0);
|
||||
+ set_mem_expr (operands[2], NULL_TREE);
|
||||
operands[2] = adjust_address (operands[2], DImode, 0);
|
||||
}
|
||||
}
|
||||
--- gcc/testsuite/gcc.c-torture/execute/pr88714.c.jj 2019-01-17 17:39:42.074828164 +0100
|
||||
+++ gcc/testsuite/gcc.c-torture/execute/pr88714.c 2019-01-17 17:21:26.810575783 +0100
|
||||
@@ -0,0 +1,43 @@
|
||||
+/* PR bootstrap/88714 */
|
||||
+
|
||||
+struct S { int a, b, c; int *d; };
|
||||
+struct T { int *e, *f, *g; } *t = 0;
|
||||
+int *o = 0;
|
||||
+
|
||||
+__attribute__((noipa))
|
||||
+void bar (int *x, int y, int z, int w)
|
||||
+{
|
||||
+ if (w == -1)
|
||||
+ {
|
||||
+ if (x != 0 || y != 0 || z != 0)
|
||||
+ __builtin_abort ();
|
||||
+ }
|
||||
+ else if (w != 0 || x != t->g || y != 0 || z != 12)
|
||||
+ __builtin_abort ();
|
||||
+}
|
||||
+
|
||||
+__attribute__((noipa)) void
|
||||
+foo (struct S *x, struct S *y, int *z, int w)
|
||||
+{
|
||||
+ *o = w;
|
||||
+ if (w)
|
||||
+ bar (0, 0, 0, -1);
|
||||
+ x->d = z;
|
||||
+ if (y->d)
|
||||
+ y->c = y->c + y->d[0];
|
||||
+ bar (t->g, 0, y->c, 0);
|
||||
+}
|
||||
+
|
||||
+int
|
||||
+main ()
|
||||
+{
|
||||
+ int a[4] = { 8, 9, 10, 11 };
|
||||
+ struct S s = { 1, 2, 3, &a[0] };
|
||||
+ struct T u = { 0, 0, &a[3] };
|
||||
+ o = &a[2];
|
||||
+ t = &u;
|
||||
+ foo (&s, &s, &a[1], 5);
|
||||
+ if (s.c != 12 || s.d != &a[1])
|
||||
+ __builtin_abort ();
|
||||
+ return 0;
|
||||
+}
|
||||
|
48
gcc9-pr88977.patch
Normal file
48
gcc9-pr88977.patch
Normal file
@ -0,0 +1,48 @@
|
||||
2019-02-08 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c++/88977
|
||||
* pt.c (convert_nontype_argument): Pass true as manifestly_const_eval
|
||||
to maybe_constant_value calls.
|
||||
|
||||
* g++.dg/cpp2a/is-constant-evaluated7.C: New test.
|
||||
|
||||
--- gcc/cp/pt.c.jj 2019-02-05 10:04:19.038028029 +0100
|
||||
+++ gcc/cp/pt.c 2019-02-08 09:46:23.370257199 +0100
|
||||
@@ -6821,12 +6821,14 @@ convert_nontype_argument (tree type, tre
|
||||
/* Make sure we return NULL_TREE only if we have really issued
|
||||
an error, as described above. */
|
||||
return (complain & tf_error) ? NULL_TREE : error_mark_node;
|
||||
- expr = maybe_constant_value (expr);
|
||||
+ expr = maybe_constant_value (expr, NULL_TREE,
|
||||
+ /*manifestly_const_eval=*/true);
|
||||
expr = convert_from_reference (expr);
|
||||
}
|
||||
else if (TYPE_PTR_OR_PTRMEM_P (type))
|
||||
{
|
||||
- tree folded = maybe_constant_value (expr);
|
||||
+ tree folded = maybe_constant_value (expr, NULL_TREE,
|
||||
+ /*manifestly_const_eval=*/true);
|
||||
if (TYPE_PTR_P (type) ? integer_zerop (folded)
|
||||
: null_member_pointer_value_p (folded))
|
||||
expr = folded;
|
||||
--- gcc/testsuite/g++.dg/cpp2a/is-constant-evaluated7.C.jj 2019-02-08 09:53:47.255935430 +0100
|
||||
+++ gcc/testsuite/g++.dg/cpp2a/is-constant-evaluated7.C 2019-02-08 09:49:45.159957823 +0100
|
||||
@@ -0,0 +1,18 @@
|
||||
+// P0595R2
|
||||
+// PR c++/88977
|
||||
+// { dg-do compile { target c++11 } }
|
||||
+
|
||||
+namespace std {
|
||||
+ constexpr inline bool
|
||||
+ is_constant_evaluated () noexcept
|
||||
+ {
|
||||
+ return __builtin_is_constant_evaluated ();
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+template<bool B> constexpr bool foo () { return B; }
|
||||
+
|
||||
+constexpr bool x = foo<std::is_constant_evaluated ()> ();
|
||||
+constexpr bool y = foo<__builtin_is_constant_evaluated ()> ();
|
||||
+static_assert (x, "");
|
||||
+static_assert (y, "");
|
54
gcc9-pr89229.patch
Normal file
54
gcc9-pr89229.patch
Normal file
@ -0,0 +1,54 @@
|
||||
2019-02-09 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
Revert:
|
||||
2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR target/89229
|
||||
* config/i386/i386.md (*movoi_internal_avx): Set mode to XI for
|
||||
upper 16 vector registers without TARGET_AVX512VL.
|
||||
(*movti_internal): Likewise.
|
||||
|
||||
Revert:
|
||||
2019-02-07 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR target/89229
|
||||
* config/i386/i386.md (*movoi_internal_avx): Set mode to OI
|
||||
for TARGET_AVX512VL.
|
||||
(*movti_internal): Set mode to TI for TARGET_AVX512VL.
|
||||
|
||||
--- gcc/config/i386/i386.md (revision 268678)
|
||||
+++ gcc/config/i386/i386.md (revision 268656)
|
||||
@@ -1933,13 +1933,12 @@ (define_insn "*movoi_internal_avx"
|
||||
(set_attr "type" "sselog1,sselog1,ssemov,ssemov")
|
||||
(set_attr "prefix" "vex")
|
||||
(set (attr "mode")
|
||||
- (cond [(and (not (match_test "TARGET_AVX512VL"))
|
||||
- (ior (match_operand 0 "ext_sse_reg_operand")
|
||||
- (match_operand 1 "ext_sse_reg_operand")))
|
||||
+ (cond [(ior (match_operand 0 "ext_sse_reg_operand")
|
||||
+ (match_operand 1 "ext_sse_reg_operand"))
|
||||
(const_string "XI")
|
||||
(and (eq_attr "alternative" "1")
|
||||
(match_test "TARGET_AVX512VL"))
|
||||
- (const_string "OI")
|
||||
+ (const_string "XI")
|
||||
(ior (match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL")
|
||||
(and (eq_attr "alternative" "3")
|
||||
(match_test "TARGET_SSE_TYPELESS_STORES")))
|
||||
@@ -2013,13 +2012,12 @@ (define_insn "*movti_internal"
|
||||
(set (attr "mode")
|
||||
(cond [(eq_attr "alternative" "0,1")
|
||||
(const_string "DI")
|
||||
- (and (not (match_test "TARGET_AVX512VL"))
|
||||
- (ior (match_operand 0 "ext_sse_reg_operand")
|
||||
- (match_operand 1 "ext_sse_reg_operand")))
|
||||
+ (ior (match_operand 0 "ext_sse_reg_operand")
|
||||
+ (match_operand 1 "ext_sse_reg_operand"))
|
||||
(const_string "XI")
|
||||
(and (eq_attr "alternative" "3")
|
||||
(match_test "TARGET_AVX512VL"))
|
||||
- (const_string "TI")
|
||||
+ (const_string "XI")
|
||||
(ior (not (match_test "TARGET_SSE2"))
|
||||
(ior (match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL")
|
||||
(and (eq_attr "alternative" "5")
|
2
sources
2
sources
@ -1,3 +1,3 @@
|
||||
SHA512 (gcc-9.0.1-20190203.tar.xz) = e82e8f94fde788c57a688db80b7d763cf636621f588bea3ba807118c6fde0177262f72b150f918dcd892fec614400da5fecb15f432ae67cd0333aaca5d6640c9
|
||||
SHA512 (gcc-9.0.1-20190209.tar.xz) = d61c5b50c6dc1b3185dfe66261885612cbb0fddb4a150ddca9015b100aaf0ec78c9efa7c31c8278e0201d713ab150168abd293fa4881630f03ec35827d0a23b6
|
||||
SHA512 (nvptx-newlib-aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24.tar.xz) = 94f7089365296f7dfa485107b4143bebc850a81586f3460fd896bbbb6ba099a00217d4042133424fd2183b352132f4fd367e6a60599bdae2a26dfd48a77d0e04
|
||||
SHA512 (nvptx-tools-c28050f60193b3b95a18866a96f03334e874e78f.tar.xz) = a688cb12cf805950a5abbb13b52f45c81dbee98e310b7ed57ae20e76dbfa5964a16270148374a6426d177db71909d28360490f091c86a5d19d4faa5127beeee1
|
||||
|
Loading…
Reference in New Issue
Block a user