LLVM 22.0.0git
SetOperations.h File Reference

This file defines generic set operations that may be used on set's of different types, and different element types. More...

Go to the source code of this file.

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
namespace  llvm::detail
 These are wrappers over isa* function that allow them to be used in generic algorithms such as llvm:all_of, llvm::none_of, etc.

Typedefs

template<typename Set, typename Fn>
using llvm::detail::check_has_member_remove_if_t
template<typename Set>
using llvm::detail::check_has_member_erase_iter_t

Functions

template<class S1Ty, class S2Ty>
bool llvm::set_union (S1Ty &S1, const S2Ty &S2)
 set_union(A, B) - Compute A := A u B, return whether A changed.
template<class S1Ty, class S2Ty>
void llvm::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<>'s and is nicer to use.
template<class S1Ty, class S2Ty>
S1Ty llvm::set_intersection_impl (const S1Ty &S1, const S2Ty &S2)
template<class S1Ty, class S2Ty>
S1Ty llvm::set_intersection (const S1Ty &S1, const S2Ty &S2)
 set_intersection(A, B) - Return A ^ B
template<class S1Ty, class S2Ty>
S1Ty llvm::set_difference (const S1Ty &S1, const S2Ty &S2)
 set_difference(A, B) - Return A - B
template<class S1Ty, class S2Ty>
void llvm::set_subtract (S1Ty &S1, const S2Ty &S2)
 set_subtract(A, B) - Compute A := A - B
template<class S1Ty, class S2Ty>
void llvm::set_subtract (S1Ty &S1, const S2Ty &S2, S1Ty &Removed, S1Ty &Remaining)
 set_subtract(A, B, C, D) - Compute A := A - B, set C to the elements of B removed from A (A ^ B), and D to the elements of B not found in and removed from A (B - A).
template<class S1Ty, class S2Ty>
bool llvm::set_is_subset (const S1Ty &S1, const S2Ty &S2)
 set_is_subset(A, B) - Return true iff A in B
template<class S1Ty, class S2Ty>
bool llvm::detail::set_intersects_impl (const S1Ty &S1, const S2Ty &S2)
template<class S1Ty, class S2Ty>
bool llvm::set_intersects (const S1Ty &S1, const S2Ty &S2)
 set_intersects(A, B) - Return true iff A ^ B is non empty

Variables

template<typename Set, typename Fn>
static constexpr bool llvm::detail::HasMemberRemoveIf
template<typename Set>
static constexpr bool llvm::detail::HasMemberEraseIter

Detailed Description

This file defines generic set operations that may be used on set's of different types, and different element types.

Definition in file SetOperations.h.