add workspace handling, cleanups
diff --git a/enzyme/benchmarks/ReverseMode/adbench/gmm.h b/enzyme/benchmarks/ReverseMode/adbench/gmm.h
index 35f4423..d994a6e 100644
--- a/enzyme/benchmarks/ReverseMode/adbench/gmm.h
+++ b/enzyme/benchmarks/ReverseMode/adbench/gmm.h
@@ -268,7 +268,7 @@
 
     struct GMMOutput result = { 0, std::vector<double>(Jcols) };
 
-    if (0) {
+    if (1) {
       try {
         struct timeval start, end;
         gettimeofday(&start, NULL);
@@ -350,7 +350,7 @@
       test_suite["tools"].push_back(enzyme);
     }
     }
-    
+
     {
 
     struct GMMInput input;
diff --git a/enzyme/benchmarks/ReverseMode/adbench/lstm.h b/enzyme/benchmarks/ReverseMode/adbench/lstm.h
index 80452b4..0648b66 100644
--- a/enzyme/benchmarks/ReverseMode/adbench/lstm.h
+++ b/enzyme/benchmarks/ReverseMode/adbench/lstm.h
@@ -245,7 +245,7 @@
 
     std::vector<std::string> paths = { "lstm_l2_c1024.txt", "lstm_l4_c1024.txt", "lstm_l2_c4096.txt", "lstm_l4_c4096.txt" };
     //std::vector<std::string> paths = { "lstm_l4_c4096.txt" };
-    
+
     std::ofstream jsonfile("results.json", std::ofstream::trunc);
     json test_results;
 
@@ -289,7 +289,7 @@
 
     }
 
-    if (0){
+    if (1){
 
      struct LSTMInput input = {};
 
@@ -385,7 +385,7 @@
         enzyme["result"].push_back(result.gradient[i]);
        }
        test_suite["tools"].push_back(enzyme);
-       
+
        printf("\n");
     }
     }
@@ -418,7 +418,7 @@
          enzyme["result"].push_back(result.gradient[i]);
        }
        test_suite["tools"].push_back(enzyme);
-       
+
        printf("\n");
     }
 
diff --git a/enzyme/benchmarks/ReverseMode/ba/Cargo.toml b/enzyme/benchmarks/ReverseMode/ba/Cargo.toml
index 4bc9c21..9f57737 100644
--- a/enzyme/benchmarks/ReverseMode/ba/Cargo.toml
+++ b/enzyme/benchmarks/ReverseMode/ba/Cargo.toml
@@ -21,3 +21,5 @@
 
 [dependencies]
 libm = { version = "0.2.8", optional = true }
+
+[workspace]
diff --git a/enzyme/benchmarks/ReverseMode/ba/Makefile.make b/enzyme/benchmarks/ReverseMode/ba/Makefile.make
index cec8d4b..c6182c0 100644
--- a/enzyme/benchmarks/ReverseMode/ba/Makefile.make
+++ b/enzyme/benchmarks/ReverseMode/ba/Makefile.make
@@ -1,4 +1,4 @@
-# RUN: cd %S && LD_LIBRARY_PATH="%bldpath:$LD_LIBRARY_PATH" PTR="%ptr" BENCH="%bench" BENCHLINK="%blink" LOAD="%loadEnzyme" LOADCLANG="%loadClangEnzyme" ENZYME="%enzyme" make -B ba-raw.ll results.json -f %s
+# RUN: cd %S && LD_LIBRARY_PATH="%bldpath:$LD_LIBRARY_PATH" PTR="%ptr" BENCH="%bench" BENCHLINK="%blink" LOAD="%loadEnzyme" LOADCLANG="%loadClangEnzyme" ENZYME="%enzyme" make -B results.json -f %s
 
 .PHONY: clean
 
diff --git a/enzyme/benchmarks/ReverseMode/fft/Cargo.toml b/enzyme/benchmarks/ReverseMode/fft/Cargo.toml
index cf8862d..630506d 100644
--- a/enzyme/benchmarks/ReverseMode/fft/Cargo.toml
+++ b/enzyme/benchmarks/ReverseMode/fft/Cargo.toml
@@ -20,3 +20,5 @@
 
 [profile.dev]
 lto = "fat"
+
+[workspace]
diff --git a/enzyme/benchmarks/ReverseMode/gmm/Cargo.toml b/enzyme/benchmarks/ReverseMode/gmm/Cargo.toml
index 1ae0273..eaaf749 100644
--- a/enzyme/benchmarks/ReverseMode/gmm/Cargo.toml
+++ b/enzyme/benchmarks/ReverseMode/gmm/Cargo.toml
@@ -24,3 +24,5 @@
 
 [dependencies]
 libm = { version = "0.2.8", optional = true }
