From: Arthur Eubanks Date: Mon, 15 Aug 2022 21:21:16 +0000 (-0700) Subject: [LegacyPM] Remove ThinLTO bitcode writer legacy pass X-Git-Tag: upstream/17.0.6~36418 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=633f5663c37a670e28040cadd938200abd854483;p=platform%2Fupstream%2Fllvm.git [LegacyPM] Remove ThinLTO bitcode writer legacy pass Using the legacy PM for the optimization pipeline is deprecated and in the process of being removed. This is a small step in that direction. For an example of migrating to the new PM: https://github.com/llvm/llvm-project/commit/853b57fe80bdb9d6b19697e6f2abc734834e9f6d --- diff --git a/llvm/include/llvm/Transforms/IPO.h b/llvm/include/llvm/Transforms/IPO.h index 52f0bc9..e660a28 100644 --- a/llvm/include/llvm/Transforms/IPO.h +++ b/llvm/include/llvm/Transforms/IPO.h @@ -240,10 +240,6 @@ ModulePass *createCrossDSOCFIPass(); /// devirtualization and control-flow integrity. ModulePass *createGlobalSplitPass(); -/// Write ThinLTO-ready bitcode to Str. -ModulePass *createWriteThinLTOBitcodePass(raw_ostream &Str, - raw_ostream *ThinLinkOS = nullptr); - } // End llvm namespace #endif diff --git a/llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp b/llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp index ef7af55..8744a1c 100644 --- a/llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp +++ b/llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp @@ -546,54 +546,8 @@ void writeThinLTOBitcode(raw_ostream &OS, raw_ostream *ThinLinkOS, writeThinLinkBitcodeToFile(M, *ThinLinkOS, *Index, ModHash); } -class WriteThinLTOBitcode : public ModulePass { - raw_ostream &OS; // raw_ostream to print on - // The output stream on which to emit a minimized module for use - // just in the thin link, if requested. - raw_ostream *ThinLinkOS = nullptr; - -public: - static char ID; // Pass identification, replacement for typeid - WriteThinLTOBitcode() : ModulePass(ID), OS(dbgs()) { - initializeWriteThinLTOBitcodePass(*PassRegistry::getPassRegistry()); - } - - explicit WriteThinLTOBitcode(raw_ostream &o, raw_ostream *ThinLinkOS) - : ModulePass(ID), OS(o), ThinLinkOS(ThinLinkOS) { - initializeWriteThinLTOBitcodePass(*PassRegistry::getPassRegistry()); - } - - StringRef getPassName() const override { return "ThinLTO Bitcode Writer"; } - - bool runOnModule(Module &M) override { - const ModuleSummaryIndex *Index = - &(getAnalysis().getIndex()); - writeThinLTOBitcode(OS, ThinLinkOS, LegacyAARGetter(*this), M, Index); - return true; - } - void getAnalysisUsage(AnalysisUsage &AU) const override { - AU.setPreservesAll(); - AU.addRequired(); - AU.addRequired(); - AU.addRequired(); - } -}; } // anonymous namespace -char WriteThinLTOBitcode::ID = 0; -INITIALIZE_PASS_BEGIN(WriteThinLTOBitcode, "write-thinlto-bitcode", - "Write ThinLTO Bitcode", false, true) -INITIALIZE_PASS_DEPENDENCY(AssumptionCacheTracker) -INITIALIZE_PASS_DEPENDENCY(ModuleSummaryIndexWrapperPass) -INITIALIZE_PASS_DEPENDENCY(TargetLibraryInfoWrapperPass) -INITIALIZE_PASS_END(WriteThinLTOBitcode, "write-thinlto-bitcode", - "Write ThinLTO Bitcode", false, true) - -ModulePass *llvm::createWriteThinLTOBitcodePass(raw_ostream &Str, - raw_ostream *ThinLinkOS) { - return new WriteThinLTOBitcode(Str, ThinLinkOS); -} - PreservedAnalyses llvm::ThinLTOBitcodeWriterPass::run(Module &M, ModuleAnalysisManager &AM) { FunctionAnalysisManager &FAM = diff --git a/llvm/tools/opt/opt.cpp b/llvm/tools/opt/opt.cpp index a02997f..0837dd6 100644 --- a/llvm/tools/opt/opt.cpp +++ b/llvm/tools/opt/opt.cpp @@ -970,8 +970,8 @@ int main(int argc, char **argv) { report_fatal_error("Text output is incompatible with -module-hash"); Passes.add(createPrintModulePass(*OS, "", PreserveAssemblyUseListOrder)); } else if (OutputThinLTOBC) - Passes.add(createWriteThinLTOBitcodePass( - *OS, ThinLinkOut ? &ThinLinkOut->os() : nullptr)); + report_fatal_error( + "Use the new pass manager for printing ThinLTO bitcode"); else Passes.add(createBitcodeWriterPass(*OS, PreserveBitcodeUseListOrder, EmitSummaryIndex, EmitModuleHash));