GCC Wikia
Advertisement

このページを編集する際は,編集に関する方針に従ってください.[]

概要[]

実装[]

  50 /* Bitmap set element.  We use a linked list to hold only the bits that
  51    are set.  This allows for use to grow the bitset dynamically without
  52    having to realloc and copy a giant bit array.  
  53 
  54    The free list is implemented as a list of lists.  There is one
  55    outer list connected together by prev fields.  Each element of that
  56    outer is an inner list (that may consist only of the outer list
  57    element) that are connected by the next fields.  The prev pointer
  58    is undefined for interior elements.  This allows
  59    bitmap_elt_clear_from to be implemented in unit time rather than
  60    linear in the number of elements to be freed.  */
61 
62 typedef struct bitmap_element_def GTY(())
63 {
64   [[struct bitmap_element_def>bitmap_element]] *next;              /* Next element.  */
65   [[struct bitmap_element_def>bitmap_element]] *prev;              /* Previous element.  */
66   unsigned int indx;                    /* regno/BITMAP_ELEMENT_ALL_BITS.  */
67   BITMAP_WORD bits[BITMAP_ELEMENT_WORDS]; /* Bits that are set.  */
68 } bitmap_element;


リンク元

Advertisement