import gcc-8.3.1-5.1.el8
This commit is contained in:
parent
745403a9bb
commit
3dc5baceda
54
SOURCES/gcc8-pr91601.patch
Normal file
54
SOURCES/gcc8-pr91601.patch
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
2020-03-29 Martin Liska <mliska@suse.cz>
|
||||||
|
|
||||||
|
Backport from mainline
|
||||||
|
2019-09-02 Martin Liska <mliska@suse.cz>
|
||||||
|
|
||||||
|
PR gcov-profile/91601
|
||||||
|
* gcov.c (path_contains_zero_cycle_arc): Rename to ...
|
||||||
|
(path_contains_zero_or_negative_cycle_arc): ... this and handle
|
||||||
|
also negative edges.
|
||||||
|
(circuit): Handle also negative edges as they can happen
|
||||||
|
in some situations.
|
||||||
|
|
||||||
|
--- gcc/gcov.c
|
||||||
|
+++ gcc/gcov.c
|
||||||
|
@@ -653,10 +653,10 @@ unblock (const block_info *u, block_vector_t &blocked,
|
||||||
|
/* Return true when PATH contains a zero cycle arc count. */
|
||||||
|
|
||||||
|
static bool
|
||||||
|
-path_contains_zero_cycle_arc (arc_vector_t &path)
|
||||||
|
+path_contains_zero_or_negative_cycle_arc (arc_vector_t &path)
|
||||||
|
{
|
||||||
|
for (unsigned i = 0; i < path.size (); i++)
|
||||||
|
- if (path[i]->cs_count == 0)
|
||||||
|
+ if (path[i]->cs_count <= 0)
|
||||||
|
return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
@@ -682,7 +682,7 @@ circuit (block_info *v, arc_vector_t &path, block_info *start,
|
||||||
|
{
|
||||||
|
block_info *w = arc->dst;
|
||||||
|
if (w < start
|
||||||
|
- || arc->cs_count == 0
|
||||||
|
+ || arc->cs_count <= 0
|
||||||
|
|| !linfo.has_block (w))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
@@ -693,7 +693,7 @@ circuit (block_info *v, arc_vector_t &path, block_info *start,
|
||||||
|
handle_cycle (path, count);
|
||||||
|
loop_found = true;
|
||||||
|
}
|
||||||
|
- else if (!path_contains_zero_cycle_arc (path)
|
||||||
|
+ else if (!path_contains_zero_or_negative_cycle_arc (path)
|
||||||
|
&& find (blocked.begin (), blocked.end (), w) == blocked.end ())
|
||||||
|
loop_found |= circuit (w, path, start, blocked, block_lists, linfo,
|
||||||
|
count);
|
||||||
|
@@ -708,7 +708,7 @@ circuit (block_info *v, arc_vector_t &path, block_info *start,
|
||||||
|
{
|
||||||
|
block_info *w = arc->dst;
|
||||||
|
if (w < start
|
||||||
|
- || arc->cs_count == 0
|
||||||
|
+ || arc->cs_count <= 0
|
||||||
|
|| !linfo.has_block (w))
|
||||||
|
continue;
|
||||||
|
|
115
SOURCES/gcc8-pr92775.patch
Normal file
115
SOURCES/gcc8-pr92775.patch
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
2020-03-30 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
Backported from mainline
|
||||||
|
2019-12-06 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR fortran/92775
|
||||||
|
* trans.h (struct lang_type, struct lang_decl): Remove span member.
|
||||||
|
(GFC_DECL_SPAN, GFC_TYPE_ARRAY_SPAN): Remove macros.
|
||||||
|
* trans-array.h (gfc_get_descriptor_offsets_for_info): Add another
|
||||||
|
argument.
|
||||||
|
* trans-array.c (gfc_get_descriptor_offsets_for_info): Add SPAN_OFF
|
||||||
|
argument and initialize *SPAN_OFF to the offset of span field.
|
||||||
|
* trans-types.c (gfc_get_array_descr_info): Adjust
|
||||||
|
gfc_get_descriptor_offsets_for_info caller. Compute elem_size
|
||||||
|
as base->span instead of TYPE_SIZE_UNIT (etype) constant.
|
||||||
|
|
||||||
|
--- gcc/fortran/trans-array.c
|
||||||
|
+++ gcc/fortran/trans-array.c
|
||||||
|
@@ -503,9 +503,10 @@ gfc_conv_shift_descriptor_lbound (stmtblock_t* block, tree desc,
|
||||||
|
|
||||||
|
void
|
||||||
|
gfc_get_descriptor_offsets_for_info (const_tree desc_type, tree *data_off,
|
||||||
|
- tree *dtype_off, tree *dim_off,
|
||||||
|
- tree *dim_size, tree *stride_suboff,
|
||||||
|
- tree *lower_suboff, tree *upper_suboff)
|
||||||
|
+ tree *dtype_off, tree *span_off,
|
||||||
|
+ tree *dim_off, tree *dim_size,
|
||||||
|
+ tree *stride_suboff, tree *lower_suboff,
|
||||||
|
+ tree *upper_suboff)
|
||||||
|
{
|
||||||
|
tree field;
|
||||||
|
tree type;
|
||||||
|
@@ -515,6 +516,8 @@ gfc_get_descriptor_offsets_for_info (const_tree desc_type, tree *data_off,
|
||||||
|
*data_off = byte_position (field);
|
||||||
|
field = gfc_advance_chain (TYPE_FIELDS (type), DTYPE_FIELD);
|
||||||
|
*dtype_off = byte_position (field);
|
||||||
|
+ field = gfc_advance_chain (TYPE_FIELDS (type), SPAN_FIELD);
|
||||||
|
+ *span_off = byte_position (field);
|
||||||
|
field = gfc_advance_chain (TYPE_FIELDS (type), DIMENSION_FIELD);
|
||||||
|
*dim_off = byte_position (field);
|
||||||
|
type = TREE_TYPE (TREE_TYPE (field));
|
||||||
|
--- gcc/fortran/trans-array.h
|
||||||
|
+++ gcc/fortran/trans-array.h
|
||||||
|
@@ -159,7 +159,7 @@ void gfc_trans_array_cobounds (tree, stmtblock_t *, const gfc_symbol *);
|
||||||
|
|
||||||
|
/* Build expressions for accessing components of an array descriptor. */
|
||||||
|
void gfc_get_descriptor_offsets_for_info (const_tree, tree *, tree *, tree *, tree *,
|
||||||
|
- tree *, tree *, tree *);
|
||||||
|
+ tree *, tree *, tree *, tree *);
|
||||||
|
|
||||||
|
tree gfc_conv_descriptor_data_get (tree);
|
||||||
|
tree gfc_conv_descriptor_data_addr (tree);
|
||||||
|
--- gcc/fortran/trans-types.c
|
||||||
|
+++ gcc/fortran/trans-types.c
|
||||||
|
@@ -3344,7 +3344,7 @@ gfc_get_array_descr_info (const_tree type, struct array_descr_info *info)
|
||||||
|
int rank, dim;
|
||||||
|
bool indirect = false;
|
||||||
|
tree etype, ptype, t, base_decl;
|
||||||
|
- tree data_off, dim_off, dtype_off, dim_size, elem_size;
|
||||||
|
+ tree data_off, span_off, dim_off, dtype_off, dim_size, elem_size;
|
||||||
|
tree lower_suboff, upper_suboff, stride_suboff;
|
||||||
|
tree dtype, field, rank_off;
|
||||||
|
|
||||||
|
@@ -3401,12 +3401,13 @@ gfc_get_array_descr_info (const_tree type, struct array_descr_info *info)
|
||||||
|
if (indirect)
|
||||||
|
base_decl = build1 (INDIRECT_REF, ptype, base_decl);
|
||||||
|
|
||||||
|
- elem_size = fold_convert (gfc_array_index_type, TYPE_SIZE_UNIT (etype));
|
||||||
|
-
|
||||||
|
- gfc_get_descriptor_offsets_for_info (type, &data_off, &dtype_off, &dim_off,
|
||||||
|
- &dim_size, &stride_suboff,
|
||||||
|
+ gfc_get_descriptor_offsets_for_info (type, &data_off, &dtype_off, &span_off,
|
||||||
|
+ &dim_off, &dim_size, &stride_suboff,
|
||||||
|
&lower_suboff, &upper_suboff);
|
||||||
|
|
||||||
|
+ t = fold_build_pointer_plus (base_decl, span_off);
|
||||||
|
+ elem_size = build1 (INDIRECT_REF, gfc_array_index_type, t);
|
||||||
|
+
|
||||||
|
t = base_decl;
|
||||||
|
if (!integer_zerop (data_off))
|
||||||
|
t = fold_build_pointer_plus (t, data_off);
|
||||||
|
--- gcc/fortran/trans.h
|
||||||
|
+++ gcc/fortran/trans.h
|
||||||
|
@@ -953,7 +953,6 @@ struct GTY(()) lang_type {
|
||||||
|
tree offset;
|
||||||
|
tree dtype;
|
||||||
|
tree dataptr_type;
|
||||||
|
- tree span;
|
||||||
|
tree base_decl[2];
|
||||||
|
tree nonrestricted_type;
|
||||||
|
tree caf_token;
|
||||||
|
@@ -969,7 +968,6 @@ struct GTY(()) lang_decl {
|
||||||
|
address of target label. */
|
||||||
|
tree stringlen;
|
||||||
|
tree addr;
|
||||||
|
- tree span;
|
||||||
|
/* For assumed-shape coarrays. */
|
||||||
|
tree token, caf_offset;
|
||||||
|
unsigned int scalar_allocatable : 1;
|
||||||
|
@@ -979,7 +977,6 @@ struct GTY(()) lang_decl {
|
||||||
|
|
||||||
|
#define GFC_DECL_ASSIGN_ADDR(node) DECL_LANG_SPECIFIC(node)->addr
|
||||||
|
#define GFC_DECL_STRING_LEN(node) DECL_LANG_SPECIFIC(node)->stringlen
|
||||||
|
-#define GFC_DECL_SPAN(node) DECL_LANG_SPECIFIC(node)->span
|
||||||
|
#define GFC_DECL_TOKEN(node) DECL_LANG_SPECIFIC(node)->token
|
||||||
|
#define GFC_DECL_CAF_OFFSET(node) DECL_LANG_SPECIFIC(node)->caf_offset
|
||||||
|
#define GFC_DECL_SAVED_DESCRIPTOR(node) \
|
||||||
|
@@ -1028,7 +1025,6 @@ struct GTY(()) lang_decl {
|
||||||
|
#define GFC_TYPE_ARRAY_DTYPE(node) (TYPE_LANG_SPECIFIC(node)->dtype)
|
||||||
|
#define GFC_TYPE_ARRAY_DATAPTR_TYPE(node) \
|
||||||
|
(TYPE_LANG_SPECIFIC(node)->dataptr_type)
|
||||||
|
-#define GFC_TYPE_ARRAY_SPAN(node) (TYPE_LANG_SPECIFIC(node)->span)
|
||||||
|
#define GFC_TYPE_ARRAY_BASE_DECL(node, internal) \
|
||||||
|
(TYPE_LANG_SPECIFIC(node)->base_decl[(internal)])
|
||||||
|
|
72
SOURCES/gcc8-pr92950.patch
Normal file
72
SOURCES/gcc8-pr92950.patch
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
Fix PR92950: Wrong code emitted for movv1qi
|
||||||
|
|
||||||
|
The backend emits 16 bit memory loads for single element character
|
||||||
|
vector. As a result the character will not be right justified in the
|
||||||
|
GPR.
|
||||||
|
|
||||||
|
2019-12-17 Andreas Krebbel <krebbel@linux.ibm.com>
|
||||||
|
|
||||||
|
Backport from mainline
|
||||||
|
2019-12-16 Andreas Krebbel <krebbel@linux.ibm.com>
|
||||||
|
|
||||||
|
PR target/92950
|
||||||
|
* config/s390/vector.md ("mov<mode>" for V_8): Replace lh, lhy,
|
||||||
|
and lhrl with llc.
|
||||||
|
|
||||||
|
--- gcc/config/s390/vector.md
|
||||||
|
+++ gcc/config/s390/vector.md
|
||||||
|
@@ -289,9 +289,9 @@
|
||||||
|
; However, this would probably be slower.
|
||||||
|
|
||||||
|
(define_insn "mov<mode>"
|
||||||
|
- [(set (match_operand:V_8 0 "nonimmediate_operand" "=v,v,d,v,R, v, v, v, v,d, Q, S, Q, S, d, d,d,d,d,R,T")
|
||||||
|
- (match_operand:V_8 1 "general_operand" " v,d,v,R,v,j00,jm1,jyy,jxx,d,j00,j00,jm1,jm1,j00,jm1,R,T,b,d,d"))]
|
||||||
|
- ""
|
||||||
|
+ [(set (match_operand:V_8 0 "nonimmediate_operand" "=v,v,d,v,R, v, v, v, v,d, Q, S, Q, S, d, d,d,R,T")
|
||||||
|
+ (match_operand:V_8 1 "general_operand" " v,d,v,R,v,j00,jm1,jyy,jxx,d,j00,j00,jm1,jm1,j00,jm1,T,d,d"))]
|
||||||
|
+ "TARGET_VX"
|
||||||
|
"@
|
||||||
|
vlr\t%v0,%v1
|
||||||
|
vlvgb\t%v0,%1,0
|
||||||
|
@@ -309,12 +309,10 @@
|
||||||
|
mviy\t%0,-1
|
||||||
|
lhi\t%0,0
|
||||||
|
lhi\t%0,-1
|
||||||
|
- lh\t%0,%1
|
||||||
|
- lhy\t%0,%1
|
||||||
|
- lhrl\t%0,%1
|
||||||
|
+ llc\t%0,%1
|
||||||
|
stc\t%1,%0
|
||||||
|
stcy\t%1,%0"
|
||||||
|
- [(set_attr "op_type" "VRR,VRS,VRS,VRX,VRX,VRI,VRI,VRI,VRI,RR,SI,SIY,SI,SIY,RI,RI,RX,RXY,RIL,RX,RXY")])
|
||||||
|
+ [(set_attr "op_type" "VRR,VRS,VRS,VRX,VRX,VRI,VRI,VRI,VRI,RR,SI,SIY,SI,SIY,RI,RI,RXY,RX,RXY")])
|
||||||
|
|
||||||
|
(define_insn "mov<mode>"
|
||||||
|
[(set (match_operand:V_16 0 "nonimmediate_operand" "=v,v,d,v,R, v, v, v, v,d, Q, Q, d, d,d,d,d,R,T,b")
|
||||||
|
--- /dev/null
|
||||||
|
+++ gcc/testsuite/gcc.target/s390/vector/pr92950.c
|
||||||
|
@@ -0,0 +1,24 @@
|
||||||
|
+/* { dg-do run } */
|
||||||
|
+/* { dg-options "-O3 -mzarch -march=z13" } */
|
||||||
|
+
|
||||||
|
+struct a {
|
||||||
|
+ int b;
|
||||||
|
+ char c;
|
||||||
|
+};
|
||||||
|
+struct a d = {1, 16};
|
||||||
|
+struct a *e = &d;
|
||||||
|
+
|
||||||
|
+int f = 0;
|
||||||
|
+
|
||||||
|
+int main() {
|
||||||
|
+ struct a g = {0, 0 };
|
||||||
|
+ f = 0;
|
||||||
|
+
|
||||||
|
+ for (; f <= 1; f++) {
|
||||||
|
+ g = d;
|
||||||
|
+ *e = g;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (d.c != 16)
|
||||||
|
+ __builtin_abort();
|
||||||
|
+}
|
@ -104,7 +104,7 @@
|
|||||||
Summary: Various compilers (C, C++, Objective-C, ...)
|
Summary: Various compilers (C, C++, Objective-C, ...)
|
||||||
Name: gcc
|
Name: gcc
|
||||||
Version: %{gcc_version}
|
Version: %{gcc_version}
|
||||||
Release: %{gcc_release}.5%{?dist}
|
Release: %{gcc_release}.1%{?dist}
|
||||||
# libgcc, libgfortran, libgomp, libstdc++ and crtstuff have
|
# libgcc, libgfortran, libgomp, libstdc++ and crtstuff have
|
||||||
# GCC Runtime Exception.
|
# GCC Runtime Exception.
|
||||||
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD
|
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD
|
||||||
@ -273,11 +273,9 @@ Patch16: gcc8-pr85400.patch
|
|||||||
Patch17: gcc8-libgomp-20190503.patch
|
Patch17: gcc8-libgomp-20190503.patch
|
||||||
Patch18: gcc8-pr86747.patch
|
Patch18: gcc8-pr86747.patch
|
||||||
Patch19: gcc8-libgomp-testsuite.patch
|
Patch19: gcc8-libgomp-testsuite.patch
|
||||||
Patch20: gcc8-rh1711346.patch
|
Patch20: gcc8-pr91601.patch
|
||||||
Patch21: gcc8-rh1730380.patch
|
Patch21: gcc8-pr92775.patch
|
||||||
Patch22: gcc8-pr86098.patch
|
Patch22: gcc8-pr92950.patch
|
||||||
Patch23: gcc8-pr90139.patch
|
|
||||||
Patch24: gcc8-pr90756.patch
|
|
||||||
|
|
||||||
Patch30: gcc8-rh1668903-1.patch
|
Patch30: gcc8-rh1668903-1.patch
|
||||||
Patch31: gcc8-rh1668903-2.patch
|
Patch31: gcc8-rh1668903-2.patch
|
||||||
@ -856,11 +854,9 @@ to NVidia PTX capable devices if available.
|
|||||||
%patch17 -p0 -b .libgomp-20190503~
|
%patch17 -p0 -b .libgomp-20190503~
|
||||||
%patch18 -p0 -b .pr86747~
|
%patch18 -p0 -b .pr86747~
|
||||||
%patch19 -p0 -b .libgomp-testsuite~
|
%patch19 -p0 -b .libgomp-testsuite~
|
||||||
%patch20 -p0 -b .rh1711346~
|
%patch20 -p0 -b .pr91601~
|
||||||
%patch21 -p0 -b .rh1730380~
|
%patch21 -p0 -b .pr92775~
|
||||||
%patch22 -p0 -b .pr86098~
|
%patch22 -p0 -b .pr92950~
|
||||||
%patch23 -p0 -b .pr90139~
|
|
||||||
%patch24 -p0 -b .pr90756~
|
|
||||||
|
|
||||||
%patch30 -p0 -b .rh1668903-1~
|
%patch30 -p0 -b .rh1668903-1~
|
||||||
%patch31 -p0 -b .rh1668903-2~
|
%patch31 -p0 -b .rh1668903-2~
|
||||||
@ -3177,6 +3173,16 @@ fi
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue May 12 2020 Marek Polacek <polacek@redhat.com> 8.3.1-5.1
|
||||||
|
- consider negative edges in cycle detection (#1817991, PR gcov-profile/91601)
|
||||||
|
- fix Fortran debug info for arrays with descriptors (#1655624,
|
||||||
|
PR fortran/92775)
|
||||||
|
- fix wrong code emitted for movv1qi on s390x (#1784758, PR target/92950)
|
||||||
|
|
||||||
|
* Thu Nov 21 2019 Marek Polacek <polacek@redhat.com> 8.3.1-5
|
||||||
|
- update from Fedora gcc-8.3.1-5 (#1747157)
|
||||||
|
- use unspec_volatile for darn (PR target/91481, #1760205, CVE-2019-15847)
|
||||||
|
|
||||||
* Tue Jul 16 2019 Marek Polacek <polacek@redhat.com> 8.3.1-4.5
|
* Tue Jul 16 2019 Marek Polacek <polacek@redhat.com> 8.3.1-4.5
|
||||||
- fix shift count operand printing (#1730380)
|
- fix shift count operand printing (#1730380)
|
||||||
- fix tree-outof-ssa.c ICE with vector types (PR middle-end/90139, #1730454)
|
- fix tree-outof-ssa.c ICE with vector types (PR middle-end/90139, #1730454)
|
||||||
|
Loading…
Reference in New Issue
Block a user