public CopyAnalysisState WithValue(int varIndex, BitMask64 value) { Debug.Assert(!IsDefault); if (_varState[varIndex] == value) { return(this); } else { var result = Clone(); result._varState[varIndex] = value; return(result); } }
public CopyAnalysisState WithCopyAssignment(int trgVarIndex, int srcVarIndex, int copyIndex) { Debug.Assert(!IsDefault); var copyMask = BitMask64.FromSingleValue(copyIndex); if (_varState[trgVarIndex] != copyMask || _varState[srcVarIndex] != (_varState[srcVarIndex] | copyMask)) { var result = Clone(); result._varState[trgVarIndex] = copyMask; result._varState[srcVarIndex] |= copyMask; return(result); } else { return(this); } }
public static ulong ToScalar(this BitMask64 src) => (ulong)src;
public static ulong gather(ulong src, BitMask64 mask) => gather(src, (ulong)mask);
public static BitVector64 ToBitVector(this BitMask64 src) => ((ulong)src).ToBitVector();