void cloneModuleFlagsMetadata(Module &Dst, const Module &Src, ValueToValueMapTy &VMap) { auto *MFs = Src.getModuleFlagsMetadata(); if (!MFs) return; for (auto *MF : MFs->operands()) Dst.addModuleFlag(MapMetadata(MF, VMap)); }
void md::addIncludedFiles(Module& module, const vector<string>& includedFiles) { LLVMContext& ctx = module.getContext(); SmallVector<Metadata*, 20> mdIncludes; for (const auto& file : includedFiles) { mdIncludes.push_back(MDString::get(ctx, file)); } module.addModuleFlag(Module::AppendUnique, "fcd.includes", MDNode::get(ctx, mdIncludes)); }