diff --git a/hercules_cg/src/cpu.rs b/hercules_cg/src/cpu.rs
index 509b98c54644992a65714d58d674d4866476f4ae..1f3ab0a452badd7f4fb1b103a4f5c68b657a1102 100644
--- a/hercules_cg/src/cpu.rs
+++ b/hercules_cg/src/cpu.rs
@@ -131,9 +131,7 @@ impl<'a> CPUContext<'a> {
         }
         // Lastly, if the function has multiple returns, is a pointer to the return struct
         if self.function.return_types.len() != 1 {
-            if first_param {
-                first_param = false;
-            } else {
+            if !first_param {
                 write!(w, ", ")?;
             }
             write!(
diff --git a/hercules_cg/src/gpu.rs b/hercules_cg/src/gpu.rs
index 17f0f8939f4961e36da41b7c975bf867376b5d60..4390e25c3e7aff3639ea2880deaf0210419d071c 100644
--- a/hercules_cg/src/gpu.rs
+++ b/hercules_cg/src/gpu.rs
@@ -4,7 +4,6 @@ extern crate hercules_ir;
 use std::collections::{BTreeMap, HashMap, HashSet};
 use std::fmt::{Error, Write};
 use std::fs::{File, OpenOptions};
-use std::io::Write as _;
 
 use self::hercules_ir::*;
 
@@ -1516,7 +1515,7 @@ extern \"C\" {} {}(",
         let tabs = match &self.function.nodes[id.idx()] {
             Node::Start
             | Node::Region { preds: _ }
-            | Node::Projection {
+            | Node::ControlProjection {
                 control: _,
                 selection: _,
             } => {
@@ -1528,7 +1527,7 @@ extern \"C\" {} {}(",
                 let mut succs = self.control_subgraph.succs(id);
                 let succ1 = succs.next().unwrap();
                 let succ2 = succs.next().unwrap();
-                let succ1_is_true = self.function.nodes[succ1.idx()].try_projection(1).is_some();
+                let succ1_is_true = self.function.nodes[succ1.idx()].try_control_projection(1).is_some();
                 let succ1_block_name = self.get_block_name(succ1, false);
                 let succ2_block_name = self.get_block_name(succ2, false);
                 write!(
diff --git a/hercules_cg/src/rt.rs b/hercules_cg/src/rt.rs
index cffed48ad91ed1d935cc5a7af1b29a596927eb7a..a943cb4dd9ce05468f49fccd5e80c4d2c72b0478 100644
--- a/hercules_cg/src/rt.rs
+++ b/hercules_cg/src/rt.rs
@@ -235,7 +235,6 @@ impl<'a> RTContext<'a> {
                 // Call the device function
                 write!(w, "{}(", callee.name)?;
                 if self.backing_allocations[&callee_id].contains_key(&self.devices[callee_id.idx()]) {
-                    first_param = false;
                     write!(w, "backing, ")?;
                 }
                 for idx in 0..callee.num_dynamic_constants {