[pypy-commit] pypy quad-color-gc: Update qcgc source files
ntruessel
pypy.commits at gmail.com
Thu May 4 16:28:11 EDT 2017
Author: Nicolas Truessel <ntruessel at njsm.de>
Branch: quad-color-gc
Changeset: r91179:4cee2f816dc0
Date: 2017-05-04 22:27 +0200
http://bitbucket.org/pypy/pypy/changeset/4cee2f816dc0/
Log: Update qcgc source files
diff --git a/rpython/translator/c/src/qcgc/qcgc.c b/rpython/translator/c/src/qcgc/qcgc.c
--- a/rpython/translator/c/src/qcgc/qcgc.c
+++ b/rpython/translator/c/src/qcgc/qcgc.c
@@ -40,6 +40,10 @@
qcgc_hbtable_initialize();
qcgc_event_logger_initialize();
+#if LOG_ALLOCATOR_SWITCH
+ qcgc_allocations = 0;
+#endif
+
env_or_fallback(qcgc_state.incmark_threshold,
"QCGC_INCMARK", QCGC_INCMARK_THRESHOLD);
env_or_fallback(qcgc_state.incmark_to_sweep,
@@ -49,6 +53,18 @@
}
void qcgc_destroy(void) {
+#if LOG_ALLOCATOR_SWITCH
+ struct log_info_s {
+ bool bump_allocator;
+ size_t allocations;
+ };
+ struct log_info_s log_info = {
+ _qcgc_bump_allocator.ptr != NULL,
+ qcgc_allocations,
+ };
+ qcgc_event_logger_log(EVENT_ALLOCATOR_SWITCH, sizeof(struct log_info_s),
+ (uint8_t *) &log_info);
+#endif
qcgc_event_logger_destroy();
qcgc_hbtable_destroy();
qcgc_allocator_destroy();
@@ -131,12 +147,12 @@
if ((_qcgc_bump_allocator.ptr == NULL) != old_use_fit_allocator) {
// Allocator switched
struct log_info_s {
+ bool bump_allocator;
size_t allocations;
- bool fit_allocator;
};
struct log_info_s log_info = {
+ _qcgc_bump_allocator.ptr != NULL,
qcgc_allocations,
- _qcgc_bump_allocator.ptr == NULL,
};
qcgc_event_logger_log(EVENT_ALLOCATOR_SWITCH, sizeof(struct log_info_s),
(uint8_t *) &log_info);
@@ -154,12 +170,12 @@
if ((_qcgc_bump_allocator.ptr == NULL) != old_use_fit_allocator) {
// Allocator switched
struct log_info_s {
+ bool bump_allocator;
size_t allocations;
- bool fit_allocator;
};
struct log_info_s log_info = {
+ _qcgc_bump_allocator.ptr != NULL,
qcgc_allocations,
- _qcgc_bump_allocator.ptr == NULL,
};
qcgc_event_logger_log(EVENT_ALLOCATOR_SWITCH, sizeof(struct log_info_s),
(uint8_t *) &log_info);
@@ -188,12 +204,12 @@
if ((_qcgc_bump_allocator.ptr == NULL) != old_use_fit_allocator) {
// Allocator switched
struct log_info_s {
+ bool bump_allocator;
size_t allocations;
- bool fit_allocator;
};
struct log_info_s log_info = {
+ _qcgc_bump_allocator.ptr != NULL,
qcgc_allocations,
- _qcgc_bump_allocator.ptr == NULL,
};
qcgc_event_logger_log(EVENT_ALLOCATOR_SWITCH, sizeof(struct log_info_s),
(uint8_t *) &log_info);
diff --git a/rpython/translator/c/src/qcgc/qcgc.h b/rpython/translator/c/src/qcgc/qcgc.h
--- a/rpython/translator/c/src/qcgc/qcgc.h
+++ b/rpython/translator/c/src/qcgc/qcgc.h
@@ -60,7 +60,7 @@
} object_stack_t;
#if LOG_ALLOCATOR_SWITCH
-size_t qcgc_allocations = 0;
+size_t qcgc_allocations;
#endif
/**
@@ -289,6 +289,6 @@
* @param object The object to trace
* @param visit The function to be called on the referenced objects
*/
-void qcgc_trace_cb(object_t *object, void (*visit)(object_t *object));
+extern void qcgc_trace_cb(object_t *object, void (*visit)(object_t *object));
#endif
diff --git a/rpython/translator/c/src/qcgc/src/collector.c b/rpython/translator/c/src/qcgc/src/collector.c
--- a/rpython/translator/c/src/qcgc/src/collector.c
+++ b/rpython/translator/c/src/qcgc/src/collector.c
@@ -155,7 +155,7 @@
qcgc_trace_cb(object, &qcgc_push_object);
}
-QCGC_STATIC QCGC_INLINE void qcgc_push_object(object_t *object) {
+QCGC_STATIC void qcgc_push_object(object_t *object) {
#if CHECKED
assert(qcgc_state.phase == GC_MARK);
#endif
More information about the pypy-commit
mailing list