Index: benchmark/Makefile.am
===================================================================
--- benchmark/Makefile.am	(revision ff489bf755a394aca4b40bb42c0ae17e78de5d2d)
+++ benchmark/Makefile.am	(revision dfda49f434322aee3e05dbbb9524cdf901d195c7)
@@ -11,6 +11,6 @@
 ## Created On       : Sun May 31 09:08:15 2015
 ## Last Modified By : Peter A. Buhr
-## Last Modified On : Sat Jan 25 09:20:44 2020
-## Update Count     : 255
+## Last Modified On : Tue Mar 10 11:41:18 2020
+## Update Count     : 258
 ###############################################################################
 
@@ -108,4 +108,5 @@
 creation_cfa_coroutine_DURATION = 100000000
 creation_cfa_coroutine_eager_DURATION = 10000000
+creation_cfa_generator_DURATION = 1000000000
 creation_upp_coroutine_DURATION = ${creation_cfa_coroutine_eager_DURATION}
 creation_cfa_thread_DURATION = 10000000
Index: benchmark/Makefile.in
===================================================================
--- benchmark/Makefile.in	(revision ff489bf755a394aca4b40bb42c0ae17e78de5d2d)
+++ benchmark/Makefile.in	(revision dfda49f434322aee3e05dbbb9524cdf901d195c7)
@@ -447,4 +447,5 @@
 creation_cfa_coroutine_DURATION = 100000000
 creation_cfa_coroutine_eager_DURATION = 10000000
+creation_cfa_generator_DURATION = 1000000000
 creation_upp_coroutine_DURATION = ${creation_cfa_coroutine_eager_DURATION}
 creation_cfa_thread_DURATION = 10000000
Index: benchmark/creation/cfa_gen.cfa
===================================================================
--- benchmark/creation/cfa_gen.cfa	(revision ff489bf755a394aca4b40bb42c0ae17e78de5d2d)
+++ benchmark/creation/cfa_gen.cfa	(revision dfda49f434322aee3e05dbbb9524cdf901d195c7)
@@ -1,9 +1,9 @@
-#include "bench.h"
+#include "../bench.h"
 
-struct C {
+generator G {
 	volatile int restart; // ensure compiler does not optimize away all the code
 };
-void ?{}( C & c ) { c.restart = 0; }
-void main( C & ) {}
+void ?{}( G & g ) { g.restart = 0; }
+void main( G & ) {}
 
 int main( int argc, char * argv[] ) {
@@ -11,5 +11,5 @@
 	BENCH(
 		for ( times ) {
-			 C c;
+			 G g;
 		},
 		result
Index: benchmark/ctxswitch/cfa_cor.cfa
===================================================================
--- benchmark/ctxswitch/cfa_cor.cfa	(revision ff489bf755a394aca4b40bb42c0ae17e78de5d2d)
+++ benchmark/ctxswitch/cfa_cor.cfa	(revision dfda49f434322aee3e05dbbb9524cdf901d195c7)
@@ -2,13 +2,14 @@
 #include <thread.hfa>
 
-#include "bench.h"
+#include "../bench.h"
 
-coroutine C {} c;
+coroutine C {};
 void main( __attribute__((unused)) C & ) {
-	while () {
+	for () {
 		suspend;
 	}
 }
 int main( int argc, char * argv[] ) {
+	C c;
 	BENCH_START()
 	BENCH(
Index: benchmark/ctxswitch/cfa_gen.cfa
===================================================================
--- benchmark/ctxswitch/cfa_gen.cfa	(revision ff489bf755a394aca4b40bb42c0ae17e78de5d2d)
+++ benchmark/ctxswitch/cfa_gen.cfa	(revision dfda49f434322aee3e05dbbb9524cdf901d195c7)
@@ -1,23 +1,17 @@
 #include "../bench.h"
 
-typedef struct {
-	void * next;
-} C;
-
-void comain( C * c ) {
-	if ( __builtin_expect(c->next != 0, 1) ) goto *(c->next);
-	c->next = &&s1;
+generator G {};
+void main( G & ) {
 	for () {
-		return;
-	  s1: ;
+		suspend;
 	}
 }
 
 int main( int argc, char * argv[] ) {
+	G g;
 	BENCH_START()
-	C c = { 0 };
 	BENCH(
 		for ( times ) {
-			comain( &c );
+			resume( g );
 		},
 		result
