================ @@ -488,6 +490,35 @@ class LLVM_EXTERNAL_VISIBILITY MachineFunction { /// Callee type id. ConstantInt *TypeId = nullptr; + + CallSiteInfo() {} + + /// Extracts the numeric type id from the CallBase's type operand bundle, + /// and sets TypeId. This is used as type id for the indirect call in the + /// call graph section. + CallSiteInfo(const CallBase &CB) { + // Call graph section needs numeric type id only for indirect calls. + if (!CB.isIndirectCall()) + return; + + auto Opt = CB.getOperandBundle(LLVMContext::OB_type); + if (!Opt.has_value()) + return; + + // Get generalized type id string + auto OB = Opt.value(); ---------------- Prabhuk wrote:
I take it that this suggestion is based on the Opt.has_value() check in the previous few lines. Using Opt.value() feels like a useful future proofing to me against potential UB that can happen due to programming errors when compared to using *Opt. https://github.com/llvm/llvm-project/pull/87575 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits