15 #ifndef LLVM_ADT_SETOPERATIONS_H 16 #define LLVM_ADT_SETOPERATIONS_H 22 template <
class S1Ty,
class S2Ty>
26 for (
typename S2Ty::const_iterator
SI = S2.begin(), SE = S2.end();
28 if (S1.insert(*SI).second)
39 template <
class S1Ty,
class S2Ty>
41 for (
typename S1Ty::iterator
I = S1.begin();
I != S1.end();) {
44 if (!S2.count(
E)) S1.erase(
E);
50 template <
class S1Ty,
class S2Ty>
53 for (
typename S1Ty::const_iterator
SI = S1.begin(), SE = S1.end();
62 template <
class S1Ty,
class S2Ty>
64 for (
typename S2Ty::const_iterator
SI = S2.begin(), SE = S2.end();
This class represents lattice values for constants.
S1Ty set_difference(const S1Ty &S1, const S2Ty &S2)
set_difference(A, B) - Return A - B
void set_intersect(S1Ty &S1, const S2Ty &S2)
set_intersect(A, B) - Compute A := A ^ B Identical to set_intersection, except that it works on set<>...
static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")
void set_subtract(S1Ty &S1, const S2Ty &S2)
set_subtract(A, B) - Compute A := A - B
bool set_union(S1Ty &S1, const S2Ty &S2)
set_union(A, B) - Compute A := A u B, return whether A changed.