diff --git a/compiler/optimizer/optimizations/inline_call_intrinsics.cpp b/compiler/optimizer/optimizations/inline_call_intrinsics.cpp index bfdc1f08fd7055cf9282d582bf7b7a0b4f31e8a6..b8b2e6a3a97fc87b74bdb45969a04567ff793ef7 100644 --- a/compiler/optimizer/optimizations/inline_call_intrinsics.cpp +++ b/compiler/optimizer/optimizations/inline_call_intrinsics.cpp @@ -57,12 +57,7 @@ Inst *InlineCallIntrinsics::CreateAllocDynObjIntrinsic(Inst *ctor, SaveStateInst { auto alloc_obj = GetGraph()->CreateInstIntrinsic(DataType::ANY, pc, RuntimeInterface::IntrinsicId::INTRINSIC_ALLOC_DYN_OBJECT); - alloc_obj->ReserveInputs(2); - alloc_obj->AllocateInputTypes(GetGraph()->GetAllocator(), 2); - alloc_obj->AppendInput(ctor); - alloc_obj->AddInputType(DataType::ANY); - alloc_obj->AppendInput(ss); - alloc_obj->AddInputType(DataType::NO_TYPE); + alloc_obj->SetInputs(GetGraph()->GetAllocator(), {{ctor, DataType::ANY}, {ss, DataType::NO_TYPE}}); return alloc_obj; } @@ -72,18 +67,13 @@ Inst *InlineCallIntrinsics::NewObjCreateConstructorCall(Inst *orig_call, Inst *a auto call_ctor = GetGraph()->CreateInstCallDynamic(DataType::ANY, pc); call_ctor->ReserveInputs(orig_call->GetInputsCount() + 1); call_ctor->AllocateInputTypes(GetGraph()->GetAllocator(), orig_call->GetInputsCount() + 1); - call_ctor->AppendInput(orig_call->GetInput(1)); - call_ctor->AddInputType(DataType::ANY); - call_ctor->AppendInput(orig_call->GetInput(2)); - call_ctor->AddInputType(DataType::ANY); - call_ctor->AppendInput(alloc_obj); - call_ctor->AddInputType(DataType::ANY); + call_ctor->AppendInputs({{orig_call->GetInput(1).GetInst(), DataType::ANY}, + {orig_call->GetInput(2).GetInst(), DataType::ANY}, + {alloc_obj, DataType::ANY}}); for (size_t i = 3; i < orig_call->GetInputsCount() - 1; ++i) { - call_ctor->AppendInput(orig_call->GetInput(i)); - call_ctor->AddInputType(orig_call->GetInputType(i)); + call_ctor->AppendInputAndType(orig_call->GetInput(i).GetInst(), orig_call->GetInputType(i)); } - call_ctor->AppendInput(ss); - call_ctor->AddInputType(DataType::NO_TYPE); + call_ctor->AppendInputAndType(ss, DataType::NO_TYPE); return call_ctor; } @@ -140,16 +130,10 @@ Inst *InlineCallIntrinsics::NewObjResolveCtorResult(InstAppender *appender, Inst auto resolve_result = GetGraph()->CreateInstIntrinsic( DataType::ANY, pc, RuntimeInterface::IntrinsicId::INTRINSIC_RESOLVE_ALLOC_RESULT); - resolve_result->ReserveInputs(4); - resolve_result->AllocateInputTypes(GetGraph()->GetAllocator(), 4); - resolve_result->AppendInput(orig_alloc->GetInput(1)); - resolve_result->AddInputType(DataType::ANY); - resolve_result->AppendInput(alloc_obj); - resolve_result->AddInputType(DataType::ANY); - resolve_result->AppendInput(call_ctor); - resolve_result->AddInputType(DataType::ANY); - resolve_result->AppendInput(ss_copy_2); - resolve_result->AddInputType(DataType::NO_TYPE); + resolve_result->SetInputs(GetGraph()->GetAllocator(), {{orig_alloc->GetInput(1).GetInst(), DataType::ANY}, + {alloc_obj, DataType::ANY}, + {call_ctor, DataType::ANY}, + {ss_copy_2, DataType::NO_TYPE}}); resolve_result->SetInlined(true); appender->Append({ss_copy_2, resolve_result});