[llvm] [DebugInfo][RemoveDIs] Use autoupgrader to convert old debug-info (PR #143452)
Jeremy Morse via llvm-commits
llvm-commits at lists.llvm.org
Wed Jun 11 02:34:51 PDT 2025
================
@@ -4395,39 +4394,67 @@ static Value *upgradeAMDGCNIntrinsicCall(StringRef Name, CallBase *CI,
return Builder.CreateBitCast(RMW, RetTy);
}
-/// Helper to unwrap intrinsic call MetadataAsValue operands.
-template <typename MDType>
-static MDType *unwrapMAVOp(CallBase *CI, unsigned Op) {
- if (MetadataAsValue *MAV = dyn_cast<MetadataAsValue>(CI->getArgOperand(Op)))
- return dyn_cast<MDType>(MAV->getMetadata());
+/// Helper to unwrap intrinsic call MetadataAsValue operands. Return as a
+/// plain MDNode, as it's the verifiers job to check these are the correct
+/// types later.
+static MDNode *unwrapMAVOp(CallBase *CI, unsigned Op) {
+ if (Op < CI->arg_size()) {
+ if (MetadataAsValue *MAV =
+ dyn_cast<MetadataAsValue>(CI->getArgOperand(Op))) {
+ Metadata *MD = MAV->getMetadata();
+ if (isa<MDNode>(MD))
+ return reinterpret_cast<MDNode *>(MD);
+ }
----------------
jmorse wrote:
Switched to using dyn_cast overall.
https://github.com/llvm/llvm-project/pull/143452
More information about the llvm-commits
mailing list