This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/16967] New: Iterating gcse.c CPROP and PRE does not reach a fixed point
- From: "steven at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 10 Aug 2004 15:10:45 -0000
- Subject: [Bug middle-end/16967] New: Iterating gcse.c CPROP and PRE does not reach a fixed point
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
Consider the following test case on i686:
struct hblk
{
struct hblk *hb_next;
};
extern struct hblk *GC_hblkfreelist[];
void
GC_print_hblkfreelist (void)
{
struct hblk *h;
struct hblk *hhdr;
int i;
for (i = 0; i < 3; ++i)
{
h = GC_hblkfreelist[i];
while (h != 0)
h = hhdr->hb_next;
}
}
$ ./cc1 -O2 -dG --param max-gcse-passes=100 t.i
$ grep "pass 100" t.i.*.gcse
GCSE pass 100
CPROP of GC_print_hblkfreelist, pass 100: 11472 bytes needed, 1 local const
props, 0 local copy props, 1 global const props, 0 global copy props
PRE GCSE of GC_print_hblkfreelist, pass 100: 13940 bytes needed, 1 substs, 1
insns created
What seems particularly dubious is that the SET hash table just
keeps on growing:
SET hash table (11 buckets, 2 entries)
SET hash table (11 buckets, 3 entries)
SET hash table (11 buckets, 4 entries)
SET hash table (11 buckets, 5 entries)
SET hash table (11 buckets, 6 entries)
SET hash table (11 buckets, 7 entries)
SET hash table (11 buckets, 8 entries)
SET hash table (11 buckets, 9 entries)
SET hash table (11 buckets, 10 entries)
SET hash table (11 buckets, 11 entries)
SET hash table (11 buckets, 12 entries)
SET hash table (11 buckets, 13 entries)
SET hash table (11 buckets, 14 entries)
SET hash table (11 buckets, 15 entries)
SET hash table (11 buckets, 16 entries)
SET hash table (11 buckets, 17 entries)
SET hash table (11 buckets, 18 entries)
SET hash table (11 buckets, 19 entries)
SET hash table (11 buckets, 20 entries)
SET hash table (11 buckets, 21 entries)
SET hash table (11 buckets, 22 entries)
(etc...)
--
Summary: Iterating gcse.c CPROP and PRE does not reach a fixed
point
Product: gcc
Version: 3.5.0
Status: UNCONFIRMED
Severity: minor
Priority: P3
Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: steven at gcc dot gnu dot org
CC: gcc-bugs at gcc dot gnu dot org,law at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16967