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);
                }
            }
Exemple #3
0
 public static ulong ToScalar(this BitMask64 src)
 => (ulong)src;
Exemple #4
0
 public static ulong gather(ulong src, BitMask64 mask)
 => gather(src, (ulong)mask);
Exemple #5
0
 public static BitVector64 ToBitVector(this BitMask64 src)
 => ((ulong)src).ToBitVector();