================ @@ -1642,6 +1642,101 @@ void AsmPrinter::emitStackUsage(const MachineFunction &MF) { *StackUsageStream << "static\n"; } +/// Extracts a generalized numeric type identifier of a Function's type from +/// type metadata. Returns null if metadata cannot be found. +static ConstantInt *extractNumericCGTypeId(const Function &F) { + SmallVector<MDNode *, 2> Types; + F.getMetadata(LLVMContext::MD_type, Types); + MDString *MDGeneralizedTypeId = nullptr; + for (const auto &Type : Types) { + if (Type->getNumOperands() == 2 && isa<MDString>(Type->getOperand(1))) { + auto *TMDS = cast<MDString>(Type->getOperand(1)); + if (TMDS->getString().ends_with(".generalized")) { + MDGeneralizedTypeId = TMDS; + break; + } + } + } ---------------- ilovepi wrote:
I feel like this is better handled as a helper function. Yes its single use, but I think it communicates intent more clearly. Plus, I think you more or less already have an API int the PR stack for `hasGeneralizedMD()`. https://github.com/llvm/llvm-project/pull/87576 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits