mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-19 21:50:19 +08:00
cse.c (cse_basic_block): Fixup hash flushing loop so we do not accidently walk into the free list.
* cse.c (cse_basic_block): Fixup hash flushing loop so we do not accidently walk into the free list. Comment how that can happen. (invalidate): Fix indentation. From-SVN: r23122
This commit is contained in:
parent
748f2a2298
commit
925be47cd5
@ -1,3 +1,9 @@
|
||||
Fri Oct 16 08:13:46 1998 David S. Miller <davem@pierdol.cobaltnet.com>
|
||||
|
||||
* cse.c (cse_basic_block): Fixup hash flushing loop so we do not
|
||||
accidently walk into the free list. Comment how that can happen.
|
||||
(invalidate): Fix indentation.
|
||||
|
||||
Thu Oct 15 23:53:29 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
|
||||
Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
|
10
gcc/cse.c
10
gcc/cse.c
@ -1651,7 +1651,7 @@ invalidate (x, full_mode)
|
||||
tendregno
|
||||
= tregno + HARD_REGNO_NREGS (tregno, GET_MODE (p->exp));
|
||||
if (tendregno > regno && tregno < endregno)
|
||||
remove_from_table (p, hash);
|
||||
remove_from_table (p, hash);
|
||||
}
|
||||
}
|
||||
|
||||
@ -8706,7 +8706,7 @@ cse_basic_block (from, to, next_branch, around_loop)
|
||||
{
|
||||
register enum rtx_code code = GET_CODE (insn);
|
||||
int i;
|
||||
struct table_elt *p, *next;
|
||||
struct table_elt *p;
|
||||
|
||||
/* If we have processed 1,000 insns, flush the hash table to
|
||||
avoid extreme quadratic behavior. We must not include NOTEs
|
||||
@ -8720,10 +8720,10 @@ cse_basic_block (from, to, next_branch, around_loop)
|
||||
if (code != NOTE && num_insns++ > 1000)
|
||||
{
|
||||
for (i = 0; i < NBUCKETS; i++)
|
||||
for (p = table[i]; p; p = next)
|
||||
for (p = table[i]; p; p = table[i])
|
||||
{
|
||||
next = p->next_same_hash;
|
||||
|
||||
/* Note that invalidate can remove elements
|
||||
after P in the current hash chain. */
|
||||
if (GET_CODE (p->exp) == REG)
|
||||
invalidate (p->exp, p->mode);
|
||||
else
|
||||
|
Loading…
Reference in New Issue
Block a user