[llvm] r225654 - IR: Separate out helper: resolveAfterOperandChange(), NFC
Duncan P. N. Exon Smith
dexonsmith at apple.com
Mon Jan 12 11:14:15 PST 2015
Author: dexonsmith
Date: Mon Jan 12 13:14:15 2015
New Revision: 225654
URL: http://llvm.org/viewvc/llvm-project?rev=225654&view=rev
Log:
IR: Separate out helper: resolveAfterOperandChange(), NFC
Modified:
llvm/trunk/include/llvm/IR/Metadata.h
llvm/trunk/lib/IR/Metadata.cpp
Modified: llvm/trunk/include/llvm/IR/Metadata.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IR/Metadata.h?rev=225654&r1=225653&r2=225654&view=diff
==============================================================================
--- llvm/trunk/include/llvm/IR/Metadata.h (original)
+++ llvm/trunk/include/llvm/IR/Metadata.h Mon Jan 12 13:14:15 2015
@@ -762,6 +762,7 @@ private:
void handleChangedOperand(void *Ref, Metadata *New);
void resolve();
+ void resolveAfterOperandChange(Metadata *Old, Metadata *New);
};
/// \brief Forward declaration of metadata.
Modified: llvm/trunk/lib/IR/Metadata.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/Metadata.cpp?rev=225654&r1=225653&r2=225654&view=diff
==============================================================================
--- llvm/trunk/lib/IR/Metadata.cpp (original)
+++ llvm/trunk/lib/IR/Metadata.cpp Mon Jan 12 13:14:15 2015
@@ -449,6 +449,22 @@ void GenericMDNode::resolve() {
Uses->resolveAllUses();
}
+void GenericMDNode::resolveAfterOperandChange(Metadata *Old, Metadata *New) {
+ assert(SubclassData32 != 0 && "Expected unresolved operands");
+
+ // Check if the last unresolved operand has just been resolved; if so,
+ // resolve this as well.
+ if (isOperandUnresolved(Old)) {
+ if (!isOperandUnresolved(New)) {
+ if (!--SubclassData32)
+ resolve();
+ }
+ } else {
+ // Operands shouldn't become unresolved.
+ assert(isOperandUnresolved(New) && "Operand just became unresolved");
+ }
+}
+
void GenericMDNode::resolveCycles() {
if (isResolved())
return;
@@ -546,21 +562,8 @@ void GenericMDNode::handleChangedOperand
if (I == Store.end()) {
Store.insert(this);
- if (!isResolved()) {
- assert(SubclassData32 != 0 && "Expected unresolved operands");
-
- // Check if the last unresolved operand has just been resolved; if so,
- // resolve this as well.
- if (isOperandUnresolved(Old)) {
- if (!isOperandUnresolved(New)) {
- if (!--SubclassData32)
- resolve();
- }
- } else {
- // Operands shouldn't become unresolved.
- assert(isOperandUnresolved(New) && "Operand just became unresolved");
- }
- }
+ if (!isResolved())
+ resolveAfterOperandChange(Old, New);
return;
}
More information about the llvm-commits
mailing list