• 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
27 namespace panda::es2panda::aot { namespace
49 static void GenerateBase64Output(panda::pandasm::Program *prog, in GenerateBase64Output()
50 const std::unique_ptr<panda::es2panda::aot::Options> &options) in GenerateBase64Output() argument
52 …auto pandaFile = panda::pandasm::AsmEmitter::Emit(*prog, nullptr, options->CompilerOptions().targe… in GenerateBase64Output()
53 options->CompilerOptions().targetApiSubVersion); in GenerateBase64Output()
54 const uint8_t *buffer = pandaFile->GetBase(); in GenerateBase64Output()
55 size_t size = pandaFile->GetPtr().GetSize(); in GenerateBase64Output()
64 std::cout << "Panda file size statistic:" << std::endl; in DumpPandaFileSizeStatistic()
85 std::cout << "Panda file size statistic:" << std::endl; in DumpPandaFileSizePctStatistic()
111 static bool GenerateProgramsByWorkers(const std::map<std::string, panda::es2panda::util::ProgramCac… in GenerateProgramsByWorkers()
112 …const std::unique_ptr<panda::es2panda::aot::Options> &options, std::map<std::string, size_t> *stat… in GenerateProgramsByWorkers() argument
114 auto queue = new panda::es2panda::aot::EmitFileQueue(options, statp, programsInfo); in GenerateProgramsByWorkers()
118 queue->Schedule(); in GenerateProgramsByWorkers()
119 queue->Consume(); in GenerateProgramsByWorkers()
120 queue->Wait(); in GenerateProgramsByWorkers()
132 static void DumpProgramInfos(const std::map<std::string, panda::es2panda::util::ProgramCache*> &pro… in DumpProgramInfos()
133 const std::unique_ptr<panda::es2panda::aot::Options> &options) in DumpProgramInfos() argument
135 const es2panda::CompilerOptions &compilerOptions = options->CompilerOptions(); in DumpProgramInfos()
140panda::abc2program::PandasmProgramDumper dumper(compilerOptions.dumpNormalizedAsmProgram, in DumpProgramInfos()
142 dumper.Dump(std::cout, progInfo.second->program); in DumpProgramInfos()
146 es2panda::Compiler::DumpAsm(&(progInfo.second->program)); in DumpProgramInfos()
150panda::es2panda::util::Dumper::DumpLiterals(progInfo.second->program.literalarray_table); in DumpProgramInfos()
154 panda::es2panda::util::Dumper::DumpStrings(progInfo.second->program.strings); in DumpProgramInfos()
160 static bool GenerateProgram(std::map<std::string, panda::es2panda::util::ProgramCache*> &programsIn… in GenerateProgram()
161 const std::unique_ptr<panda::es2panda::aot::Options> &options, in GenerateProgram() argument
164 DumpProgramInfos(programsInfo, options); in GenerateProgram()
167 auto *prog = &(programsInfo.begin()->second->program); in GenerateProgram()
168 if (options->OutputFiles().empty() && options->CompilerOutput().empty()) { in GenerateProgram()
169 GenerateBase64Output(prog, options); in GenerateProgram()
173 …// Disable generating cached files when cross-program optimization is required, to prevent cached … in GenerateProgram()
175 …if (options->CompilerProtoOutput().size() > 0 && !options->CompilerOptions().requireGlobalOptimiza… in GenerateProgram()
176panda::proto::ProtobufSnapshotGenerator::GenerateSnapshot(*prog, options->CompilerProtoOutput()); in GenerateProgram()
181 if (options->NeedRemoveRedundantRecord()) { in GenerateProgram()
183 DumpProgramInfos(programsInfo, options); in GenerateProgram()
186 bool dumpSize = options->SizeStat(); in GenerateProgram()
187 bool dumpSizePct = options->SizePctStat(); in GenerateProgram()
191 if (!GenerateProgramsByWorkers(programsInfo, options, statp)) { in GenerateProgram()
207 … std::map<std::string, panda::es2panda::util::ProgramCache*> programsInfo) in CheckMergeModeConsistency()
223 … std::cerr << "Current compile mode is merge-abc, all input abc files must be merged mode. " in CheckMergeModeConsistency()
229 recordNameMap.find(abcFileName)->second.insert(recordName); in CheckMergeModeConsistency()
239 … std::cerr << "Current compile mode is non merge-abc, all input abc files must be unmerged mode. " in CheckMergeModeConsistency()
249 static bool GenerateAbcFiles(std::map<std::string, panda::es2panda::util::ProgramCache*> &programsI… in GenerateAbcFiles()
250 … const std::unique_ptr<panda::es2panda::aot::Options> &options, size_t expectedProgsCount, in GenerateAbcFiles() argument
259 if (!GenerateProgram(programsInfo, options, resolvedDepsRelation)) { in GenerateAbcFiles()
267 static bool ResolveDepsRelations(const std::map<std::string, panda::es2panda::util::ProgramCache *>… in ResolveDepsRelations()
268 const std::unique_ptr<panda::es2panda::aot::Options> &options, in ResolveDepsRelations() argument
271panda::es2panda::aot::DepsRelationResolver depsRelationResolver(programsInfo, options, resolvedDep… in ResolveDepsRelations()
275 static bool ResolveAndGenerate(std::map<std::string, panda::es2panda::util::ProgramCache*> &program… in ResolveAndGenerate()
276 const std::unique_ptr<panda::es2panda::aot::Options> &options) in ResolveAndGenerate() argument
278 panda::Timer::timerStart(panda::EVENT_RESOLVE_DEPS, ""); in ResolveAndGenerate()
282 if (options->NeedCollectDepsRelation() && in ResolveAndGenerate()
283 !ResolveDepsRelations(programsInfo, options, resolvedDepsRelation)) { in ResolveAndGenerate()
286 panda::Timer::timerEnd(panda::EVENT_RESOLVE_DEPS, ""); in ResolveAndGenerate()
288 panda::Timer::timerStart(panda::EVENT_EMIT_ABC, ""); in ResolveAndGenerate()
289 …if (!GenerateAbcFiles(programsInfo, options, Compiler::GetExpectedProgsCount(), resolvedDepsRelati… in ResolveAndGenerate()
292 panda::Timer::timerEnd(panda::EVENT_EMIT_ABC, ""); in ResolveAndGenerate()
299 auto options = std::make_unique<Options>(); in Run() local
300 if (!options->Parse(argc, argv)) { in Run()
301 std::cerr << options->ErrorMsg() << std::endl; in Run()
305 if (options->CompilerOptions().targetBcVersion) { in Run()
306 …auto bcVersionByApi = panda::panda_file::GetVersionByApi(options->CompilerOptions().targetApiVersi… in Run()
307 options->CompilerOptions().targetApiSubVersion); in Run()
308 std::cout << panda::panda_file::GetVersion(bcVersionByApi.value()); in Run()
312 panda::Timer::timerStart(panda::EVENT_TOTAL, ""); in Run()
313 if (options->CompilerOptions().bcVersion || options->CompilerOptions().bcMinVersion) { in Run()
314 std::string version = options->CompilerOptions().bcVersion ? in Run()
315 panda::panda_file::GetVersion(panda::panda_file::version) : in Run()
316 panda::panda_file::GetVersion(panda::panda_file::minVersion); in Run()
321 std::map<std::string, panda::es2panda::util::ProgramCache*> programsInfo; in Run()
322 panda::ArenaAllocator allocator(panda::SpaceType::SPACE_TYPE_COMPILER, nullptr, true); in Run()
324 Compiler::SetExpectedProgsCount(options->CompilerOptions().sourceFiles.size()); in Run()
325 panda::Timer::timerStart(panda::EVENT_COMPILE, ""); in Run()
326 int ret = Compiler::CompileFiles(options->CompilerOptions(), programsInfo, &allocator); in Run()
328 if (!CheckMergeModeConsistency(options->CompilerOptions().mergeAbc, programsInfo)) { in Run()
332 if (options->ParseOnly()) { in Run()
336 if (!options->NpmModuleEntryList().empty()) { in Run()
337 es2panda::util::ModuleHelpers::CompileNpmModuleEntryList(options->NpmModuleEntryList(), in Run()
338 options->CompilerOptions(), programsInfo, &allocator); in Run()
341 panda::Timer::timerEnd(panda::EVENT_COMPILE, ""); in Run()
343 if (ResolveAndGenerate(programsInfo, options)) { in Run()
346 panda::Timer::timerEnd(panda::EVENT_TOTAL, ""); in Run()
347 if (!options->PerfFile().empty()) { in Run()
348 panda::Timer::PrintTimers(); in Run()
352 } // namespace panda::es2panda::aot
356 panda::es2panda::aot::MemManager mm; in main()
357 return panda::es2panda::aot::Run(argc, argv); in main()