the number of statements in the basic block Variables are identified in italic (e.g., v,u and t) Every variable is assumed to have a definition in the context or scope. (In static single assignment form, use-define chains are explicit because each chain contains a single element.) For a variable, such as v, its declaration is identified as V (italic capital letter), and for short, its declaration is identified as . In general, a declaration of a variable can be in an outer scope (e.g., a global variable). Definition of a Variable When a variable, v, is on the LHS of an assignment statement, such as , then is a definition of v. Every variable (v) has at least one definition by its declaration (V) (or initialization). Use of a Variable If variable, v, is on the RHS of statement , there is a statement, with i < j and , that it is a definition of v and it has a use at (or, in short, when a variable, v, is on the RHS of a statement , then v has a use at statement ). Execution Consider the sequential execution of the list of statements, , and what can now be observed as the computation at statement, j: A definition at statement with i < j is alive at j, if it has a use at a statement with k ≥ j. The set of alive definitions at statement i is denoted as and the number of alive definitions as . ( is a simple but powerful concept: theoretical and practical results in space complexity theory, access complexity(I/O complexity), register allocation and cache locality exploitation are based on .) A definition at statement kills all previous definitions ( with k < i) for the same variables. Execution example for def-use-chain This example is based on a Java algorithm for finding the gcd. (It is not important to understand what this function does.) /** * @param(a, b) The values used to calculate the divisor. * @return The greatest common divisor of a and b. */ int gcd(int a, int b) { int c = a; int d = b; if (c == 0) return d; while (d != 0) { if (c > d) c = c - d; else d = d - c; } return c; } To find out all def-use-chains for variable d, do the following