[llvm] r225649 - IR: Don't allow operands to become unresolved
Duncan P. N. Exon Smith
dexonsmith at apple.com
Mon Jan 12 10:59:40 PST 2015
Author: dexonsmith
Date: Mon Jan 12 12:59:40 2015
New Revision: 225649
URL: http://llvm.org/viewvc/llvm-project?rev=225649&view=rev
Log:
IR: Don't allow operands to become unresolved
Operands shouldn't change from being resolved to unresolved during graph
construction. Simplify the logic based on that assumption.
Modified:
llvm/trunk/lib/IR/Metadata.cpp
Modified: llvm/trunk/lib/IR/Metadata.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/Metadata.cpp?rev=225649&r1=225648&r2=225649&view=diff
==============================================================================
--- llvm/trunk/lib/IR/Metadata.cpp (original)
+++ llvm/trunk/lib/IR/Metadata.cpp Mon Jan 12 12:59:40 2015
@@ -547,12 +547,16 @@ void GenericMDNode::handleChangedOperand
if (!isResolved()) {
// Check if the last unresolved operand has just been resolved; if so,
// resolve this as well.
- if (isOperandUnresolved(Old))
- decrementUnresolvedOperands();
- if (isOperandUnresolved(New))
- incrementUnresolvedOperands();
- if (!hasUnresolvedOperands())
- resolve();
+ if (isOperandUnresolved(Old)) {
+ if (!isOperandUnresolved(New)) {
+ decrementUnresolvedOperands();
+ if (!hasUnresolvedOperands())
+ resolve();
+ }
+ } else {
+ // Operands shouldn't become unresolved.
+ assert(isOperandUnresolved(New) && "Operand just became unresolved");
+ }
}
return;
More information about the llvm-commits
mailing list