[PATCH] D88175: [DebugInfo] Add new metadata, DIArgList, for referencing a list of SSA values inside a debug variable intrinsic
Teresa Johnson via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 30 20:43:07 PDT 2021
tejohnson added inline comments.
================
Comment at: llvm/lib/IR/DebugInfoMetadata.cpp:1526
+
+void DIArgList::handleChangedOperand(void *Ref, Metadata *New) {
+ ValueAsMetadata **OldVMPtr = static_cast<ValueAsMetadata **>(Ref);
----------------
I tracked down some non-deterministic compiler behavior to DIArgList handling, and in particular, to this custom handleChangedOperand behavior. The normal MDNode::handleChangedOperand implementation takes care to update the store for the md type, and any necessary re-uniquing. That isn't being done here which appears to leave the DIArgLists DenseSet store on the context in an inconsistent state.
I've sent a tentative fix for review in D108968.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D88175/new/
https://reviews.llvm.org/D88175
More information about the llvm-commits
mailing list