|
9.2.4 Data Structures for Reaching DefinitionsMost of the space for these is devoted to storing the In(B) and Out(B) sets. These sets are a subset of all variable definitions. We could represent a definition by a pointer to its text, but the In, Out sets may be large. A better way is to number the definitions and create a table whose ith entry points to the ith definition. The In and Out sets can then be bit vectors such that the ith position is set if the ith definition is in the set. Other space improvements include limiting the variables to be considered and then we can limit the length of the bit vectors. For the bit vector operations, union can be implemented by a Boolean or, intersection by and, and set difference by and not. |