Make MachineOperand's value named 'contents'. Make really, really sure
it is always completely initialized and copied.
Also, fix up many comments and asserts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12100 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/MachineInstr.cpp b/lib/CodeGen/MachineInstr.cpp
index b2b3caa..38cd62e 100644
--- a/lib/CodeGen/MachineInstr.cpp
+++ b/lib/CodeGen/MachineInstr.cpp
@@ -100,7 +100,7 @@
Value* V) {
assert(i < operands.size()); // may be explicit or implicit op
operands[i].opType = opTy;
- operands[i].value = V;
+ operands[i].contents.value = V;
operands[i].regNum = -1;
}
@@ -113,8 +113,8 @@
"immed. constant cannot be defined");
operands[i].opType = opTy;
- operands[i].value = NULL;
- operands[i].immedVal = intValue;
+ operands[i].contents.value = NULL;
+ operands[i].contents.immedVal = intValue;
operands[i].regNum = -1;
operands[i].flags = 0;
}
@@ -123,7 +123,7 @@
assert(i < getNumOperands()); // must be explicit op
operands[i].opType = MachineOperand::MO_MachineRegister;
- operands[i].value = NULL;
+ operands[i].contents.value = NULL;
operands[i].regNum = regNum;
}
@@ -162,7 +162,7 @@
notDefsAndUses && (O.isDef() && !O.isUse()) ||
!notDefsAndUses && O.isDef())
{
- O.getMachineOperand().value = newVal;
+ O.getMachineOperand().contents.value = newVal;
++numSubst;
}
else
@@ -175,7 +175,7 @@
notDefsAndUses && (getImplicitOp(i).isDef() && !getImplicitOp(i).isUse()) ||
!notDefsAndUses && getImplicitOp(i).isDef())
{
- getImplicitOp(i).value = newVal;
+ getImplicitOp(i).contents.value = newVal;
++numSubst;
}
else