@@ -273,7 +273,7 @@ class CSourceCrtMetadataModuleNode : public runtime::ModuleNode {
273273 }
274274 call_args_ss << " " << input_var->name_hint << " ," ;
275275 }
276- for (int i = 0 ; i < metadata_->num_outputs -> value ; ++i) {
276+ for (unsigned int i = 0 ; i < metadata_->outputs . size () ; ++i) {
277277 call_args_ss << " void* output" << i << " ," ;
278278 }
279279 for (const tir::Var& pool_var : metadata_->pools ) {
@@ -300,7 +300,7 @@ class CSourceCrtMetadataModuleNode : public runtime::ModuleNode {
300300 for (unsigned int i = 0 ; i < metadata_->inputs .size (); ++i) {
301301 call_args_ss << " ((DLTensor*)(((TVMValue*)args)[" << i << " ].v_handle))[0].data," ;
302302 }
303- for (int i = 0 ; i < metadata_->num_outputs -> value ; ++i) {
303+ for (unsigned int i = 0 ; i < metadata_->outputs . size () ; ++i) {
304304 int j = metadata_->inputs .size () + i;
305305 call_args_ss << " ((DLTensor*)(((TVMValue*)args)[" << j << " ].v_handle))[0].data," ;
306306 }
@@ -328,7 +328,7 @@ class CSourceCrtMetadataModuleNode : public runtime::ModuleNode {
328328 entrypoint_arg_count++;
329329 run_func_arg_count++;
330330 }
331- for (int i = 0 ; i < metadata_->num_outputs -> value ; i++) {
331+ for (unsigned int i = 0 ; i < metadata_->outputs . size () ; i++) {
332332 run_func_to_entry_point_args[run_func_arg_count] = Integer (entrypoint_arg_count);
333333 entrypoint_arg_count++;
334334 run_func_arg_count++;
@@ -356,7 +356,7 @@ class CSourceCrtMetadataModuleNode : public runtime::ModuleNode {
356356
357357 // We are creating a copy of the set of pointers
358358 size_t number_of_io_tensors =
359- metadata_->inputs .size () + metadata_->num_outputs -> value + metadata_->pools .size ();
359+ metadata_->inputs .size () + metadata_->outputs . size () + metadata_->pools .size ();
360360 code_ << " TVMValue tensors[" << number_of_io_tensors << " ];\n " ;
361361
362362 std::unordered_map<int , ObjectRef> run_func_to_entry_point_args =
@@ -395,7 +395,7 @@ class CSourceCrtMetadataModuleNode : public runtime::ModuleNode {
395395 }
396396 call_args_ss << " " << relay::backend::SanitizeName (input_var->name_hint ) << " ," ;
397397 }
398- for (int i = 0 ; i < metadata_->num_outputs -> value ; ++i) {
398+ for (unsigned int i = 0 ; i < metadata_->outputs . size () ; ++i) {
399399 call_args_ss << " void* output" << i << " ," ;
400400 }
401401 for (const tir::Var& pool_var : metadata_->pools ) {
@@ -449,13 +449,11 @@ class CSourceCrtMetadataModuleNode : public runtime::ModuleNode {
449449 for (const auto & input : metadata_->inputs ) {
450450 call_args_ss << " inputs->" << relay::backend::SanitizeName (input->name_hint ) << " ," ;
451451 }
452- if (metadata_->num_outputs ->value == 1 ) {
453- call_args_ss << " outputs->output," ;
454- } else {
455- for (int i = 0 ; i < metadata_->num_outputs ->value ; ++i) {
456- call_args_ss << " outputs->output" << i << " ," ;
457- }
452+ for (const auto & output : metadata_->outputs ) {
453+ call_args_ss << " outputs->" << relay::backend::SanitizeName (output);
454+ call_args_ss << " ," ;
458455 }
456+
459457 for (const tir::Var& pool_var : metadata_->pools ) {
460458 String pool_name = metadata_->pool_inputs .value ()[pool_var]->pool_info ->pool_name ;
461459 if (IsInternalWorkspaceBuffer (pool_var)) {
0 commit comments