void resolve();
void resolveAfterOperandChange(Metadata *Old, Metadata *New);
void decrementUnresolvedOperandCount();
+ unsigned countUnresolvedOperands() const;
void deleteAsSubclass();
UniquableMDNode *uniquify();
return;
// Check whether any operands are unresolved, requiring re-uniquing.
- unsigned NumUnresolved = 0;
- for (const auto &Op : operands())
- NumUnresolved += unsigned(isOperandUnresolved(Op));
-
+ unsigned NumUnresolved = countUnresolvedOperands();
if (!NumUnresolved)
return;
SubclassData32 = NumUnresolved;
}
+unsigned UniquableMDNode::countUnresolvedOperands() const {
+ unsigned NumUnresolved = 0;
+ for (const auto &Op : operands())
+ NumUnresolved += unsigned(isOperandUnresolved(Op));
+ return NumUnresolved;
+}
+
void UniquableMDNode::resolve() {
assert(isUniqued() && "Expected this to be uniqued");
assert(!isResolved() && "Expected this to be unresolved");