File indexing completed on 2026-05-10 08:44:40
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 #ifndef LLVM_TRANSFORMS_IPO_EMBEDBITCODEPASS_H
0019 #define LLVM_TRANSFORMS_IPO_EMBEDBITCODEPASS_H
0020
0021 #include "llvm/IR/PassManager.h"
0022
0023 namespace llvm {
0024 class Module;
0025 class Pass;
0026
0027 struct EmbedBitcodeOptions {
0028 EmbedBitcodeOptions() : EmbedBitcodeOptions(false, false) {}
0029 EmbedBitcodeOptions(bool IsThinLTO, bool EmitLTOSummary)
0030 : IsThinLTO(IsThinLTO), EmitLTOSummary(EmitLTOSummary) {}
0031 bool IsThinLTO;
0032 bool EmitLTOSummary;
0033 };
0034
0035
0036
0037 class EmbedBitcodePass : public PassInfoMixin<EmbedBitcodePass> {
0038 bool IsThinLTO;
0039 bool EmitLTOSummary;
0040
0041 public:
0042 EmbedBitcodePass(EmbedBitcodeOptions Opts)
0043 : EmbedBitcodePass(Opts.IsThinLTO, Opts.EmitLTOSummary) {}
0044 EmbedBitcodePass(bool IsThinLTO, bool EmitLTOSummary)
0045 : IsThinLTO(IsThinLTO), EmitLTOSummary(EmitLTOSummary) {}
0046
0047 PreservedAnalyses run(Module &M, ModuleAnalysisManager &);
0048
0049 static bool isRequired() { return true; }
0050 };
0051
0052 }
0053
0054 #endif