diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2024-02-06 10:22:30 +0100 |
---|---|---|
committer | Aldy Hernandez <aldyh@redhat.com> | 2024-02-08 14:21:17 +0100 |
commit | d2d5ef6e22082d945c4d255b44194155680a93bd (patch) | |
tree | 46d645caf3fa647d4ff837b3e0ab7fc3bce7a324 | |
parent | ce915cab745d1ef19a69911d6b89e4fb1bee2644 (diff) | |
download | gcc-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.c | 19 | ||||
-rw-r--r-- | gcc/value-relation.cc | 1 |
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, |