aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2012-08-17 10:49:30 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2012-08-17 10:49:30 +0000
commit7f3f8d3fe53b1356e6f5c9017ac21acf4ca58192 (patch)
tree2065dbc6e7f7a4efd27d10c6511c44fe1ecdb5fc /gcc
parentbaecdd1e97b8a9882c2eca16b32283ef97ed98d1 (diff)
downloadgcc-7f3f8d3fe53b1356e6f5c9017ac21acf4ca58192.zip
gcc-7f3f8d3fe53b1356e6f5c9017ac21acf4ca58192.tar.gz
gcc-7f3f8d3fe53b1356e6f5c9017ac21acf4ca58192.tar.bz2
bitmap.h (struct bitmap_element_def): GTY annotate next/prev.
2012-08-17 Richard Guenther <rguenther@suse.de> * bitmap.h (struct bitmap_element_def): GTY annotate next/prev. (struct bitmap_head_def): GTY skip current field. From-SVN: r190479
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/bitmap.h22
2 files changed, 17 insertions, 10 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ca2b319..c9a81d1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2012-08-17 Richard Guenther <rguenther@suse.de>
+
+ * bitmap.h (struct bitmap_element_def): GTY annotate next/prev.
+ (struct bitmap_head_def): GTY skip current field.
+
2012-08-17 Steven Bosscher <steven@gcc.gnu.org>
PR middle-end/54146
diff --git a/gcc/bitmap.h b/gcc/bitmap.h
index 6ca9073..1c39cd4 100644
--- a/gcc/bitmap.h
+++ b/gcc/bitmap.h
@@ -167,9 +167,9 @@ typedef struct GTY (()) bitmap_obstack {
bitmap_elt_clear_from to be implemented in unit time rather than
linear in the number of elements to be freed. */
-typedef struct GTY(()) bitmap_element_def {
- struct bitmap_element_def *next; /* Next element. */
- struct bitmap_element_def *prev; /* Previous element. */
+typedef struct GTY((chain_next ("%h.next"), chain_prev ("%h.prev"))) bitmap_element_def {
+ struct bitmap_element_def *next; /* Next element. */
+ struct bitmap_element_def *prev; /* Previous element. */
unsigned int indx; /* regno/BITMAP_ELEMENT_ALL_BITS. */
BITMAP_WORD bits[BITMAP_ELEMENT_WORDS]; /* Bits that are set. */
} bitmap_element;
@@ -177,15 +177,17 @@ typedef struct GTY(()) bitmap_element_def {
struct bitmap_descriptor;
/* Head of bitmap linked list. gengtype ignores ifdefs, but for
statistics we need to add a bitmap descriptor pointer. As it is
- not collected, we can just GTY((skip)) it. */
+ not collected, we can just GTY((skip(""))) it. Likewise current
+ points to something already pointed to by the chain started by first,
+ no need to walk it again. */
typedef struct GTY(()) bitmap_head_def {
- bitmap_element *first; /* First element in linked list. */
- bitmap_element *current; /* Last element looked at. */
- unsigned int indx; /* Index of last element looked at. */
- bitmap_obstack *obstack; /* Obstack to allocate elements from.
- If NULL, then use GGC allocation. */
- struct bitmap_descriptor GTY((skip)) *desc;
+ bitmap_element *first; /* First element in linked list. */
+ bitmap_element * GTY((skip(""))) current; /* Last element looked at. */
+ unsigned int indx; /* Index of last element looked at. */
+ bitmap_obstack *obstack; /* Obstack to allocate elements from.
+ If NULL, then use GGC allocation. */
+ struct bitmap_descriptor GTY((skip(""))) *desc;
} bitmap_head;
/* Global data */