Index: benchmark/Makefile.am
===================================================================
--- benchmark/Makefile.am	(revision bbe3719f51f151b5ad865f6a0ca92c072ca4f23e)
+++ benchmark/Makefile.am	(revision 65502d83df1b51d0a863dcb592705be3ca7b3c58)
@@ -197,4 +197,21 @@
 	$(srcdir)/fixcsv.sh $@
 
+# use --no-print-directory to generate csv appropriately
+mutexStmt.csv:
+	echo "building $@"
+	echo "1-lock,2-lock,4-lock,8-lock,1-no-stmt-lock,2-no-stmt-lock,4-no-stmt-lock,8-no-stmt-lock,1-monitor,2-monitor,4-monitor" > $@
+	+make mutexStmt-lock1.runquiet >> $@ && echo -n ',' >> $@
+	+make mutexStmt-lock2.runquiet >> $@ && echo -n ',' >> $@
+	+make mutexStmt-lock4.runquiet >> $@ && echo -n ',' >> $@
+	+make mutexStmt-lock8.runquiet >> $@ && echo -n ',' >> $@
+	+make mutexStmt-no-stmt-lock1.runquiet >> $@ && echo -n ',' >> $@
+	+make mutexStmt-no-stmt-lock2.runquiet >> $@ && echo -n ',' >> $@
+	+make mutexStmt-no-stmt-lock4.runquiet >> $@ && echo -n ',' >> $@
+	+make mutexStmt-no-stmt-lock8.runquiet >> $@ && echo -n ',' >> $@
+	+make mutexStmt-monitor1.runquiet >> $@ && echo -n ',' >> $@
+	+make mutexStmt-monitor2.runquiet >> $@ && echo -n ',' >> $@
+	+make mutexStmt-monitor4.runquiet >> $@
+	$(srcdir)/fixcsv.sh $@
+
 schedint.csv:
 	echo "building $@"
@@ -355,4 +372,50 @@
 	chmod a+x a.out
 
