aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2024-02-06 10:22:30 +0100
committerAldy Hernandez <aldyh@redhat.com>2024-02-08 14:21:17 +0100
commitd2d5ef6e22082d945c4d255b44194155680a93bd (patch)
tree46d645caf3fa647d4ff837b3e0ab7fc3bce7a324
parentce915cab745d1ef19a69911d6b89e4fb1bee2644 (diff)
downloadgcc-d2d5ef6e22082d945c4d255b44194155680a93bd.zip
gcc-d2d5ef6e22082d945c4d255b44194155680a93bd.tar.gz
gcc-d2d5ef6e22082d945c4d255b44194155680a93bd.tar.bz2
ranger: Grow BBs in relation oracle as needed [PR113735]
The relation oracle grows the internal vector of SSAs as needed, but due to an oversight was not growing the basic block vector. This fixes the oversight. PR tree-optimization/113735 gcc/testsuite/ChangeLog: * gcc.dg/tree-ssa/pr113735.c: New test. gcc/ChangeLog: * value-relation.cc (equiv_oracle::add_equiv_to_block): Call limit_check().
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr113735.c19
-rw-r--r--gcc/value-relation.cc1
2 files changed, 20 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr113735.c b/gcc/testsuite/gcc.dg/tree-ssa/pr113735.c
new file mode 100644
index 0000000..7b86499
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr113735.c
@@ -0,0 +1,19 @@
+// { dg-do compile { target bitint } }
+// { dg-options "-O1" }
+
+char b;
+void bar (void);
+
+#if __BITINT_MAXWIDTH__ >= 6110
+void
+foo (_BitInt(6110) j)
+{
+ for (;;)
+ {
+ _BitInt(10) k = b % j;
+ for (j = 6; j; --j)
+ if (k)
+ bar ();
+ }
+}
+#endif
diff --git a/gcc/value-relation.cc b/gcc/value-relation.cc
index 27f9ad6..619ee5f 100644
--- a/gcc/value-relation.cc
+++ b/gcc/value-relation.cc
@@ -718,6 +718,7 @@ equiv_oracle::add_equiv_to_block (basic_block bb, bitmap equiv_set)
// Check if this is the first time a block has an equivalence added.
// and create a header block. And set the summary for this block.
+ limit_check (bb);
if (!m_equiv[bb->index])
{
ptr = (equiv_chain *) obstack_alloc (&m_chain_obstack,