compilers/imcc/sets.c
An implementation of sets -- used for tracking register usage.
- Set *set_make
- Creates a new Set object.
- Set *set_make_full
- Creates a new Set object of lengthitems,
setting them all to full.
- void set_free
- Frees the given Set and its allocated memory.
- void set_clear
- Clears all bits in the Set.
- Set *set_copy
- Copies the set s,
returning a new set pointer.
- int set_equal
- Compares two sets for equality; sets are equal if they contain the same elements.
- Raises a fatal error if the two Sets have different lengths.
- void set_add
- Adds to set sthe elementelement.
- unsigned int set_first_zero
- Sets the first unused item in the set.
- int set_contains
- Checks whether the specified element is present in the specified Set argument.
Returns 1 if it is,
0 otherwise.
- Set *set_union
- Computes the union of the two Set arguments,
returning it as a new Set.
- Raises a fatal error if the two Sets have different lengths.
- Set *set_intersec
- Creates a new Set object that is the intersection of the Set arguments (defined through the binary andoperator.)
- Raises a fatal error if the two Sets have different lengths.
- void set_intersec_inplace
- Performs a set intersection in place -- the first Set argument changes to contain the result.