Static cache simulation calculates the abstract cache states
associated with the UPs. Such an abstract cache state specifies the
possible cache contents before the UP is executed. First, formal
definitions are provided. Then, the caching behavior of each
instruction is categorized based on these definitions. An example is
discussed in section 4.3 (see [] for more
details).


The notion of an abstract cache state is a compromise between the
choice of an exhaustive set of all cache states that may occur at
execution time and the exponential growth of such an exhaustive set
during simulation. The next definition introduces the reaching state,
which is used for the categorization of instructions following
thereafter.

For a given function instance, each instruction i within a UP is
categorized based on its position in the corresponding program line
, on the corresponding abstract cache state s, and
on the reaching state r. The program line l maps into cache line
c, denoted by
. The UP containing line l
is referred to simply as UP.
always-miss: A cache miss is predicted if
always-hit: A cache hit is predicted if
first-miss: The first reference to an instruction will result in a cache miss and all subsequent references in cache hits if
conflict: All other instructions are conflicts.