Precise, flow-sensitive analyses of pointer relationships often represent each object using the set of local variables that point to it (the alias set), possibly augmented with additional predicates. Many such analyses are difficult to scale due to the size of the abstraction and due to flow sensitivity. Taking advantage of certain properties of SSA form, we propose an efficient data structure that allows much of the representations of sets at different points in the program to be shared. The key enabling properties of SSA form are that every point at which a variable is live is dominated by its definition, and that the definitions of any set of simultaneously live variables are totally ordered according to the dominance relation. Thanks to these properties, we can implement the transfer function in such a way that all set operations are reduced to local changes to the head of a suitably ordered list. Thus, the tails of the lists can be shared. ref: http://plg.uwaterloo.ca/~olhotak/pubs/ismm09.pdf