Redundancy in Named Metadata

Hi All,

I have a question about named metadata, i.e. NamedMDNode.

I have one dedicated named metadata node, say
"clang.global.func.type", for conveying information about functions
defined in each translation unit. In the module resulting from each
translation unit, the dedicated (named metadata) node does not have
redundancy. However, this dedicated (named metadata) node contains
redundancy in the module resulting from linking all individual modules
(from different translation units).

For example, below !522 occurs twice.
  !clang.global.func.type = !{ ... !522, ... , !522, ... }

So my question is: Is there any way to eliminate such redundancy?

The "NamedMDNode" does not declare any erasing and removing operands
operations.

Xiaolong