ranger: Grow BBs in relation oracle as needed [PR113735]

Message ID 20240206122820.223856-1-aldyh@redhat.com
State Accepted
Headers
Series ranger: Grow BBs in relation oracle as needed [PR113735] |

Checks

Context Check Description
snail/gcc-patch-check success Github commit url

Commit Message

Aldy Hernandez Feb. 6, 2024, 12:28 p.m. UTC
  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

Jakub Jelinek Feb. 7, 2024, 3:30 p.m. UTC | #1
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
  

Patch

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 00000000000..7b864999277
--- /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 27f9ad61c0e..619ee5f0867 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,