ranger: Grow BBs in relation oracle as needed [PR113735]
Checks
Commit Message
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.
OK for trunk?
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().
---
gcc/testsuite/gcc.dg/tree-ssa/pr113735.c | 19 +++++++++++++++++++
gcc/value-relation.cc | 1 +
2 files changed, 20 insertions(+)
create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/pr113735.c
Comments
On Tue, Feb 06, 2024 at 01:28:06PM +0100, Aldy Hernandez wrote:
> 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.
>
> OK for trunk?
>
> 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().
LGTM.
Jakub
new file mode 100644
@@ -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
@@ -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,