mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-09 15:10:29 +02:00
This will let us partition the mark space into chunks of 32 or 64 kB, as we won't need to allocate chunk-spanning objects. This will improve sweeping parallelism and is a step on the way to immix.
16 lines
383 B
C
16 lines
383 B
C
#ifndef ASSERT_H
|
|
#define ASSERT_H
|
|
|
|
#define STATIC_ASSERT_EQ(a, b) _Static_assert((a) == (b), "eq")
|
|
|
|
#define UNLIKELY(e) __builtin_expect(e, 0)
|
|
#define LIKELY(e) __builtin_expect(e, 1)
|
|
|
|
#ifndef NDEBUG
|
|
#define ASSERT(x) do { if (UNLIKELY(!(x))) __builtin_trap(); } while (0)
|
|
#else
|
|
#define ASSERT(x) do { } while (0)
|
|
#endif
|
|
#define ASSERT_EQ(a,b) ASSERT((a) == (b))
|
|
|
|
#endif // ASSERT_H
|