Lines Matching refs:ref
102 // possible bit values. One extension here is the "Ref" type, which
110 Ref // Bit value same as the one described in RefI.
112 // bottom will be expressed as a "ref to itself", which, in the context
117 // Self <= x, where "Self" is "ref to itself".
120 // for one register will be a simple "ref" for another register.
128 // Such cases are identical to the usual Ref type, but the register
131 // What is worthy of notice is that in value V (that is a "ref"), as long
134 // tion of V, then V is assumed to be "bottom" (as a "ref to itself"),
138 // not possible. Any value V that is a "ref", and whose RefI.Reg is 0
146 BitValue(unsigned Reg, uint16_t Pos) : Type(Ref), RefI(Reg, Pos) {}
151 if (Type == Ref && !(RefI == V.RefI))
180 if (Type == Ref && RefI == Self) // Bottom.meet(V) = Bottom (i.e. This)
196 Type = Ref;
202 static BitValue ref(const BitValue &V);
218 // This operation must be idempotent, i.e. ref(ref(V)) == ref(V).
220 BitTracker::BitValue::ref(const BitValue &V) {
221 if (V.Type != Ref)
278 // Generate a "ref" cell for the corresponding register. In the resulting
284 // Generate a cell that is a "ref" to another cell.
285 static RegisterCell ref(const RegisterCell &C);
330 BitTracker::RegisterCell::ref(const RegisterCell &C) {
334 RC[i] = BitValue::ref(C[i]);
353 // generate a ref for a cell corresponding to a register reference.
356 return RegisterCell::ref(RC);