From 7a880b1a75c6cdeed91e130b7eda794ae050069a Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Fri, 26 May 2017 15:21:59 +0200 Subject: [PATCH] 7.1.1-2 --- .gitignore | 1 + gcc.spec | 21 +++++++++++-- gcc7-pr80725.patch | 73 ++++++++++++++++++++++++++++++++++++++++++++++ sources | 2 +- 4 files changed, 93 insertions(+), 4 deletions(-) create mode 100644 gcc7-pr80725.patch diff --git a/.gitignore b/.gitignore index 419e389..ea3989e 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,4 @@ /gcc-7.0.1-20170421.tar.bz2 /gcc-7.0.1-20170425.tar.bz2 /gcc-7.1.1-20170503.tar.bz2 +/gcc-7.1.1-20170526.tar.bz2 diff --git a/gcc.spec b/gcc.spec index ab21ec4..79ac04a 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1,10 +1,10 @@ -%global DATE 20170503 -%global SVNREV 247535 +%global DATE 20170526 +%global SVNREV 248505 %global gcc_version 7.1.1 %global gcc_major 7 # 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 1 +%global gcc_release 2 %global nvptx_tools_gitrev c28050f60193b3b95a18866a96f03334e874e78f %global nvptx_newlib_gitrev aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24 %global _unpackaged_files_terminate_build 0 @@ -232,6 +232,7 @@ Patch8: gcc7-no-add-needed.patch Patch9: gcc7-aarch64-async-unw-tables.patch Patch10: gcc7-foffload-default.patch Patch11: gcc7-Wno-format-security.patch +Patch12: gcc7-pr80725.patch Patch1000: nvptx-tools-no-ptxas.patch Patch1001: nvptx-tools-build.patch @@ -821,6 +822,7 @@ package or when debugging this package. %patch9 -p0 -b .aarch64-async-unw-tables~ %patch10 -p0 -b .foffload-default~ %patch11 -p0 -b .Wno-format-security~ +%patch12 -p0 -b .pr80725~ cd nvptx-tools-%{nvptx_tools_gitrev} %patch1000 -p1 -b .nvptx-tools-no-ptxas~ @@ -3238,6 +3240,19 @@ fi %endif %changelog +* Fri May 26 2017 Jakub Jelinek 7.1.1-2 +- update from the 7 branch + - PRs ada/80626, ada/80784, documentation/50642, fortran/78659, + fortran/80121, fortran/80333, fortran/80392, fortran/80484, + fortran/80741, fortran/80752, go/64238, libgfortran/80333, + libgfortran/80727, libgfortran/80741, libstdc++/78939, libstdc++/80478, + libstdc++/80761, libstdc++/80796, middle-end/80539, middle-end/80809, + middle-end/80853, rtl-optimization/80754, sanitizer/80659, + sanitizer/80875, target/68163, target/79027, target/79202, + target/79203, target/80090, target/80510, target/80671, target/80706, + target/80799, tree-optimization/80453, tree-optimization/80492 +- fix s390 indirect_jump reloading (#1450353, PR target/80725) + * Wed May 3 2017 Jakub Jelinek 7.1.1-1 - update from the 7 branch - GCC 7.1 release diff --git a/gcc7-pr80725.patch b/gcc7-pr80725.patch new file mode 100644 index 0000000..47f992d --- /dev/null +++ b/gcc7-pr80725.patch @@ -0,0 +1,73 @@ +2017-05-24 Andreas Krebbel + + PR target/80725 + * config/s390/s390.c (s390_check_qrst_address): Check incoming + address against address_operand predicate. + * config/s390/s390.md ("*indirect_jump"): Swap alternatives. + + * gcc.target/s390/pr80725.c: New test. + +--- gcc/config/s390/s390.c (revision 248406) ++++ gcc/config/s390/s390.c (revision 248407) +@@ -3102,6 +3102,9 @@ s390_check_qrst_address (char c, rtx op, + struct s390_address addr; + bool decomposed = false; + ++ if (!address_operand (op, GET_MODE (op))) ++ return 0; ++ + /* This check makes sure that no symbolic address (except literal + pool references) are accepted by the R or T constraints. */ + if (s390_loadrelative_operand_p (op, NULL, NULL)) +--- gcc/config/s390/s390.md (revision 248406) ++++ gcc/config/s390/s390.md (revision 248407) +@@ -9660,14 +9660,16 @@ (define_expand "indirect_jump" + operands[0] = force_reg (Pmode, operands[0]); + }) + ++; The first constraint must be an "extra address constraint" in order ++; to trigger address reloading in LRA/reload + (define_insn "*indirect_jump" + [(set (pc) +- (match_operand 0 "address_operand" "a,ZR"))] ++ (match_operand 0 "address_operand" "ZR,a"))] + "" + "@ +- br\t%0 +- b\t%a0" +- [(set_attr "op_type" "RR,RX") ++ b\t%a0 ++ br\t%0" ++ [(set_attr "op_type" "RX,RR") + (set_attr "type" "branch") + (set_attr "atype" "agen") + (set_attr "cpu_facility" "*")]) +--- gcc/testsuite/gcc.target/s390/pr80725.c (nonexistent) ++++ gcc/testsuite/gcc.target/s390/pr80725.c (revision 248407) +@@ -0,0 +1,26 @@ ++/* Regression test for PR/80725. */ ++ ++/* { dg-do compile } */ ++/* { dg-options "-O2 -march=zEC12" } */ ++ ++int a, e; ++const char b; ++char c; ++const int d; ++void bar (short); ++ ++void ++foo (int x, int y) ++{ ++ long f = d; ++ short g = 0; ++ while (e) ++ while (a < x) ++ { ++ if (y) ++ goto *d; ++ g = b | b + g; ++ bar (g); ++ c = (char) (long) foo; ++ } ++} diff --git a/sources b/sources index d0f3d1c..838bc80 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (gcc-7.1.1-20170503.tar.bz2) = cf8992212cd213732345808811abeb4961759db56b0549dc67f2e1274edc6c232fa8e563c767f23e557ce253edd82d5b56e6a83082cd8796eb3bd63d6828b377 +SHA512 (gcc-7.1.1-20170526.tar.bz2) = 988af807ca2ea9c194a8e172eee6b596d948ba64979ed9b0d1c96cb2513b891ffa786e6e1a42a75cedf4ba0c16d04ad95663cf7564c03956dd3e86ccab8e6d57 SHA512 (nvptx-newlib-aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24.tar.bz2) = 38f97c9297ad108568352a4d28277455a3c01fd8b7864e798037e5006b6f757022e874bbf3f165775fe3b873781bc108137bbeb42dd5ed3c7d3e6747746fa918 SHA512 (nvptx-tools-c28050f60193b3b95a18866a96f03334e874e78f.tar.bz2) = 95b577a06a93bb044dbc8033e550cb36bcf2ab2687da030a7318cdc90e7467ed49665e247dcafb5ff4a7e92cdc264291d19728bd17fab902fb64b22491269330