[Bug middle-end/16967] New: Iterating gcse.c CPROP and PRE does not reach a fixed point

steven at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Tue Aug 10 15:10:00 GMT 2004


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



More information about the Gcc-bugs mailing list