Upwards exposed uses

Upwards exposed uses occurs in the copy propagation stage of program compilation.

[2] During the copy propagation stage, instances of a target are replaced with assignments to their values.

[3] This is done with the purpose of simplifying code before execution: if the number of upwards exposed uses of an assignment is zero, it does not contribute to the end result of the code and can be safely removed.

[4] Consider the following pseudocode: It is safe to assume that line 5 will never occur, as demonstrated by the number of upwards exposed uses for this point being zero.

This can therefore be simplified: This leads to a result that is less complex to compile and more efficient to run.