* ggc-zone.c: Update copyright year.
(poison_region): Mark memory for Valgrind as undefined before
memset () call and inaccessible afterwards.
(ggc_pch_total_size): Change type of i to int.
2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
* ggc-common.c (ggc_free_overhead): Allow empty slot.
2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
* ggc-common.c: Update copyright year.
(ggc_rlimit_bound): Remove prototype. Compile only if
!ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
(ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
&& !ENABLE_GC_ALWAYS_COLLECT. Make static.
(ggc_min_heapsize_heuristic): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159863
138bc75d-0d04-0410-961f-
82ee72b054a4
+2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
+
+ * ggc-zone.c: Update copyright year.
+ (poison_region): Mark memory for Valgrind as undefined before
+ memset () call and inaccessible afterwards.
+ (ggc_pch_total_size): Change type of i to int.
+
+2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
+
+ * ggc-common.c (ggc_free_overhead): Allow empty slot.
+
+2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
+
+ * ggc-common.c: Update copyright year.
+ (ggc_rlimit_bound): Remove prototype. Compile only if
+ !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
+ (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
+ && !ENABLE_GC_ALWAYS_COLLECT. Make static.
+ (ggc_min_heapsize_heuristic): Likewise.
+
2010-05-26 Richard Guenther <rguenther@suse.de>
PR rtl-optimization/44164
/* Simple garbage collection for the GNU compiler.
- Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
- Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
+ 2009, 2010 Free Software Foundation, Inc.
This file is part of GCC.
static void relocate_ptrs (void *, void *);
static void write_pch_globals (const struct ggc_root_tab * const *tab,
struct traversal_state *state);
-static double ggc_rlimit_bound (double);
/* Maintain global roots that are preserved during GC. */
}
#endif /* HAVE_MMAP_FILE */
+#if !defined ENABLE_GC_CHECKING && !defined ENABLE_GC_ALWAYS_COLLECT
+
/* Modify the bound based on rlimits. */
static double
ggc_rlimit_bound (double limit)
}
/* Heuristic to set a default for GGC_MIN_EXPAND. */
-int
+static int
ggc_min_expand_heuristic (void)
{
double min_expand = physmem_total();
}
/* Heuristic to set a default for GGC_MIN_HEAPSIZE. */
-int
+static int
ggc_min_heapsize_heuristic (void)
{
double phys_kbytes = physmem_total();
return phys_kbytes;
}
+#endif
void
init_ggc_heuristics (void)
{
PTR *slot = htab_find_slot_with_hash (ptr_hash, ptr, htab_hash_pointer (ptr),
NO_INSERT);
- struct ptr_hash_entry *p = (struct ptr_hash_entry *) *slot;
+ struct ptr_hash_entry *p;
+ /* The pointer might be not found if a PCH read happened between allocation
+ and ggc_free () call. FIXME: account memory properly in the presence of
+ PCH. */
+ if (!slot)
+ return;
+ p = (struct ptr_hash_entry *) *slot;
p->loc->freed += p->size;
htab_clear_slot (ptr_hash, slot);
free (p);
/* "Bag-of-pages" zone garbage collector for the GNU compiler.
- Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008
- Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008,
+ 2010 Free Software Foundation, Inc.
Contributed by Richard Henderson (rth@redhat.com) and Daniel Berlin
(dberlin@dberlin.org). Rewritten by Daniel Jacobowitz
/* Poison the chunk. */
#ifdef ENABLE_GC_CHECKING
-#define poison_region(PTR, SIZE) \
- memset ((PTR), 0xa5, (SIZE))
+#define poison_region(PTR, SIZE) \
+ do { \
+ VALGRIND_DISCARD (VALGRIND_MAKE_MEM_UNDEFINED ((PTR), (SIZE))); \
+ memset ((PTR), 0xa5, (SIZE)); \
+ VALGRIND_DISCARD (VALGRIND_MAKE_MEM_NOACCESS ((PTR), (SIZE))); \
+ } while (0)
#else
#define poison_region(PTR, SIZE)
#endif
size_t
ggc_pch_total_size (struct ggc_pch_data *d)
{
- enum gt_types_enum i;
+ int i;
size_t alloc_size, total_size;
total_size = 0;