+
+[workspace]
diff --git a/enzyme/benchmarks/ReverseMode/gmm/src/safe.rs b/enzyme/benchmarks/ReverseMode/gmm/src/safe.rs
index 9356b11..e365246 100644
--- a/enzyme/benchmarks/ReverseMode/gmm/src/safe.rs
+++ b/enzyme/benchmarks/ReverseMode/gmm/src/safe.rs
@@ -19,9 +19,9 @@
 
 #[no_mangle]
 pub extern "C" fn rust_dgmm_objective(
-    d: i32,
-    k: i32,
-    n: i32,
+    d: usize,
+    k: usize,
+    n: usize,
     alphas: *const f64,
     dalphas: *mut f64,
     means: *const f64,
@@ -33,9 +33,6 @@
     err: *mut f64,
     derr: *mut f64,
 ) {
-    let k = k as usize;
-    let n = n as usize;
-    let d = d as usize;
     let alphas = unsafe { std::slice::from_raw_parts(alphas, k) };
     let means = unsafe { std::slice::from_raw_parts(means, k * d) };
     let icf = unsafe { std::slice::from_raw_parts(icf, k * d * (d + 1) / 2) };
@@ -85,9 +82,9 @@
 
 #[no_mangle]
 pub extern "C" fn rust_gmm_objective(
-    d: i32,
-    k: i32,
-    n: i32,
+    d: usize,
+    k: usize,
+    n: usize,
     alphas: *const f64,
     means: *const f64,
     icf: *const f64,
@@ -95,9 +92,6 @@
     wishart: *const Wishart,
     err: *mut f64,
 ) {
-    let k = k as usize;
-    let n = n as usize;
-    let d = d as usize;
     let alphas = unsafe { std::slice::from_raw_parts(alphas, k) };
     let means = unsafe { std::slice::from_raw_parts(means, k * d) };
     let icf = unsafe { std::slice::from_raw_parts(icf, k * d * (d + 1) / 2) };
diff --git a/enzyme/benchmarks/ReverseMode/lstm/Cargo.toml b/enzyme/benchmarks/ReverseMode/lstm/Cargo.toml
index d28f845..0b5fd98 100644
--- a/enzyme/benchmarks/ReverseMode/lstm/Cargo.toml
+++ b/enzyme/benchmarks/ReverseMode/lstm/Cargo.toml
@@ -20,3 +20,5 @@
 
 [profile.dev]
 lto = "fat"
+
+[workspace]
diff --git a/enzyme/benchmarks/ReverseMode/lstm/Makefile.make b/enzyme/benchmarks/ReverseMode/lstm/Makefile.make
index 71c6f5b..65a1e93 100644
--- a/enzyme/benchmarks/ReverseMode/lstm/Makefile.make
+++ b/enzyme/benchmarks/ReverseMode/lstm/Makefile.make
@@ -1,4 +1,4 @@
-# RUN: cd %S && LD_LIBRARY_PATH="%bldpath:$LD_LIBRARY_PATH" PTR="%ptr" BENCH="%bench" BENCHLINK="%blink" LOAD="%loadEnzyme" LOADCLANG="%loadClangEnzyme" ENZYME="%enzyme" make -B lstm-raw.ll results.json -f %s
+# RUN: cd %S && LD_LIBRARY_PATH="%bldpath:$LD_LIBRARY_PATH" PTR="%ptr" BENCH="%bench" BENCHLINK="%blink" LOAD="%loadEnzyme" LOADCLANG="%loadClangEnzyme" ENZYME="%enzyme" make -B results.json -f %s
 
 .PHONY: clean
 
@@ -41,7 +41,6 @@
 
 lstm.o: lstm-opt.ll $(dir)/benchmarks/ReverseMode/lstm/target/release/liblstm.a
 	$(CLANG) -pthread -O3 $^ -o $@ $(BENCHLINK) -lm
-	#$(CLANG) -pthread -O3 -fno-math-errno $^ -o $@ $(BENCHLINK) -lm
 
 results.json: lstm.o
 	numactl -C 1 ./$^
diff --git a/enzyme/benchmarks/ReverseMode/ode-real/Cargo.toml b/enzyme/benchmarks/ReverseMode/ode-real/Cargo.toml
index b7386a4..96952f9 100644
--- a/enzyme/benchmarks/ReverseMode/ode-real/Cargo.toml
+++ b/enzyme/benchmarks/ReverseMode/ode-real/Cargo.toml
@@ -20,3 +20,5 @@
 
 [profile.dev]
 lto = "fat"
+
+[workspace]
diff --git a/enzyme/benchmarks/ReverseMode/ode-real/Makefile.make b/enzyme/benchmarks/ReverseMode/ode-real/Makefile.make
index 582ba79..4f48409 100644
--- a/enzyme/benchmarks/ReverseMode/ode-real/Makefile.make
+++ b/enzyme/benchmarks/ReverseMode/ode-real/Makefile.make
@@ -1,4 +1,4 @@
-# RUN: cd %S && LD_LIBRARY_PATH="%bldpath:$LD_LIBRARY_PATH" PTR="%ptr" BENCH="%bench" BENCHLINK="%blink" LOAD="%loadEnzyme" ENZYME="%enzyme" make -B ode-raw.ll ode-opt.ll results.json VERBOSE=1 -f %s
+# RUN: cd %S && LD_LIBRARY_PATH="%bldpath:$LD_LIBRARY_PATH" PTR="%ptr" BENCH="%bench" BENCHLINK="%blink" LOAD="%loadEnzyme" ENZYME="%enzyme" make -B results.json VERBOSE=1 -f %s
 
 .PHONY: clean