[PATCH] D108642: [CGProfile] allows undef in metadata node storing function pointers

Duncan P. N. Exon Smith via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 24 10:51:15 PDT 2021


dexonsmith added a comment.

In D108642#2962880 <https://reviews.llvm.org/D108642#2962880>, @dexonsmith wrote:

> It used to be that when GlobalValue-derived Constants were removed, then metadata would point at `null` instead. Not sure if that changed at some point, or if this is a unique code path, but it's not clear whether having two possible "no value" values (undef vs. null) is a good idea.
>
> Can you explain why https://reviews.llvm.org/rGe5d958c45629ccd2f5b5f7432756be1d0fcf052c used `undef` instead of `null`? Should it use `null` instead?

Ah, that was the commit that changed it. It used to hit this logic:

  Value::~Value() {
    // Notify all ValueHandles (if present) that this value is going away.
    if (HasValueHandle)
      ValueHandleBase::ValueIsDeleted(this);
    if (isUsedByMetadata())
      ValueAsMetadata::handleDeletion(this);
  
    // Remove associated metadata from context.
    if (HasMetadata)
      clearMetadata();

Maybe that commit should be reverted.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D108642



More information about the llvm-commits mailing list