[PATCH] D104827: [DebugInfo] Enforce implicit constraints on `distinct` MDNodes

Scott Linder via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 13 10:36:36 PST 2021


scott.linder updated this revision to Diff 393959.
scott.linder added a comment.

I'm pushing the (rough) patch which tries to make the switch from inheriting
DIArglist from MDNode to ReplaceableMetadataImpl.

The biggest issue I see with a change along these lines is that the
`!DIArgList` syntax becomes misleading. If we really want this, I think it
implies a bit more work, namely generalizing this to something closer to a
`ValuesAsMetadata` (plural), with a syntax closer to:

  metadata {i32 1, i64 %x, float %f}

I think this doesn't add any ambiguity to the syntax, but this is just my
initial guess at what might make sense.

I'm not sure I can commit to this work, but I would still like to propose making
the UNIQUED/DISTINCT change for DIExpression and DICompileUnit. Would it be
reasonable for me to just remove DIArgList from my original patch, as it has
proven to be special enough not to generalize how I had hoped?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D104827/new/

https://reviews.llvm.org/D104827

Files:
  llvm/docs/LangRef.rst
  llvm/docs/SourceLevelDebugging.rst
  llvm/include/llvm/AsmParser/LLParser.h
  llvm/include/llvm/IR/DebugInfoMetadata.h
  llvm/include/llvm/IR/Metadata.def
  llvm/include/llvm/IR/Metadata.h
  llvm/lib/AsmParser/LLParser.cpp
  llvm/lib/Bitcode/Reader/MetadataLoader.cpp
  llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
  llvm/lib/CodeGen/MIRParser/MIParser.cpp
  llvm/lib/IR/AsmWriter.cpp
  llvm/lib/IR/DebugInfoMetadata.cpp
  llvm/lib/IR/LLVMContextImpl.cpp
  llvm/lib/IR/LLVMContextImpl.h
  llvm/lib/IR/Metadata.cpp
  llvm/lib/IR/TypeFinder.cpp
  llvm/lib/IR/Verifier.cpp
  llvm/test/Assembler/invalid-diarglist-outside-function.ll
  llvm/test/Assembler/invalid-diexpression-distinct.ll
  llvm/test/Bitcode/DIExpression-is-distinct-upgrade.ll
  llvm/test/Bitcode/DIExpression-is-distinct-upgrade.ll.bc
  llvm/unittests/IR/MetadataTest.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D104827.393959.patch
Type: text/x-patch
Size: 107154 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20211213/edfa6735/attachment.bin>


More information about the llvm-commits mailing list