Lines Matching refs:program
130 …::string AsmEmitter::GetMethodSignatureFromProgram(const std::string &name, const Program &program) in GetMethodSignatureFromProgram() argument
136 const auto it_synonym = program.function_synonyms.find(name); in GetMethodSignatureFromProgram()
137 const bool is_method_known = (it_synonym != program.function_synonyms.end()); in GetMethodSignatureFromProgram()
257 …ontainer *container, const Value *value, std::vector<ScalarValueItem> *out, const Program &program, in CreateScalarMethodValueItem() argument
262 name = GetMethodSignatureFromProgram(name, program); in CreateScalarMethodValueItem()
280 …ontainer *container, const Value *value, std::vector<ScalarValueItem> *out, const Program &program, in CreateScalarLiteralArrayItem() argument
317 …ontainer *container, const Value *value, std::vector<ScalarValueItem> *out, const Program &program, in CreateScalarAnnotationValueItem() argument
321 auto *annotation_item = CreateAnnotationItem(container, annotation, program, entities); in CreateScalarAnnotationValueItem()
336 … std::vector<ScalarValueItem> *out, const Program &program, in CreateScalarValueItem() argument
369 … return CreateScalarMethodValueItem(container, value, out, program, entities.method_items); in CreateScalarValueItem()
375 return CreateScalarAnnotationValueItem(container, value, out, program, entities); in CreateScalarValueItem()
378 … return CreateScalarLiteralArrayItem(container, value, out, program, entities.literalarray_items); in CreateScalarValueItem()
388 … *AsmEmitter::CreateValueItem(ItemContainer *container, const Value *value, const Program &program, in CreateValueItem() argument
396 CreateScalarValueItem(container, &elem_value, &elements, program, entities); in CreateValueItem()
407 return CreateScalarValueItem(container, value, nullptr, program, entities); in CreateValueItem()
414 const Program &program, const AsmEmitter::AsmEntityCollections &entities) in CreateAnnotationItem() argument
417 auto it = program.record_table.find(record_name); in CreateAnnotationItem()
418 if (it == program.record_table.cend()) { in CreateAnnotationItem()
449 auto *item = CreateValueItem(container, value, program, entities); in CreateAnnotationItem()
494 … const Program &program, const AsmEmitter::AsmEntityCollections &entities) in AddAnnotations() argument
497 auto *annotation_item = CreateAnnotationItem(container, annotation, program, entities); in AddAnnotations()
502 auto &record = program.record_table.find(annotation.GetName())->second; in AddAnnotations()
585 void AsmEmitter::MakeStringItems(ItemContainer *items, const Program &program, in MakeStringItems() argument
588 for (const auto &s : program.strings) { in MakeStringItems()
595 void AsmEmitter::MakeLiteralItems(ItemContainer *items, const Program &program, in MakeLiteralItems() argument
598 for (const auto &[id, l] : program.literalarray_table) { in MakeLiteralItems()
603 for (const auto &[id, l] : program.literalarray_table) { in MakeLiteralItems()
610 ASSERT(program.array_types.find(Type("u1", 1)) != program.array_types.end()); in MakeLiteralItems()
616 ASSERT(program.array_types.find(Type("u8", 1)) != program.array_types.end()); in MakeLiteralItems()
622 ASSERT(program.array_types.find(Type("i8", 1)) != program.array_types.end()); in MakeLiteralItems()
628 ASSERT(program.array_types.find(Type("u16", 1)) != program.array_types.end()); in MakeLiteralItems()
634 ASSERT(program.array_types.find(Type("i16", 1)) != program.array_types.end()); in MakeLiteralItems()
640 ASSERT(program.array_types.find(Type("u32", 1)) != program.array_types.end()); in MakeLiteralItems()
646 ASSERT(program.array_types.find(Type("i32", 1)) != program.array_types.end()); in MakeLiteralItems()
652 ASSERT(program.array_types.find(Type("u64", 1)) != program.array_types.end()); in MakeLiteralItems()
658 ASSERT(program.array_types.find(Type("i64", 1)) != program.array_types.end()); in MakeLiteralItems()
664 ASSERT(program.array_types.find(Type("f32", 1)) != program.array_types.end()); in MakeLiteralItems()
670 ASSERT(program.array_types.find(Type("f64", 1)) != program.array_types.end()); in MakeLiteralItems()
676 ASSERT(program.array_types.find(Type( in MakeLiteralItems()
677 … Type::FromDescriptor(panda::panda_file::GetStringClassDescriptor(program.lang)), 1)) != in MakeLiteralItems()
678 program.array_types.end()); in MakeLiteralItems()
738 void AsmEmitter::MakeArrayTypeItems(ItemContainer *items, const Program &program, in MakeArrayTypeItems() argument
741 for (const auto &t : program.array_types) { in MakeArrayTypeItems()
749 ItemContainer *items, const Program &program, AsmEmitter::AsmEntityCollections &entities, in HandleRecordAsForeign() argument
764 auto *type_item = GetTypeItem(items, primitive_types, f.type, program); in HandleRecordAsForeign()
776 bool AsmEmitter::HandleBaseRecord(ItemContainer *items, const Program &program, const std::string &… in HandleBaseRecord() argument
781 auto it = program.record_table.find(base_name); in HandleBaseRecord()
782 if (it == program.record_table.cend()) { in HandleBaseRecord()
798 bool AsmEmitter::HandleInterfaces(ItemContainer *items, const Program &program, const std::string &… in HandleInterfaces() argument
803 auto it = program.record_table.find(item); in HandleInterfaces()
804 if (it == program.record_table.cend()) { in HandleInterfaces()
820 bool AsmEmitter::HandleFields(ItemContainer *items, const Program &program, AsmEmitter::AsmEntityCo… in HandleFields() argument
827 auto *type_item = GetTypeItem(items, primitive_types, f.type, program); in HandleFields()
844 bool AsmEmitter::HandleRecord(ItemContainer *items, const Program &program, AsmEmitter::AsmEntityCo… in HandleRecord() argument
860 if (!HandleBaseRecord(items, program, name, rec, record)) { in HandleRecord()
864 if (!HandleInterfaces(items, program, name, rec, record)) { in HandleRecord()
868 if (!HandleFields(items, program, entities, primitive_types, name, rec, record)) { in HandleRecord()
877 ItemContainer *items, const Program &program, AsmEmitter::AsmEntityCollections &entities, in MakeRecordItems() argument
880 for (const auto &[name, rec] : program.record_table) { in MakeRecordItems()
882 if (!HandleRecordAsForeign(items, program, entities, primitive_types, name, rec)) { in MakeRecordItems()
886 if (!HandleRecord(items, program, entities, primitive_types, name, rec)) { in MakeRecordItems()
907 bool AsmEmitter::HandleAreaForInner(ItemContainer *items, const Program &program, ClassItem **area, in HandleAreaForInner() argument
911 auto iter = program.record_table.find(record_owner_name); in HandleAreaForInner()
912 if (iter != program.record_table.end()) { in HandleAreaForInner()
934 bool AsmEmitter::HandleRecordOnwer(ItemContainer *items, const Program &program, ClassItem **area, in HandleRecordOnwer() argument
941 (*area)->SetSourceLang(program.lang); in HandleRecordOnwer()
943 if (!HandleAreaForInner(items, program, area, foreign_area, name, record_owner_name)) { in HandleRecordOnwer()
952 …ItemContainer *items, const Program &program, size_t idx, const std::string &name, const Function … in HandleFunctionParams() argument
958 auto *type_item = GetTypeItem(items, primitive_types, p, program); in HandleFunctionParams()
1031 ItemContainer *items, const Program &program, AsmEmitter::AsmEntityCollections &entities, in MakeFunctionItems() argument
1034 for (const auto &f : program.function_table) { in MakeFunctionItems()
1045 if (!HandleRecordOnwer(items, program, &area, &foreign_area, name, record_owner_name)) { in MakeFunctionItems()
1060 if (!HandleFunctionParams(items, program, idx, name, func, primitive_types, params)) { in MakeFunctionItems()
1068 auto *type_item = GetTypeItem(items, primitive_types, func.return_type, program); in MakeFunctionItems()
1083 bool AsmEmitter::MakeRecordAnnotations(ItemContainer *items, const Program &program, in MakeRecordAnnotations() argument
1086 for (const auto &[name, record] : program.record_table) { in MakeRecordAnnotations()
1092 if (!AddAnnotations(class_item, items, *record.metadata, program, entities)) { in MakeRecordAnnotations()
1100 if (!AddAnnotations(field_item, items, *field.metadata, program, entities)) { in MakeRecordAnnotations()
1108 auto *item = CreateValueItem(items, &value, program, entities); in MakeRecordAnnotations()
1147 bool AsmEmitter::AddMethodAndParamsAnnotations(ItemContainer *items, const Program &program, in AddMethodAndParamsAnnotations() argument
1151 if (!AddAnnotations(method, items, *func.metadata, program, entities)) { in AddMethodAndParamsAnnotations()
1161 if (!AddAnnotations(¶m_item, items, *param.metadata, program, entities)) { in AddMethodAndParamsAnnotations()
1180 bool AsmEmitter::MakeFunctionDebugInfoAndAnnotations(ItemContainer *items, const Program &program, in MakeFunctionDebugInfoAndAnnotations() argument
1184 for (const auto &[name, func] : program.function_table) { in MakeFunctionDebugInfoAndAnnotations()
1198 if (!AddMethodAndParamsAnnotations(items, program, entities, method, func)) { in MakeFunctionDebugInfoAndAnnotations()
1230 void AsmEmitter::EmitDebugInfo(ItemContainer *items, const Program &program, const std::vector<uint… in EmitDebugInfo() argument
1245 auto &rec = program.record_table.find(record_name)->second; in EmitDebugInfo()
1263 bool AsmEmitter::EmitFunctions(ItemContainer *items, const Program &program, in EmitFunctions() argument
1266 for (const auto &f : program.function_table) { in EmitFunctions()
1301 EmitDebugInfo(items, program, bytes, method, func, name, emit_debug_info); in EmitFunctions()
1307 bool AsmEmitter::MakeItemsForSingleProgram(ItemContainer *items, const Program &program, bool emit_… in MakeItemsForSingleProgram() argument
1311 MakeStringItems(items, program, entities); in MakeItemsForSingleProgram()
1312 MakeArrayTypeItems(items, program, entities); in MakeItemsForSingleProgram()
1313 if (!MakeRecordItems(items, program, entities, primitive_types)) { in MakeItemsForSingleProgram()
1316 if (!MakeFunctionItems(items, program, entities, primitive_types, emit_debug_info)) { in MakeItemsForSingleProgram()
1319 MakeLiteralItems(items, program, entities); in MakeItemsForSingleProgram()
1321 if (!MakeRecordAnnotations(items, program, entities)) { in MakeItemsForSingleProgram()
1439 bool AsmEmitter::Emit(ItemContainer *items, const Program &program, PandaFileToPandaAsmMaps *maps, … in Emit() argument
1442 MakeSlotNumberRecord(const_cast<Program *>(&program)); in Emit()
1443 MakeSlotNumberAnnotation(const_cast<Program *>(&program)); in Emit()
1450 if (!MakeItemsForSingleProgram(items, program, emit_debug_info, entities, primitive_types)) { in Emit()
1455 if (!MakeFunctionDebugInfoAndAnnotations(items, program, entities, emit_debug_info)) { in Emit()
1469 if (!EmitFunctions(items, program, entities, emit_debug_info)) { in Emit()
1476 bool AsmEmitter::Emit(Writer *writer, const Program &program, std::map<std::string, size_t> *stat, in Emit() argument
1481 if (!Emit(&items, program, maps, debug_info, profile_opt)) { in Emit()
1492 bool AsmEmitter::Emit(const std::string &filename, const Program &program, std::map<std::string, si… in Emit() argument
1501 return Emit(&writer, program, stat, maps, debug_info, profile_opt, api); in Emit()
1504 std::unique_ptr<const panda_file::File> AsmEmitter::Emit(const Program &program, PandaFileToPandaAs… in Emit() argument
1508 if (!Emit(&items, program, maps)) { in Emit()
1527 const Type &type, const Program &program) in GetTypeItem() argument
1538 auto iter = program.record_table.find(name); in GetTypeItem()
1539 if (iter == program.record_table.end()) { in GetTypeItem()
1584 static void TryEmitPc(panda_file::LineNumberProgramItem *program, std::vector<uint8_t> *constant_po… in TryEmitPc() argument
1588 program->EmitAdvancePc(constant_pool, pc_inc); in TryEmitPc()
1593 void Function::EmitLocalVariable(panda_file::LineNumberProgramItem *program, ItemContainer *contain… in EmitLocalVariable() argument
1601 TryEmitPc(program, constant_pool, pc_inc); in EmitLocalVariable()
1605 program->EmitStartLocal(constant_pool, v.reg, variable_name, variable_type); in EmitLocalVariable()
1608 …program->EmitStartLocalExtended(constant_pool, v.reg, variable_name, variable_type, type_signature… in EmitLocalVariable()
1613 TryEmitPc(program, constant_pool, pc_inc); in EmitLocalVariable()
1614 program->EmitEndLocal(v.reg); in EmitLocalVariable()
1628 void Function::EmitNumber(panda_file::LineNumberProgramItem *program, std::vector<uint8_t> *constan… in EmitNumber() argument
1631 if (!program->EmitSpecialOpcode(pc_inc, line_inc)) { in EmitNumber()
1633 program->EmitAdvancePc(constant_pool, pc_inc); in EmitNumber()
1634 if (!program->EmitSpecialOpcode(0, line_inc)) { in EmitNumber()
1635 program->EmitAdvanceLine(constant_pool, line_inc); in EmitNumber()
1636 program->EmitSpecialOpcode(0, 0); in EmitNumber()
1639 program->EmitAdvanceLine(constant_pool, line_inc); in EmitNumber()
1640 program->EmitSpecialOpcode(0, 0); in EmitNumber()
1645 void Function::EmitLineNumber(panda_file::LineNumberProgramItem *program, std::vector<uint8_t> *con… in EmitLineNumber() argument
1651 EmitNumber(program, constant_pool, pc_inc, line_inc); in EmitLineNumber()
1656 void Function::EmitColumnNumber(panda_file::LineNumberProgramItem *program, std::vector<uint8_t> *c… in EmitColumnNumber() argument
1661 program->EmitColumn(constant_pool, pc_inc, cn); in EmitColumnNumber()
1688 auto *program = debug_item->GetLineNumberProgram(); in BuildLineNumberProgram() local
1691 program->EmitEnd(); in BuildLineNumberProgram()
1715 EmitLineNumber(program, constant_pool, prev_line_number, pc_inc, i); in BuildLineNumberProgram()
1718 EmitColumnNumber(program, constant_pool, prev_column_number, pc_inc, i); in BuildLineNumberProgram()
1727 EmitLocalVariable(program, container, constant_pool, pc_inc, end, iter->variable_index); in BuildLineNumberProgram()
1733 program->EmitEnd(); in BuildLineNumberProgram()