diff options
author | V3n3RiX <venerix@koprulu.sector> | 2023-04-17 17:53:10 +0100 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2023-04-17 17:53:10 +0100 |
commit | 6fe0a08604ce763398dcbeb5fc63d814110f0748 (patch) | |
tree | a7ea485084252374fc73b266db2d904813f5efa5 /sys-devel/gcc/files | |
parent | 58129875a70f3975f864c0c1e322fe85967688b5 (diff) |
gentoo auto-resync : 17:04:2023 - 17:53:10
Diffstat (limited to 'sys-devel/gcc/files')
4 files changed, 0 insertions, 233 deletions
diff --git a/sys-devel/gcc/files/gcc-13.0.1_pre20230409-PR109434-DSE-throw.patch b/sys-devel/gcc/files/gcc-13.0.1_pre20230409-PR109434-DSE-throw.patch deleted file mode 100644 index 5d45d8f4e018..000000000000 --- a/sys-devel/gcc/files/gcc-13.0.1_pre20230409-PR109434-DSE-throw.patch +++ /dev/null @@ -1,63 +0,0 @@ -https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=6e3e708dbadaae7b504af7fc4410015624793f02 -https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109434 - -From 6e3e708dbadaae7b504af7fc4410015624793f02 Mon Sep 17 00:00:00 2001 -From: Richard Biener <rguenther@suse.de> -Date: Tue, 11 Apr 2023 15:06:59 +0200 -Subject: [PATCH] tree-optimization/109434 - bogus DSE of throwing call LHS - -The byte tracking of call LHS didn't properly handle possibly -throwing calls correctly which cases bogus DSE and in turn, for the -testcase a bogus uninit diagnostic and (unreliable) wrong-code. - - PR tree-optimization/109434 - * tree-ssa-dse.cc (initialize_ao_ref_for_dse): Properly - handle possibly throwing calls when processing the LHS - and may-defs are not OK. - - * g++.dg/opt/pr109434.C: New testcase. ---- /dev/null -+++ b/gcc/testsuite/g++.dg/opt/pr109434.C -@@ -0,0 +1,28 @@ -+// { dg-do compile } -+// { dg-require-effective-target c++17 } -+// { dg-options "-O2 -Wall" } -+ -+#include <optional> -+#include <stdexcept> -+ -+std::optional<int> foo() -+{ -+ volatile int x = 1; -+ if (x) -+ throw std::runtime_error("haha"); -+ return 42; -+} -+ -+int main() -+{ -+ std::optional<int> optInt; -+ try { -+ // We falsely DSEd the LHS of the call even though foo throws -+ // which results in an uninitialized diagnostic -+ optInt = foo(); -+ } catch (...) { -+ return optInt.has_value(); -+ } -+ std::optional<double> optDbl{optInt}; -+ return optDbl ? optDbl.value () : 2.0; -+} ---- a/gcc/tree-ssa-dse.cc -+++ b/gcc/tree-ssa-dse.cc -@@ -179,7 +179,8 @@ initialize_ao_ref_for_dse (gimple *stmt, ao_ref *write, bool may_def_ok = false) - } - if (tree lhs = gimple_get_lhs (stmt)) - { -- if (TREE_CODE (lhs) != SSA_NAME) -+ if (TREE_CODE (lhs) != SSA_NAME -+ && (may_def_ok || !stmt_could_throw_p (cfun, stmt))) - { - ao_ref_init (write, lhs); - return true; --- -2.31.1 diff --git a/sys-devel/gcc/files/gcc-13.0.1_pre20230409-PR109462-clang-LocalizationChecker-ranger-any-PHI.patch b/sys-devel/gcc/files/gcc-13.0.1_pre20230409-PR109462-clang-LocalizationChecker-ranger-any-PHI.patch deleted file mode 100644 index 2b5ea5ad826a..000000000000 --- a/sys-devel/gcc/files/gcc-13.0.1_pre20230409-PR109462-clang-LocalizationChecker-ranger-any-PHI.patch +++ /dev/null @@ -1,46 +0,0 @@ -https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109462 -https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=24af552876eff707f75d30d3f0f0e7a5d62dd857 - -From 24af552876eff707f75d30d3f0f0e7a5d62dd857 Mon Sep 17 00:00:00 2001 -From: Andrew MacLeod <amacleod@redhat.com> -Date: Tue, 11 Apr 2023 17:29:03 -0400 -Subject: [PATCH] Don't use ANY PHI equivalences in range-on-entry. - -PR 108139 dissallows PHI equivalencies in the on-entry calculator, but -it was only checking if the equivlaence was a PHI. In this case, NAME -itself is a PHI with an equivlaence caused by an undefined value, so we -also need to check that case. Unfortunately this un-fixes 101912. - - PR tree-optimization/109462 - gcc/ - * gimple-range-cache.cc (ranger_cache::fill_block_cache): Don't - check for equivalences if NAME is a phi node. - - gcc/testsuite/ - * gcc.dg/uninit-pr101912.c: XFAIL the warning. ---- a/gcc/gimple-range-cache.cc -+++ b/gcc/gimple-range-cache.cc -@@ -1218,7 +1218,9 @@ ranger_cache::fill_block_cache (tree name, basic_block bb, basic_block def_bb) - fprintf (dump_file, "\n"); - } - // See if any equivalences can refine it. -- if (m_oracle) -+ // PR 109462, like 108139 below, a one way equivalence introduced -+ // by a PHI node can also be through the definition side. Disallow it. -+ if (m_oracle && !is_a<gphi *> (SSA_NAME_DEF_STMT (name))) - { - tree equiv_name; - relation_kind rel; ---- a/gcc/testsuite/gcc.dg/uninit-pr101912.c -+++ b/gcc/testsuite/gcc.dg/uninit-pr101912.c -@@ -11,7 +11,7 @@ tzloadbody (void) - for (int i = 0; i < n; i++) - { - int corr = getint (); -- if (corr < 1 || (corr == 1 && !(leapcnt == 0 || (prevcorr < corr ? corr == prevcorr + 1 : (corr == prevcorr || corr == prevcorr - 1))))) /* { dg-bogus "uninitialized" } */ -+ if (corr < 1 || (corr == 1 && !(leapcnt == 0 || (prevcorr < corr ? corr == prevcorr + 1 : (corr == prevcorr || corr == prevcorr - 1))))) /* { dg-bogus "uninitialized" "pr101912" { xfail *-*-* } } */ - return -1; - - prevcorr = corr; --- -2.31.1 diff --git a/sys-devel/gcc/files/gcc-13.0.1_pre20230409-PR109469-SLP-returns-twice.patch b/sys-devel/gcc/files/gcc-13.0.1_pre20230409-PR109469-SLP-returns-twice.patch deleted file mode 100644 index 7d45c9e60af8..000000000000 --- a/sys-devel/gcc/files/gcc-13.0.1_pre20230409-PR109469-SLP-returns-twice.patch +++ /dev/null @@ -1,66 +0,0 @@ -https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109469 -https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=2d7ad38707e1fd71193d440198cc0726092b9015 - -From 2d7ad38707e1fd71193d440198cc0726092b9015 Mon Sep 17 00:00:00 2001 -From: Richard Biener <rguenther@suse.de> -Date: Tue, 11 Apr 2023 16:06:12 +0200 -Subject: [PATCH] tree-optimization/109469 - SLP with returns-twice region - start - -The following avoids an SLP region starting with a returns-twice -call where we cannot insert stmts at the head. - - PR tree-optimization/109469 - * tree-vect-slp.cc (vect_slp_function): Skip region starts with - a returns-twice call. - - * gcc.dg/torture/pr109469.c: New testcase. ---- /dev/null -+++ b/gcc/testsuite/gcc.dg/torture/pr109469.c -@@ -0,0 +1,15 @@ -+/* { dg-do compile } */ -+ -+__attribute__((returns_twice)) int foo(); -+ -+struct xio myproc; -+struct xio { -+ void (*read_proc)(); -+ void (*write_proc)(); -+}; -+ -+void dummy_write_proc() { -+ switch (foo()) -+ default: -+ myproc.read_proc = myproc.write_proc = dummy_write_proc; -+} ---- a/gcc/tree-vect-slp.cc -+++ b/gcc/tree-vect-slp.cc -@@ -7671,10 +7671,23 @@ vect_slp_function (function *fun) - { - r |= vect_slp_bbs (bbs, NULL); - bbs.truncate (0); -- bbs.quick_push (bb); - } -- else -- bbs.safe_push (bb); -+ -+ /* We need to be able to insert at the head of the region which -+ we cannot for region starting with a returns-twice call. */ -+ if (bbs.is_empty ()) -+ if (gcall *first = safe_dyn_cast <gcall *> (first_stmt (bb))) -+ if (gimple_call_flags (first) & ECF_RETURNS_TWICE) -+ { -+ if (dump_enabled_p ()) -+ dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location, -+ "skipping bb%d as start of region as it " -+ "starts with returns-twice call\n", -+ bb->index); -+ continue; -+ } -+ -+ bbs.safe_push (bb); - - /* When we have a stmt ending this block and defining a - value we have to insert on edges when inserting after it for --- -2.31.1 diff --git a/sys-devel/gcc/files/gcc-13.0.1_pre20230409-PR109473-ICE-reduction-epilog.patch b/sys-devel/gcc/files/gcc-13.0.1_pre20230409-PR109473-ICE-reduction-epilog.patch deleted file mode 100644 index cab26653a09d..000000000000 --- a/sys-devel/gcc/files/gcc-13.0.1_pre20230409-PR109473-ICE-reduction-epilog.patch +++ /dev/null @@ -1,58 +0,0 @@ -https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=df7f55cb2ae550adeda339a57b657ebe1ad39367 -https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109473 - -From df7f55cb2ae550adeda339a57b657ebe1ad39367 Mon Sep 17 00:00:00 2001 -From: Richard Biener <rguenther@suse.de> -Date: Wed, 12 Apr 2023 10:22:08 +0200 -Subject: [PATCH] tree-optimization/109473 - ICE with reduction epilog - adjustment op - -The following makes sure to carry out the reduction epilog adjustment -in the original computation type which for pointers is an unsigned -integer type. There's a similar issue with signed vs. unsigned ops -and overflow which is fixed by this as well. - - PR tree-optimization/109473 - * tree-vect-loop.cc (vect_create_epilog_for_reduction): - Convert scalar result to the computation type before performing - the reduction adjustment. - - * gcc.dg/vect/pr109473.c: New testcase. ---- /dev/null -+++ b/gcc/testsuite/gcc.dg/vect/pr109473.c -@@ -0,0 +1,16 @@ -+/* { dg-do compile } */ -+/* { dg-additional-options "-O" } */ -+ -+struct spa_buffer { -+ __UINT32_TYPE__ *metas; -+}; -+void do_port_use_buffers(struct spa_buffer **buffers, void *endptr, void *mem) -+{ -+ for (int i = 0; i < 128; i++) -+ { -+ for (int j = 0; j < 128; j++) -+ endptr = (void *)((__UINTPTR_TYPE__)endptr + buffers[i]->metas[j]); -+ if (endptr > mem) -+ return; -+ } -+} ---- a/gcc/tree-vect-loop.cc -+++ b/gcc/tree-vect-loop.cc -@@ -6297,9 +6297,12 @@ vect_create_epilog_for_reduction (loop_vec_info loop_vinfo, - { - new_temp = scalar_results[0]; - gcc_assert (TREE_CODE (TREE_TYPE (adjustment_def)) != VECTOR_TYPE); -- adjustment_def = gimple_convert (&stmts, scalar_type, adjustment_def); -- new_temp = gimple_build (&stmts, code, scalar_type, -+ adjustment_def = gimple_convert (&stmts, TREE_TYPE (vectype), -+ adjustment_def); -+ new_temp = gimple_convert (&stmts, TREE_TYPE (vectype), new_temp); -+ new_temp = gimple_build (&stmts, code, TREE_TYPE (vectype), - new_temp, adjustment_def); -+ new_temp = gimple_convert (&stmts, scalar_type, new_temp); - } - - epilog_stmt = gimple_seq_last_stmt (stmts); --- -2.31.1 |