[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