diff --git a/src/backends/llvm.c b/src/backends/llvm.c
index 24111452ce56965ea03c4101d12da616ac792f35..1c42259119e345b1a4932c3d0752d10be9321bc8 100644
--- a/src/backends/llvm.c
+++ b/src/backends/llvm.c
@@ -116,14 +116,7 @@ int h_llvm_compile(HAllocator* mm__, HParser* parser, const void* params) {
     char* dump = LLVMPrintModuleToString(mod);
     fprintf(stderr, "\n\n%s\n\n", dump);
     // Package up the pointers that comprise the module and stash it in the original HParser
-    HLLVMParser *llvm_parser;
-    if (!(parser->backend_data)) {
-      llvm_parser = h_new(HLLVMParser, 1);
-      parser->backend_data = llvm_parser;
-    } else {
-      llvm_parser = parser->backend_data;
-      memset(llvm_parser, 0, sizeof(*llvm_parser));
-    }
+    HLLVMParser *llvm_parser = h_new(HLLVMParser, 1);
     llvm_parser->mod = mod;
     llvm_parser->func = parse_func;
     llvm_parser->engine = engine;