[PATCH] D93400: [IRBuilder] Generalize debug loc handling for arbitrary metadata.

Roman Lebedev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 16 11:17:04 PST 2020


lebedev.ri requested changes to this revision.
lebedev.ri added a comment.
This revision now requires changes to proceed.

LGTM, this looks reasonable to me.
I'm not seeing any general way



================
Comment at: llvm/include/llvm/IR/IRBuilder.h:212-219
+  /// Collect metadata with IDs \p MetadataKinds from \p Src which should be
+  /// added to all created instructions.
+  void CollectMetadataToCopy(Instruction *Src,
+                             ArrayRef<unsigned> MetadataKinds) {
+    for (unsigned K : MetadataKinds)
+      if (auto *MD = Src->getMetadata(K))
+        AddOrRemoveMetadataToCopy(K, MD);
----------------
Don't you have an invalidation issue here?
What happens if we first call `CollectMetadataToCopy()` on an instruction that had metadata `zz`,
and then call it again on an instruction that didn't have that metadata? (the instcombine's pattern)


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D93400



More information about the llvm-commits mailing list