+2012-02-14 Torvald Riegel <triegel@redhat.com>
+
+ * util.cc (GTM::xcalloc): New.
+ * common.h (GTM::xcalloc): Declare.
+
2012-02-14 Eric Botcazou <ebotcazou@adacore.com>
* config/sparc/target.h (cpu_relax): Read from CC register.
// cache lines that are not shared with any object used by another thread.
extern void * xmalloc (size_t s, bool separate_cl = false)
__attribute__((malloc, nothrow));
+extern void * xcalloc (size_t s, bool separate_cl = false)
+ __attribute__((malloc, nothrow));
extern void * xrealloc (void *p, size_t s, bool separate_cl = false)
__attribute__((malloc, nothrow));
return r;
}
+void *
+xcalloc (size_t size, bool separate_cl)
+{
+ // TODO Use posix_memalign if separate_cl is true, or some other allocation
+ // method that will avoid sharing cache lines with data used by other
+ // threads.
+ void *r = calloc (1, size);
+ if (r == 0)
+ GTM_fatal ("Out of memory allocating %lu bytes", (unsigned long) size);
+ return r;
+}
+
void *
xrealloc (void *old, size_t size, bool separate_cl)
{