Home | History | Annotate | Download | only in LTO

Lines Matching refs:TheModule

76 static void saveTempBitcode(const Module &TheModule, StringRef TempDir,
87 WriteBitcodeToFile(&TheModule, OS, /* ShouldPreserveUseListOrder */ true);
142 static void promoteModule(Module &TheModule, const ModuleSummaryIndex &Index) {
143 if (renameModuleForThinLTO(TheModule, Index))
148 crossImportIntoModule(Module &TheModule, const ModuleSummaryIndex &Index,
151 ModuleLoader Loader(TheModule.getContext(), ModuleMap);
153 Importer.importFunctions(TheModule, ImportList);
156 static void optimizeModule(Module &TheModule, TargetMachine &TM) {
177 PM.run(TheModule);
194 std::unique_ptr<MemoryBuffer> codegenModule(Module &TheModule,
213 PM.run(TheModule);
331 ProcessThinLTOModule(Module &TheModule, ModuleSummaryIndex &Index,
345 promoteModule(TheModule, Index);
348 thinLTOResolveWeakForLinkerModule(TheModule, DefinedGlobals);
351 saveTempBitcode(TheModule, SaveTempsDir, count, ".1.promoted.bc");
358 thinLTOInternalizeModule(TheModule, DefinedGlobals);
362 saveTempBitcode(TheModule, SaveTempsDir, count, ".2.internalized.bc");
365 crossImportIntoModule(TheModule, Index, ModuleMap, ImportList);
368 saveTempBitcode(TheModule, SaveTempsDir, count, ".3.imported.bc");
371 optimizeModule(TheModule, TM);
373 saveTempBitcode(TheModule, SaveTempsDir, count, ".4.opt.bc");
380 ModuleSummaryIndexBuilder IndexBuilder(&TheModule);
381 WriteBitcodeToFile(&TheModule, OS, true, &IndexBuilder.getIndex());
386 return codegenModule(TheModule, TM);
516 void ThinLTOCodeGenerator::promote(Module &TheModule,
519 auto ModuleIdentifier = TheModule.getModuleIdentifier();
535 TheModule, ModuleToDefinedGVSummaries[ModuleIdentifier]);
537 promoteModule(TheModule, Index);
543 void ThinLTOCodeGenerator::crossModuleImport(Module &TheModule,
557 auto &ImportList = ImportLists[TheModule.getModuleIdentifier()];
559 crossImportIntoModule(TheModule, Index, ModuleMap, ImportList);
612 void ThinLTOCodeGenerator::internalize(Module &TheModule,
614 initTMBuilder(TMBuilder, Triple(TheModule.getTargetTriple()));
616 auto ModuleIdentifier = TheModule.getModuleIdentifier();
646 thinLTOInternalizeModule(TheModule,
653 void ThinLTOCodeGenerator::optimize(Module &TheModule) {
654 initTMBuilder(TMBuilder, Triple(TheModule.getTargetTriple()));
657 optimizeModule(TheModule, *TMBuilder.create());
663 std::unique_ptr<MemoryBuffer> ThinLTOCodeGenerator::codegen(Module &TheModule) {
664 initTMBuilder(TMBuilder, Triple(TheModule.getTargetTriple()));
665 return codegenModule(TheModule, *TMBuilder.create());
682 auto TheModule = loadModuleFromBuffer(ModuleBuffer, Context, false);
685 ProducedBinaries[count] = codegen(*TheModule);
807 auto TheModule = loadModuleFromBuffer(ModuleBuffer, Context, false);
810 saveTempBitcode(*TheModule, SaveTempsDir, count, ".0.original.bc");
815 *TheModule, *Index, ModuleMap, *TMBuilder.create(), ImportList,