[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