1. A method for determining the correctness of a potential interprocedural dead store optimization for an optimizing compiler, the optimizing compiler generating an intermediate representation of code to be compiled comprising a call graph, the method comprising a top-down traversal of the call graph, and comprising, for each procedure definition reached in the call graph traversal, the following steps a. defining a live on exit set of variables for the reached procedure definition, and b. defining a live on exit set of variables for each procedure call point within the reached procedure definition, c. storing the live on exit set of variables for each procedure call point in an entry in a live on exit data structure, and d. using the live on exit set of variables for the reached procedure definition to determine the variables that are ineligible for interprocedural dead store elimination in the reached procedure definition.