diff --git a/.gitignore b/.gitignore index 45a5487..a85ef77 100644 --- a/.gitignore +++ b/.gitignore @@ -89,3 +89,4 @@ /gcc-13.0.1-20230127.tar.xz /newlib-cygwin-9e09d6ed83cce4777a5950412647ccc603040409.tar.xz /gcc-13.0.1-20230208.tar.xz +/gcc-13.0.1-20230215.tar.xz diff --git a/gcc.spec b/gcc.spec index b074033..14d4dc1 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1,5 +1,5 @@ -%global DATE 20230208 -%global gitrev 88db57a1779f3c620653a2a791e54301645befbf +%global DATE 20230215 +%global gitrev 76b508266ac7460db2e4fe9eba298520ae1eda70 %global gcc_version 13.0.1 %global gcc_major 13 # Note, gcc_release must be integer, if you want to add suffixes to @@ -136,7 +136,7 @@ Summary: Various compilers (C, C++, Objective-C, ...) Name: gcc Version: %{gcc_version} -Release: %{gcc_release}.3%{?dist} +Release: %{gcc_release}.4%{?dist} # libgcc, libgfortran, libgomp, libstdc++ and crtstuff have # GCC Runtime Exception. License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD @@ -286,8 +286,6 @@ Patch8: gcc13-no-add-needed.patch Patch9: gcc13-Wno-format-security.patch Patch10: gcc13-rh1574936.patch Patch11: gcc13-d-shared-libphobos.patch -Patch12: gcc13-pr108692.patch -Patch13: gcc13-pr108316.patch Patch50: isl-rh2155127.patch @@ -864,8 +862,6 @@ so that there cannot be any synchronization problems. %patch10 -p0 -b .rh1574936~ %endif %patch11 -p0 -b .d-shared-libphobos~ -%patch12 -p0 -b .pr108692~ -%patch13 -p0 -b .pr108316~ %patch50 -p0 -b .rh2155127~ touch -r isl-0.24/m4/ax_prog_cxx_for_build.m4 isl-0.24/m4/ax_prog_cc_for_build.m4 @@ -3462,6 +3458,24 @@ end %endif %changelog +* Wed Feb 15 2023 Jakub Jelinek 13.0.1-0.4 +- update from trunk + - PRs analyzer/108704, analyzer/108733, analyzer/108745, c++/106675, + c++/107079, c++/108698, d/107469, fortran/69636, fortran/103259, + fortran/103475, fortran/103779, fortran/107424, fortran/108512, + ipa/108605, ipa/108679, libstdc++/103934, middle-end/26854, + middle-end/106080, rtl-optimization/108681, sanitizer/108777, + target/96373, target/100758, target/103109, target/108102, + target/108516, target/108723, target/108738, target/108787, + target/108790, testsuite/106120, tree-optimization/28614, + tree-optimization/96921, tree-optimization/106722, + tree-optimization/107561, tree-optimization/108316, + tree-optimization/108355, tree-optimization/108520, + tree-optimization/108571, tree-optimization/108684, + tree-optimization/108687, tree-optimization/108688, + tree-optimization/108691, tree-optimization/108692, + tree-optimization/108724, tree-optimization/108782 + * Wed Feb 8 2023 Jakub Jelinek 13.0.1-0.3 - update from trunk - PRs analyzer/108616, analyzer/108633, analyzer/108661, c++/101071, diff --git a/gcc13-pr108316.patch b/gcc13-pr108316.patch deleted file mode 100644 index 61947b9..0000000 --- a/gcc13-pr108316.patch +++ /dev/null @@ -1,66 +0,0 @@ -vect: Check gather/scatter offset types [PR108316] - -The gather/scatter support can over-widen an offset if the target -requires it, but this relies on using a pattern sequence to add -the widening conversion. That failed in the testcase because an -earlier pattern (bool) took priority. - -I think we should allow patterns to be applied to other patterns, -but that's quite an invasive change and isn't suitable for stage 4. -This patch instead punts if the offset type doesn't match the -expected one. - -If we switched to using the SLP representation for everything, -we would probably handle both patterns by rewriting the graph, -which should be much easier. - -gcc/ - PR tree-optimization/108316 - * tree-vect-stmts.cc (get_load_store_type): When using - internal functions for gather/scatter, make sure that the type - of the offset argument is consistent with the offset vector type. - -gcc/testsuite/ - PR tree-optimization/108316 - * gcc.dg/vect/pr108316.c: New test. - ---- gcc/tree-vect-stmts.cc -+++ gcc/tree-vect-stmts.cc -@@ -2474,6 +2474,23 @@ get_load_store_type (vec_info *vinfo, stmt_vec_info stmt_info, - *memory_access_type = VMAT_GATHER_SCATTER; - if (!vect_check_gather_scatter (stmt_info, loop_vinfo, gs_info)) - gcc_unreachable (); -+ /* When using internal functions, we rely on pattern recognition -+ to convert the type of the offset to the type that the target -+ requires, with the result being a call to an internal function. -+ If that failed for some reason (e.g. because another pattern -+ took priority), just handle cases in which the offset already -+ has the right type. */ -+ else if (gs_info->ifn != IFN_LAST -+ && !is_gimple_call (stmt_info->stmt) -+ && !tree_nop_conversion_p (TREE_TYPE (gs_info->offset), -+ TREE_TYPE (gs_info->offset_vectype))) -+ { -+ if (dump_enabled_p ()) -+ dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location, -+ "%s offset requires a conversion\n", -+ vls_type == VLS_LOAD ? "gather" : "scatter"); -+ return false; -+ } - else if (!vect_is_simple_use (gs_info->offset, vinfo, - &gs_info->offset_dt, - &gs_info->offset_vectype)) ---- gcc/testsuite/gcc.dg/vect/pr108316.c -+++ gcc/testsuite/gcc.dg/vect/pr108316.c -@@ -0,0 +1,11 @@ -+/* { dg-do compile } */ -+/* { dg-options "-O3" } */ -+ -+extern _Bool a[]; -+ -+void -+foo (short i, int b[][64][1]) -+{ -+ for (; i < 64; i += 4) -+ a[i] = b[0][i] != 0; -+} diff --git a/gcc13-pr108692.patch b/gcc13-pr108692.patch deleted file mode 100644 index 3ee8aa8..0000000 --- a/gcc13-pr108692.patch +++ /dev/null @@ -1,74 +0,0 @@ -2023-02-07 Jakub Jelinek - - PR tree-optimization/108692 - * tree-vect-patterns.cc (vect_widened_op_tree): If rhs_code is - widened_code which is different from code, don't call - vect_look_through_possible_promotion but instead just check op is - SSA_NAME with integral type for which vect_is_simple_use is true - and call set_op on this_unprom. - - * gcc.dg/pr108692.c: New test. - ---- gcc/tree-vect-patterns.cc.jj 2023-01-02 09:32:45.635949342 +0100 -+++ gcc/tree-vect-patterns.cc 2023-02-07 15:27:33.214608837 +0100 -@@ -601,7 +601,25 @@ vect_widened_op_tree (vec_info *vinfo, s - if (shift_p && i == 1) - return 0; - -- if (!vect_look_through_possible_promotion (vinfo, op, this_unprom)) -+ if (rhs_code != code) -+ { -+ /* If rhs_code is widened_code, don't look through further -+ possible promotions, there is a promotion already embedded -+ in the WIDEN_*_EXPR. */ -+ if (TREE_CODE (op) != SSA_NAME -+ || !INTEGRAL_TYPE_P (TREE_TYPE (op))) -+ return 0; -+ -+ stmt_vec_info def_stmt_info; -+ gimple *def_stmt; -+ vect_def_type dt; -+ if (!vect_is_simple_use (op, vinfo, &dt, &def_stmt_info, -+ &def_stmt)) -+ return 0; -+ this_unprom->set_op (op, dt, NULL); -+ } -+ else if (!vect_look_through_possible_promotion (vinfo, op, -+ this_unprom)) - return 0; - - if (TYPE_PRECISION (this_unprom->type) == TYPE_PRECISION (type)) ---- gcc/testsuite/gcc.dg/pr108692.c.jj 2023-02-07 15:47:20.329076264 +0100 -+++ gcc/testsuite/gcc.dg/pr108692.c 2023-02-07 15:46:15.623031983 +0100 -@@ -0,0 +1,31 @@ -+/* PR tree-optimization/108692 */ -+/* { dg-do compile } */ -+/* { dg-options "-O2 -ftree-vectorize" } */ -+ -+__attribute__((noipa)) int -+foo (signed char *x, signed char *y, int n) -+{ -+ int i, r = 0; -+ signed char a, b; -+ for (i = 0; i < n; i++) -+ { -+ a = x[i]; -+ b = y[i]; -+ int c = (unsigned char) a - (unsigned char) b; -+ r = r + (c < 0 ? -c : c); -+ } -+ return r; -+} -+ -+int -+main () -+{ -+ signed char x[64] = {}, y[64] = {}; -+ if (__CHAR_BIT__ != 8 || __SIZEOF_INT__ != 4) -+ return 0; -+ x[32] = -128; -+ y[32] = 1; -+ if (foo (x, y, 64) != 127) -+ __builtin_abort (); -+ return 0; -+} diff --git a/sources b/sources index a5a3045..b7af964 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ -SHA512 (gcc-13.0.1-20230208.tar.xz) = 55a0d2b5ec00fa83c96b4df9fff77d93020aad808682d9c1bd87f7aed8ecc259b044ae800957ff6fa42c8f6e77cbb2f2cd2f83ff824f584de10bdd1caf201f40 +SHA512 (gcc-13.0.1-20230215.tar.xz) = 630b739424128b17bbde6826164f01fff7a639598881f63c95921168bb35cc7393ceaa63f423bdfb5692ab8ad5a30b99d5681837e05f1b013671373adb2b0b71 SHA512 (isl-0.24.tar.bz2) = aab3bddbda96b801d0f56d2869f943157aad52a6f6e6a61745edd740234c635c38231af20bc3f1a08d416a5e973a90e18249078ed8e4ae2f1d5de57658738e95 SHA512 (newlib-cygwin-9e09d6ed83cce4777a5950412647ccc603040409.tar.xz) = bef3fa04f7b1a915fc1356ebed114698b5cc835e9fa04b0becff05a9efc76c59fb376482990873d222d7acdcfee3c4f30f5a4cb7f3be1f291f1fa5f1c7a9d983 SHA512 (nvptx-tools-472b6e78b3ba918d727698f79911360b7c808247.tar.xz) = 91690321bf96460c3b3e229199a6f752ed1c27c6933d4345dc7e237dc068f604ad211bb3a0373e14d4f332bee05b6227d6933e14e0b475ffdfea8b511ab735e6