summaryrefslogtreecommitdiff
path: root/sys-devel/gcc/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-04-17 17:53:10 +0100
committerV3n3RiX <venerix@koprulu.sector>2023-04-17 17:53:10 +0100
commit6fe0a08604ce763398dcbeb5fc63d814110f0748 (patch)
treea7ea485084252374fc73b266db2d904813f5efa5 /sys-devel/gcc/files
parent58129875a70f3975f864c0c1e322fe85967688b5 (diff)
gentoo auto-resync : 17:04:2023 - 17:53:10
Diffstat (limited to 'sys-devel/gcc/files')
-rw-r--r--sys-devel/gcc/files/gcc-13.0.1_pre20230409-PR109434-DSE-throw.patch63
-rw-r--r--sys-devel/gcc/files/gcc-13.0.1_pre20230409-PR109462-clang-LocalizationChecker-ranger-any-PHI.patch46
-rw-r--r--sys-devel/gcc/files/gcc-13.0.1_pre20230409-PR109469-SLP-returns-twice.patch66
-rw-r--r--sys-devel/gcc/files/gcc-13.0.1_pre20230409-PR109473-ICE-reduction-epilog.patch58
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