public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc(refs/vendors/redhat/heads/gcc-9-branch)] IPA-CP: Remove bogus static keyword (PR 92971)
@ 2020-01-23 10:18 Jakub Jelinek
0 siblings, 0 replies; 2+ messages in thread
From: Jakub Jelinek @ 2020-01-23 10:18 UTC (permalink / raw)
To: gcc-cvs
https://gcc.gnu.org/g:c1f78a17950693addd74647bafafe3cf956e683e
commit c1f78a17950693addd74647bafafe3cf956e683e
Author: Martin Jambor <mjambor@suse.cz>
Date: Fri Jan 10 20:30:56 2020 +0100
IPA-CP: Remove bogus static keyword (PR 92971)
2020-01-10 Martin Jambor <mjambor@suse.cz>
Backport from mainline
2019-12-17 Martin Jambor <mjambor@suse.cz>
PR ipa/92971
* Ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Fix
definition of values, release memory on exit.
testsuite/
* gcc.dg/ipa/ipcp-agg-12.c: New test.
Diff:
---
gcc/ChangeLog | 9 ++++++
gcc/ipa-cp.c | 5 ++--
gcc/testsuite/ChangeLog | 8 +++++
gcc/testsuite/gcc.dg/ipa/ipcp-agg-12.c | 53 ++++++++++++++++++++++++++++++++++
4 files changed, 73 insertions(+), 2 deletions(-)
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 283417e..078fd4d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2020-01-10 Martin Jambor <mjambor@suse.cz>
+
+ Backport from mainline
+ 2019-12-17 Martin Jambor <mjambor@suse.cz>
+
+ PR ipa/92971
+ * Ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Fix
+ definition of values, release memory on exit.
+
2020-01-10 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
Backport from trunk
diff --git a/gcc/ipa-cp.c b/gcc/ipa-cp.c
index d414632..36ec54d 100644
--- a/gcc/ipa-cp.c
+++ b/gcc/ipa-cp.c
@@ -4452,7 +4452,6 @@ cgraph_edge_brings_all_agg_vals_for_node (struct cgraph_edge *cs,
for (i = 0; i < count; i++)
{
- static vec<ipa_agg_jf_item> values = vec<ipa_agg_jf_item>();
struct ipcp_param_lattices *plats;
bool interesting = false;
for (struct ipa_agg_replacement_value *av = aggval; av; av = av->next)
@@ -4468,7 +4467,8 @@ cgraph_edge_brings_all_agg_vals_for_node (struct cgraph_edge *cs,
if (plats->aggs_bottom)
return false;
- values = intersect_aggregates_with_edge (cs, i, values);
+ vec<ipa_agg_jf_item> values
+ = intersect_aggregates_with_edge (cs, i, vNULL);
if (!values.exists ())
return false;
@@ -4492,6 +4492,7 @@ cgraph_edge_brings_all_agg_vals_for_node (struct cgraph_edge *cs,
return false;
}
}
+ values.release ();
}
return true;
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 7699e74..63e165f 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2020-01-10 Martin Jambor <mjambor@suse.cz>
+
+ Backport from mainline
+ 2019-12-17 Martin Jambor <mjambor@suse.cz>
+
+ PR ipa/92971
+ * gcc.dg/ipa/ipcp-agg-12.c: New test.
+
2020-01-10 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
Backport from trunk
diff --git a/gcc/testsuite/gcc.dg/ipa/ipcp-agg-12.c b/gcc/testsuite/gcc.dg/ipa/ipcp-agg-12.c
new file mode 100644
index 0000000..5c57913
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/ipa/ipcp-agg-12.c
@@ -0,0 +1,53 @@
+/* { dg-do compile } */
+/* { dg-options "-O3 -fno-ipa-sra -fdump-ipa-cp-details --param=ipa-cp-eval-threshold=2" } */
+
+struct S
+{
+ int a, b, c;
+};
+
+int __attribute__((noinline)) foo (int i, struct S s);
+int __attribute__((noinline)) bar (int i, struct S s);
+int __attribute__((noinline)) baz (int i, struct S s);
+
+
+int __attribute__((noinline))
+bar (int i, struct S s)
+{
+ return baz (i, s);
+}
+
+int __attribute__((noinline))
+baz (int i, struct S s)
+{
+ return foo (i, s);
+}
+
+int __attribute__((noinline))
+foo (int i, struct S s)
+{
+ if (i == 2)
+ return 0;
+ else
+ return s.b * s.b + bar (i - 1, s);
+}
+
+volatile int g;
+
+void entry (void)
+{
+ struct S s;
+ s.b = 4;
+ g = bar (g, s);
+}
+
+
+void entry2 (void)
+{
+ struct S s;
+ s.b = 6;
+ g = baz (g, s);
+}
+
+
+/* { dg-final { scan-ipa-dump-times "adding an extra caller" 2 "cp" } } */
^ permalink raw reply [flat|nested] 2+ messages in thread
* [gcc(refs/vendors/redhat/heads/gcc-9-branch)] IPA-CP: Remove bogus static keyword (PR 92971)
@ 2020-01-23 10:20 Jakub Jelinek
0 siblings, 0 replies; 2+ messages in thread
From: Jakub Jelinek @ 2020-01-23 10:20 UTC (permalink / raw)
To: gcc-cvs
https://gcc.gnu.org/g:b04e6eafd88706cbff32dfe192cd9e04df63c282
commit b04e6eafd88706cbff32dfe192cd9e04df63c282
Author: Martin Jambor <mjambor@suse.cz>
Date: Fri Jan 10 20:30:56 2020 +0100
IPA-CP: Remove bogus static keyword (PR 92971)
2020-01-10 Martin Jambor <mjambor@suse.cz>
Backport from mainline
2019-12-17 Martin Jambor <mjambor@suse.cz>
PR ipa/92971
* Ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Fix
definition of values, release memory on exit.
testsuite/
* gcc.dg/ipa/ipcp-agg-12.c: New test.
From-SVN: r280131
Diff:
---
gcc/ChangeLog | 9 ++++++
gcc/ipa-cp.c | 5 ++--
gcc/testsuite/ChangeLog | 8 +++++
gcc/testsuite/gcc.dg/ipa/ipcp-agg-12.c | 53 ++++++++++++++++++++++++++++++++++
4 files changed, 73 insertions(+), 2 deletions(-)
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1e4ff7e..614fdc1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2020-01-10 Martin Jambor <mjambor@suse.cz>
+
+ Backport from mainline
+ 2019-12-17 Martin Jambor <mjambor@suse.cz>
+
+ PR ipa/92971
+ * Ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Fix
+ definition of values, release memory on exit.
+
2020-01-10 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
Backport from trunk
diff --git a/gcc/ipa-cp.c b/gcc/ipa-cp.c
index d414632..36ec54d 100644
--- a/gcc/ipa-cp.c
+++ b/gcc/ipa-cp.c
@@ -4452,7 +4452,6 @@ cgraph_edge_brings_all_agg_vals_for_node (struct cgraph_edge *cs,
for (i = 0; i < count; i++)
{
- static vec<ipa_agg_jf_item> values = vec<ipa_agg_jf_item>();
struct ipcp_param_lattices *plats;
bool interesting = false;
for (struct ipa_agg_replacement_value *av = aggval; av; av = av->next)
@@ -4468,7 +4467,8 @@ cgraph_edge_brings_all_agg_vals_for_node (struct cgraph_edge *cs,
if (plats->aggs_bottom)
return false;
- values = intersect_aggregates_with_edge (cs, i, values);
+ vec<ipa_agg_jf_item> values
+ = intersect_aggregates_with_edge (cs, i, vNULL);
if (!values.exists ())
return false;
@@ -4492,6 +4492,7 @@ cgraph_edge_brings_all_agg_vals_for_node (struct cgraph_edge *cs,
return false;
}
}
+ values.release ();
}
return true;
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 659203f..d4b0344 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2020-01-10 Martin Jambor <mjambor@suse.cz>
+
+ Backport from mainline
+ 2019-12-17 Martin Jambor <mjambor@suse.cz>
+
+ PR ipa/92971
+ * gcc.dg/ipa/ipcp-agg-12.c: New test.
+
2020-01-10 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
Backport from trunk
diff --git a/gcc/testsuite/gcc.dg/ipa/ipcp-agg-12.c b/gcc/testsuite/gcc.dg/ipa/ipcp-agg-12.c
new file mode 100644
index 0000000..5c57913
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/ipa/ipcp-agg-12.c
@@ -0,0 +1,53 @@
+/* { dg-do compile } */
+/* { dg-options "-O3 -fno-ipa-sra -fdump-ipa-cp-details --param=ipa-cp-eval-threshold=2" } */
+
+struct S
+{
+ int a, b, c;
+};
+
+int __attribute__((noinline)) foo (int i, struct S s);
+int __attribute__((noinline)) bar (int i, struct S s);
+int __attribute__((noinline)) baz (int i, struct S s);
+
+
+int __attribute__((noinline))
+bar (int i, struct S s)
+{
+ return baz (i, s);
+}
+
+int __attribute__((noinline))
+baz (int i, struct S s)
+{
+ return foo (i, s);
+}
+
+int __attribute__((noinline))
+foo (int i, struct S s)
+{
+ if (i == 2)
+ return 0;
+ else
+ return s.b * s.b + bar (i - 1, s);
+}
+
+volatile int g;
+
+void entry (void)
+{
+ struct S s;
+ s.b = 4;
+ g = bar (g, s);
+}
+
+
+void entry2 (void)
+{
+ struct S s;
+ s.b = 6;
+ g = baz (g, s);
+}
+
+
+/* { dg-final { scan-ipa-dump-times "adding an extra caller" 2 "cp" } } */
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-01-23 10:20 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-23 10:18 [gcc(refs/vendors/redhat/heads/gcc-9-branch)] IPA-CP: Remove bogus static keyword (PR 92971) Jakub Jelinek
2020-01-23 10:20 Jakub Jelinek
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).