diff --git a/float_models/iree_exec/mnist.c b/float_models/iree_exec/mnist.c
index 9fdcea6..6053033 100644
--- a/float_models/iree_exec/mnist.c
+++ b/float_models/iree_exec/mnist.c
@@ -37,15 +37,17 @@
 
 MnistOutput score;
 
-iree_status_t create_module(iree_vm_module_t **module) {
+iree_status_t create_module(iree_vm_instance_t *instance,
+                            iree_vm_module_t **module) {
 #if !defined(BUILD_EMITC)
   const struct iree_file_toc_t *module_file_toc =
       float_models_mnist_bytecode_module_static_create();
   return iree_vm_bytecode_module_create(
+      instance,
       iree_make_const_byte_span(module_file_toc->data, module_file_toc->size),
       iree_allocator_null(), iree_allocator_system(), module);
 #else
-  return module_create(iree_allocator_system(), module);
+  return module_create(instance, iree_allocator_system(), module);
 #endif
 }
 
diff --git a/float_models/iree_exec/mobilenet_v1.c b/float_models/iree_exec/mobilenet_v1.c
index d8cbadd..82d9789 100644
--- a/float_models/iree_exec/mobilenet_v1.c
+++ b/float_models/iree_exec/mobilenet_v1.c
@@ -37,15 +37,17 @@
 
 MobilenetV1Output score;
 
-iree_status_t create_module(iree_vm_module_t **module) {
+iree_status_t create_module(iree_vm_instance_t *instance,
+                            iree_vm_module_t **module) {
 #if !defined(BUILD_EMITC)
   const struct iree_file_toc_t *module_file_toc =
       float_models_mobilenet_v1_bytecode_module_static_create();
   return iree_vm_bytecode_module_create(
+      instance,
       iree_make_const_byte_span(module_file_toc->data, module_file_toc->size),
       iree_allocator_null(), iree_allocator_system(), module);
 #else
-  return module_create(iree_allocator_system(), module);
+  return module_create(instance, iree_allocator_system(), module);
 #endif
 }
 
diff --git a/quant_models/iree_exec/mobilenet_v1.c b/quant_models/iree_exec/mobilenet_v1.c
index 641815e..dd7e8e9 100644
--- a/quant_models/iree_exec/mobilenet_v1.c
+++ b/quant_models/iree_exec/mobilenet_v1.c
@@ -37,15 +37,17 @@
 
 MobilenetV1Output score;
 
-iree_status_t create_module(iree_vm_module_t **module) {
+iree_status_t create_module(iree_vm_instance_t *instance,
+                            iree_vm_module_t **module) {
 #if !defined(BUILD_EMITC)
   const struct iree_file_toc_t *module_file_toc =
       quant_models_mobilenet_v1_bytecode_module_static_create();
   return iree_vm_bytecode_module_create(
+      instance,
       iree_make_const_byte_span(module_file_toc->data, module_file_toc->size),
       iree_allocator_null(), iree_allocator_system(), module);
 #else
-  return module_create(iree_allocator_system(), module);
+  return module_create(instance, iree_allocator_system(), module);
 #endif
 }
 
diff --git a/quant_models/iree_exec/mobilenet_v2.c b/quant_models/iree_exec/mobilenet_v2.c
index 2b00c89..74caa34 100644
--- a/quant_models/iree_exec/mobilenet_v2.c
+++ b/quant_models/iree_exec/mobilenet_v2.c
@@ -37,15 +37,17 @@
 
 MobilenetV2Output score;
 
-iree_status_t create_module(iree_vm_module_t **module) {
+iree_status_t create_module(iree_vm_instance_t *instance,
+                            iree_vm_module_t **module) {
 #if !defined(BUILD_EMITC)
   const struct iree_file_toc_t *module_file_toc =
       quant_models_mobilenet_v2_bytecode_module_static_create();
   return iree_vm_bytecode_module_create(
+      instance,
       iree_make_const_byte_span(module_file_toc->data, module_file_toc->size),
       iree_allocator_null(), iree_allocator_system(), module);
 #else
-  return module_create(iree_allocator_system(), module);
+  return module_create(instance, iree_allocator_system(), module);
 #endif
 }
 
diff --git a/quant_models/iree_exec/person_detection.c b/quant_models/iree_exec/person_detection.c
index cc0b324..93de25b 100644
--- a/quant_models/iree_exec/person_detection.c
+++ b/quant_models/iree_exec/person_detection.c
@@ -37,15 +37,17 @@
 
 PersonDetectionOutput detection;
 
-iree_status_t create_module(iree_vm_module_t **module) {
+iree_status_t create_module(iree_vm_instance_t *instance,
+                            iree_vm_module_t **module) {
 #if !defined(BUILD_EMITC)
   const struct iree_file_toc_t *module_file_toc =
       quant_models_person_detection_bytecode_module_static_create();
   return iree_vm_bytecode_module_create(
+      instance,
       iree_make_const_byte_span(module_file_toc->data, module_file_toc->size),
       iree_allocator_null(), iree_allocator_system(), module);
 #else
-  return module_create(iree_allocator_system(), module);
+  return module_create(instance, iree_allocator_system(), module);
 #endif
 }
 
