public HighSsaRegister(HighValueType valueType, TypeSpecTag type, object constValue) { m_valueType = valueType; m_type = type; m_constValue = constValue; if ((valueType == HighValueType.ConstantString || valueType == HighValueType.ConstantValue) && constValue == null) throw new ArgumentException("Missing value for constant SSA"); }
private static bool CanPhiMatchVT(HighValueType phiVT, HighValueType destVT) { switch (phiVT) { case HighValueType.ConstantString: case HighValueType.Null: case HighValueType.ReferenceValue: return destVT == HighValueType.ReferenceValue; case HighValueType.ConstantValue: case HighValueType.ValueValue: return destVT == HighValueType.ValueValue; case HighValueType.ManagedPtr: return destVT == HighValueType.ManagedPtr; default: throw new Exception(); } }