+mutexStmt$(EXEEXT) :		    \
+	mutexStmt-lock1.run		    \
+	mutexStmt-lock2.run		    \
+	mutexStmt-lock4.run		    \
+	mutexStmt-lock8.run		    \
+	mutexStmt-no-stmt-lock1.run \
+	mutexStmt-no-stmt-lock2.run \
+	mutexStmt-no-stmt-lock4.run \
+	mutexStmt-no-stmt-lock8.run \
+	mutexStmt-monitor1.run      \
+	mutexStmt-monitor2.run      \
+	mutexStmt-monitor4.run
+
+mutexStmt-lock1$(EXEEXT):
+	$(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutexStmt/lock1.cfa
+
+mutexStmt-lock2$(EXEEXT):
+	$(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutexStmt/lock2.cfa
+
+mutexStmt-lock4$(EXEEXT):
+	$(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutexStmt/lock4.cfa
+
+mutexStmt-lock8$(EXEEXT):
+	$(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutexStmt/lock8.cfa
+
+mutexStmt-monitor1$(EXEEXT):
+	$(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutexStmt/monitor1.cfa
+
+mutexStmt-monitor2$(EXEEXT):
+	$(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutexStmt/monitor2.cfa
+
+mutexStmt-monitor4$(EXEEXT):
+	$(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutexStmt/monitor4.cfa
+
+mutexStmt-no-stmt-lock1$(EXEEXT):
+	$(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutexStmt/no_stmt_lock1.cfa
+
+mutexStmt-no-stmt-lock2$(EXEEXT):
+	$(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutexStmt/no_stmt_lock2.cfa
+
+mutexStmt-no-stmt-lock4$(EXEEXT):
+	$(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutexStmt/no_stmt_lock4.cfa
+
+mutexStmt-no-stmt-lock8$(EXEEXT):
+	$(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutexStmt/no_stmt_lock8.cfa
+
 ## =========================================================================================================
 
Index: benchmark/mutexStmt/lock1.cfa
===================================================================
--- benchmark/mutexStmt/lock1.cfa	(revision 65502d83df1b51d0a863dcb592705be3ca7b3c58)
+++ benchmark/mutexStmt/lock1.cfa	(revision 65502d83df1b51d0a863dcb592705be3ca7b3c58)
@@ -0,0 +1,22 @@
+#include <locks.hfa>
+#include <mutex_stmt.hfa>
+#include <stdio.h>
+
+#include "bench.h"
+
+single_acquisition_lock l1;
+
+int main( int argc, char * argv[] ) {
+	BENCH_START()
+	BENCH(
+		for ( times ) {
+			mutex ( l1 ) { }
+		},
+		result
+	)
+	printf( "%g\n", result );
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: benchmark/mutexStmt/lock2.cfa
===================================================================
--- benchmark/mutexStmt/lock2.cfa	(revision 65502d83df1b51d0a863dcb592705be3ca7b3c58)
+++ benchmark/mutexStmt/lock2.cfa	(revision 65502d83df1b51d0a863dcb592705be3ca7b3c58)
@@ -0,0 +1,22 @@
+#include <locks.hfa>
+#include <mutex_stmt.hfa>
+#include <stdio.h>
+
+#include "bench.h"
+
+single_acquisition_lock l1, l2;
+
+int main( int argc, char * argv[] ) {
+	BENCH_START()
+	BENCH(
+		for ( times ) {
+			mutex ( l1, l2 ) { }
+		},
+		result
+	)
+	printf( "%g\n", result );
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: benchmark/mutexStmt/lock4.cfa
===================================================================
--- benchmark/mutexStmt/lock4.cfa	(revision 65502d83df1b51d0a863dcb592705be3ca7b3c58)
+++ benchmark/mutexStmt/lock4.cfa	(revision 65502d83df1b51d0a863dcb592705be3ca7b3c58)
@@ -0,0 +1,22 @@
+#include <locks.hfa>
+#include <mutex_stmt.hfa>
+#include <stdio.h>
+
+#include "bench.h"
+
+single_acquisition_lock l1, l2, l3, l4;
+
+int main( int argc, char * argv[] ) {
+	BENCH_START()
+	BENCH(
+		for ( times ) {
+			mutex ( l1, l2, l3, l4 ) { }
+		},
+		result
+	)
+	printf( "%g\n", result );
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: benchmark/mutexStmt/lock8.cfa
===================================================================
--- benchmark/mutexStmt/lock8.cfa	(revision 65502d83df1b51d0a863dcb592705be3ca7b3c58)
+++ benchmark/mutexStmt/lock8.cfa	(revision 65502d83df1b51d0a863dcb592705be3ca7b3c58)
@@ -0,0 +1,22 @@
+#include <locks.hfa>
+#include <mutex_stmt.hfa>
+#include <stdio.h>
+
+#include "bench.h"
+
+single_acquisition_lock l1, l2, l3, l4, l5, l6, l7, l8;
+
+int main( int argc, char * argv[] ) {
+	BENCH_START()
+	BENCH(
+		for ( times ) {
+			mutex ( l1, l2, l3, l4, l5, l6, l7, l8 ) { }
+		},
+		result
+	)
+	printf( "%g\n", result );
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: benchmark/mutexStmt/monitor1.cfa
===================================================================
--- benchmark/mutexStmt/monitor1.cfa	(revision 65502d83df1b51d0a863dcb592705be3ca7b3c58)
+++ benchmark/mutexStmt/monitor1.cfa	(revision 65502d83df1b51d0a863dcb592705be3ca7b3c58)
@@ -0,0 +1,22 @@
+#include <monitor.hfa>
+#include <mutex_stmt.hfa>
+#include <stdio.h>
+
+#include "bench.h"
+
+monitor M {} m1;
+
+int main( int argc, char * argv[] ) {
+	BENCH_START()
+	BENCH(
+		for ( times ) {
+			mutex ( m1 ) { }
+		},
+		result
+	)
+	printf( "%g\n", result );
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: benchmark/mutexStmt/monitor2.cfa
===================================================================
--- benchmark/mutexStmt/monitor2.cfa	(revision 65502d83df1b51d0a863dcb592705be3ca7b3c58)
+++ benchmark/mutexStmt/monitor2.cfa	(revision 65502d83df1b51d0a863dcb592705be3ca7b3c58)
@@ -0,0 +1,22 @@
+#include <monitor.hfa>
+#include <mutex_stmt.hfa>
+#include <stdio.h>
+
+#include "bench.h"
+
+monitor M {} m1, m2;
+
+int main( int argc, char * argv[] ) {
+	BENCH_START()
+	BENCH(
+		for ( times ) {
+			mutex( m1, m2 ) { }
+		},
+		result
+	)
+	printf( "%g\n", result );
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: benchmark/mutexStmt/monitor4.cfa
===================================================================
--- benchmark/mutexStmt/monitor4.cfa	(revision 65502d83df1b51d0a863dcb592705be3ca7b3c58)
+++ benchmark/mutexStmt/monitor4.cfa	(revision 65502d83df1b51d0a863dcb592705be3ca7b3c58)
@@ -0,0 +1,22 @@
+#include <monitor.hfa>
+#include <mutex_stmt.hfa>
+#include <stdio.h>
+
+#include "bench.h"
+
+monitor M {} m1, m2, m3, m4;
+
+int main( int argc, char * argv[] ) {
+	BENCH_START()
+	BENCH(
+		for ( times ) {
+			mutex( m1, m2, m3, m4 ) { }
+		},
+		result
+	)
+	printf( "%g\n", result );
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: benchmark/mutexStmt/no_stmt_lock1.cfa
===================================================================
--- benchmark/mutexStmt/no_stmt_lock1.cfa	(revision 65502d83df1b51d0a863dcb592705be3ca7b3c58)
+++ benchmark/mutexStmt/no_stmt_lock1.cfa	(revision 65502d83df1b51d0a863dcb592705be3ca7b3c58)
@@ -0,0 +1,23 @@
+#include <locks.hfa>
+#include <mutex_stmt.hfa>
+#include <stdio.h>
+
+#include "bench.h"
+
+single_acquisition_lock l1;
+
+int main( int argc, char * argv[] ) {
+	BENCH_START()
+	BENCH(
+		for ( times ) {
+			lock( l1 );
+            unlock( l1 );
+		},
+		result
+	)
+	printf( "%g\n", result );
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: benchmark/mutexStmt/no_stmt_lock2.cfa
===================================================================
--- benchmark/mutexStmt/no_stmt_lock2.cfa	(revision 65502d83df1b51d0a863dcb592705be3ca7b3c58)
+++ benchmark/mutexStmt/no_stmt_lock2.cfa	(revision 65502d83df1b51d0a863dcb592705be3ca7b3c58)
@@ -0,0 +1,25 @@
+#include <locks.hfa>
+#include <mutex_stmt.hfa>
+#include <stdio.h>
+
+#include "bench.h"
+
+single_acquisition_lock l1, l2;
+
+int main( int argc, char * argv[] ) {
+	BENCH_START()
+	BENCH(
+		for ( times ) {
+			lock( l1 );
+            lock( l2 ); 
+            unlock( l2 );
+            unlock( l1 );
+		},
+		result
+	)
+	printf( "%g\n", result );
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: benchmark/mutexStmt/no_stmt_lock4.cfa
===================================================================
--- benchmark/mutexStmt/no_stmt_lock4.cfa	(revision 65502d83df1b51d0a863dcb592705be3ca7b3c58)
+++ benchmark/mutexStmt/no_stmt_lock4.cfa	(revision 65502d83df1b51d0a863dcb592705be3ca7b3c58)
@@ -0,0 +1,29 @@
+#include <locks.hfa>
+#include <mutex_stmt.hfa>
+#include <stdio.h>
+
+#include "bench.h"
+
+single_acquisition_lock l1, l2, l3, l4;
+
+int main( int argc, char * argv[] ) {
+	BENCH_START()
+	BENCH(
+		for ( times ) {
+			lock( l1 );
+            lock( l2 );
+            lock( l3 );
+            lock( l4 ); 
+            unlock( l4 );
+            unlock( l3 );
+            unlock( l2 );
+            unlock( l1 );
+		},
+		result
+	)
+	printf( "%g\n", result );
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
Index: benchmark/mutexStmt/no_stmt_lock8.cfa
===================================================================
--- benchmark/mutexStmt/no_stmt_lock8.cfa	(revision 65502d83df1b51d0a863dcb592705be3ca7b3c58)
+++ benchmark/mutexStmt/no_stmt_lock8.cfa	(revision 65502d83df1b51d0a863dcb592705be3ca7b3c58)
@@ -0,0 +1,37 @@
+#include <locks.hfa>
+#include <mutex_stmt.hfa>
+#include <stdio.h>
+
+#include "bench.h"
+
+single_acquisition_lock l1, l2, l3, l4, l5, l6, l7, l8;
+
+int main( int argc, char * argv[] ) {
+	BENCH_START()
+	BENCH(
+		for ( times ) {
+			lock( l1 );
+            lock( l2 );
+            lock( l3 );
+            lock( l4 );
+            lock( l5 );
+            lock( l6 );
+            lock( l7 );
+            lock( l8 ); 
+            unlock( l8 );
+            unlock( l7 );
+            unlock( l6 );
+            unlock( l5 );
+            unlock( l4 );
+            unlock( l3 );
+            unlock( l2 );
+            unlock( l1 );
+		},
+		result
+	)
+	printf( "%g\n", result );
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// End: //
