|
|
|||
File indexing completed on 2026-05-10 08:44:41
0001 //===- ThinLTOBitcodeWriter.h - Bitcode writing pass for ThinLTO ----------===// 0002 // 0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 0004 // See https://llvm.org/LICENSE.txt for license information. 0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 0006 // 0007 //===----------------------------------------------------------------------===// 0008 // 0009 // This pass prepares a module containing type metadata for ThinLTO by splitting 0010 // it into regular and thin LTO parts if possible, and writing both parts to 0011 // a multi-module bitcode file. Modules that do not contain type metadata are 0012 // written unmodified as a single module. 0013 // 0014 //===----------------------------------------------------------------------===// 0015 0016 #ifndef LLVM_TRANSFORMS_IPO_THINLTOBITCODEWRITER_H 0017 #define LLVM_TRANSFORMS_IPO_THINLTOBITCODEWRITER_H 0018 0019 #include <llvm/IR/PassManager.h> 0020 0021 namespace llvm { 0022 class Module; 0023 class raw_ostream; 0024 0025 class ThinLTOBitcodeWriterPass 0026 : public PassInfoMixin<ThinLTOBitcodeWriterPass> { 0027 raw_ostream &OS; 0028 raw_ostream *ThinLinkOS; 0029 0030 public: 0031 // Writes bitcode to OS. Also write thin link file to ThinLinkOS, if 0032 // it's not nullptr. 0033 ThinLTOBitcodeWriterPass(raw_ostream &OS, raw_ostream *ThinLinkOS) 0034 : OS(OS), ThinLinkOS(ThinLinkOS) {} 0035 0036 PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM); 0037 0038 static bool isRequired() { return true; } 0039 }; 0040 0041 } // namespace llvm 0042 0043 #endif
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|