Lines Matching defs:join

996   /// LocKind is a join-semilattice with the partial order:
1000 /// join(Mem, Mem) = Mem
1001 /// join(Val, Val) = Val
1002 /// join(Mem, Val) = None
1003 /// join(None, Mem) = None
1004 /// join(None, Val) = None
1005 /// join(None, None) = None
1024 /// join-semilattice. The partial order is:
1028 /// join(x, x) = x
1029 /// join(x, y) = NoneOrPhi
1248 /// Helper for join.
1258 static BlockInfo join(const BlockInfo &A, const BlockInfo &B, int NumVars) {
1261 // Intersect = join(a, b) for a in A, b in B where Var(a) == Var(b)
1262 // Difference = join(x, ⊤) for x where Var(x) is in A xor B
1265 // This is achieved by performing a join on elements from A and B with
1266 // variables common to both A and B (join elements indexed by var
1268 // latter part is equivalent to performing join on elements with variables
1269 // in A xor B with the ⊤-value for the map element since join(x, ⊤) = ⊤.
1314 /// values monotonically increase. See the @link joinMethods join methods
1316 bool join(const BasicBlock &BB, const SmallPtrSet<BasicBlock *, 16> &Visited);
1318 /// Functions that implement `join` (the least upper bound) for the
1319 /// join-semilattice types used in the dataflow. There is an explicit bottom
1951 // joins() because for join to produce anything other than Mem after
1978 // If either are NoneOrPhi the join is NoneOrPhi.
2025 return BlockInfo::join(A, B, TrackedVariablesVectorSize);
2028 bool AssignmentTrackingLowering::join(
2038 // an implicit ⊥ value which is the identity value for the join operation.
2328 // it, we perform join() and process() using the two worklist method until
2331 // Assignment, and the various join methods, which show that all the elements
2332 // involved are made up of join-semilattices; LiveIn(n) can only
2345 bool InChanged = join(*BB, Visited);