• Home
  • Raw
  • Download

Lines Matching +full:panda +full:- +full:options

2  * Copyright (c) 2021-2022 Huawei Device Co., Ltd.
7 * http://www.apache.org/licenses/LICENSE-2.0
19 #include <assembly-program.h>
20 #include <assembly-emitter.h>
25 #include <options.h>
34 namespace panda::es2panda::aot { namespace
56 static void GenerateBase64Output(panda::pandasm::Program *prog, in GenerateBase64Output()
57 const std::unique_ptr<panda::es2panda::aot::Options> &options) in GenerateBase64Output() argument
59 …auto pandaFile = panda::pandasm::AsmEmitter::Emit(*prog, nullptr, options->CompilerOptions().targe… in GenerateBase64Output()
60 options->CompilerOptions().targetApiSubVersion); in GenerateBase64Output()
61 const uint8_t *buffer = pandaFile->GetBase(); in GenerateBase64Output()
62 size_t size = pandaFile->GetPtr().GetSize(); in GenerateBase64Output()
71 std::cout << "Panda file size statistic:" << std::endl; in DumpPandaFileSizeStatistic()
92 std::cout << "Panda file size statistic:" << std::endl; in DumpPandaFileSizePctStatistic()
118 static bool GenerateProgramsByWorkers(const std::map<std::string, panda::es2panda::util::ProgramCac… in GenerateProgramsByWorkers()
119 …const std::unique_ptr<panda::es2panda::aot::Options> &options, std::map<std::string, size_t> *stat… in GenerateProgramsByWorkers() argument
121 auto queue = new panda::es2panda::aot::EmitFileQueue(options, statp, programsInfo); in GenerateProgramsByWorkers()
125 queue->Schedule(); in GenerateProgramsByWorkers()
126 queue->Consume(); in GenerateProgramsByWorkers()
127 queue->Wait(); in GenerateProgramsByWorkers()
139 static void DumpProgramInfos(const std::map<std::string, panda::es2panda::util::ProgramCache*> &pro… in DumpProgramInfos()
140 const std::unique_ptr<panda::es2panda::aot::Options> &options) in DumpProgramInfos() argument
142 const es2panda::CompilerOptions &compilerOptions = options->CompilerOptions(); in DumpProgramInfos()
147panda::abc2program::PandasmProgramDumper dumper(compilerOptions.dumpNormalizedAsmProgram, in DumpProgramInfos()
149 dumper.Dump(std::cout, progInfo.second->program); in DumpProgramInfos()
153 es2panda::Compiler::DumpAsm(&(progInfo.second->program)); in DumpProgramInfos()
157panda::es2panda::util::Dumper::DumpLiterals(progInfo.second->program.literalarray_table); in DumpProgramInfos()
161 panda::es2panda::util::Dumper::DumpStrings(progInfo.second->program.strings); in DumpProgramInfos()
167 static bool GenerateProgram(std::map<std::string, panda::es2panda::util::ProgramCache*> &programsIn… in GenerateProgram()
168 const std::unique_ptr<panda::es2panda::aot::Options> &options, in GenerateProgram() argument
171 DumpProgramInfos(programsInfo, options); in GenerateProgram()
174 auto *prog = &(programsInfo.begin()->second->program); in GenerateProgram()
175 if (options->OutputFiles().empty() && options->CompilerOutput().empty()) { in GenerateProgram()
176 GenerateBase64Output(prog, options); in GenerateProgram()
180 …// Disable generating cached files when cross-program optimization is required, to prevent cached … in GenerateProgram()
182 …if (options->compilerProtoOutput().size() > 0 && !options->CompilerOptions().requireGlobalOptimiza… in GenerateProgram()
183panda::proto::ProtobufSnapshotGenerator::GenerateSnapshot(*prog, options->compilerProtoOutput()); in GenerateProgram()
188 if (options->NeedRemoveRedundantRecord()) { in GenerateProgram()
190 DumpProgramInfos(programsInfo, options); in GenerateProgram()
193 bool dumpSize = options->SizeStat(); in GenerateProgram()
194 bool dumpSizePct = options->SizePctStat(); in GenerateProgram()
198 if (!GenerateProgramsByWorkers(programsInfo, options, statp)) { in GenerateProgram()
214 … std::map<std::string, panda::es2panda::util::ProgramCache*> programsInfo) in CheckMergeModeConsistency()
230 … std::cerr << "Current compile mode is merge-abc, all input abc files must be merged mode. " in CheckMergeModeConsistency()
236 recordNameMap.find(abcFileName)->second.insert(recordName); in CheckMergeModeConsistency()
246 … std::cerr << "Current compile mode is non merge-abc, all input abc files must be unmerged mode. " in CheckMergeModeConsistency()
256 static bool GenerateAbcFiles(std::map<std::string, panda::es2panda::util::ProgramCache*> &programsI… in GenerateAbcFiles()
257 … const std::unique_ptr<panda::es2panda::aot::Options> &options, size_t expectedProgsCount, in GenerateAbcFiles() argument
266 if (!GenerateProgram(programsInfo, options, resolvedDepsRelation)) { in GenerateAbcFiles()
274 static bool ResolveDepsRelations(const std::map<std::string, panda::es2panda::util::ProgramCache *>… in ResolveDepsRelations()
275 const std::unique_ptr<panda::es2panda::aot::Options> &options, in ResolveDepsRelations() argument
278panda::es2panda::aot::DepsRelationResolver depsRelationResolver(programsInfo, options, resolvedDep… in ResolveDepsRelations()
284 auto options = std::make_unique<Options>(); in Run() local
285 if (!options->Parse(argc, argv)) { in Run()
286 std::cerr << options->ErrorMsg() << std::endl; in Run()
290 if (options->CompilerOptions().targetBcVersion) { in Run()
291 …auto bcVersionByApi = panda::panda_file::GetVersionByApi(options->CompilerOptions().targetApiVersi… in Run()
292 options->CompilerOptions().targetApiSubVersion); in Run()
293 std::cout << panda::panda_file::GetVersion(bcVersionByApi.value()); in Run()
297 if (options->CompilerOptions().bcVersion || options->CompilerOptions().bcMinVersion) { in Run()
298 std::string version = options->CompilerOptions().bcVersion ? in Run()
299 panda::panda_file::GetVersion(panda::panda_file::version) : in Run()
300 panda::panda_file::GetVersion(panda::panda_file::minVersion); in Run()
305 std::map<std::string, panda::es2panda::util::ProgramCache*> programsInfo; in Run()
306 panda::ArenaAllocator allocator(panda::SpaceType::SPACE_TYPE_COMPILER, nullptr, true); in Run()
308 Compiler::SetExpectedProgsCount(options->CompilerOptions().sourceFiles.size()); in Run()
309 int ret = Compiler::CompileFiles(options->CompilerOptions(), programsInfo, &allocator); in Run()
311 if (!CheckMergeModeConsistency(options->CompilerOptions().mergeAbc, programsInfo)) { in Run()
315 if (options->ParseOnly()) { in Run()
319 if (!options->NpmModuleEntryList().empty()) { in Run()
320 es2panda::util::ModuleHelpers::CompileNpmModuleEntryList(options->NpmModuleEntryList(), in Run()
321 options->CompilerOptions(), programsInfo, &allocator); in Run()
328 if (options->NeedCollectDepsRelation() && in Run()
329 !ResolveDepsRelations(programsInfo, options, resolvedDepsRelation)) { in Run()
333 …if (!GenerateAbcFiles(programsInfo, options, Compiler::GetExpectedProgsCount(), resolvedDepsRelati… in Run()
339 } // namespace panda::es2panda::aot
343 panda::es2panda::aot::MemManager mm; in main()
344 return panda::es2panda::aot::Run(argc, argv); in main()