8. The computer program product of claim 7 , wherein said determining within the first pass where in the program to evaluate volatile expressions that can be commoned comprises: analyzing each extended basic block in the program according to a set of predetermined criteria in the first pass, to common all volatile fields, wherein the first pass tracks opportunities for commoning local variables and final fields in addition to tracking opportunities to common the volatile fields, and wherein only the volatile fields are commoned in the first pass.
8. The computer program product of claim 7 , wherein said determining within the first pass where in the program to evaluate volatile expressions that can be commoned comprises: analyzing each extended basic block in the program according to a set of predetermined criteria in the first pass, to common all volatile fields, wherein the first pass tracks opportunities for commoning local variables and final fields in addition to tracking opportunities to common the volatile fields, and wherein only the volatile fields are commoned in the first pass. 9. The computer program product of claim 8 , wherein said analyzing each extended basic block according to the set of predetermined criteria in the first pass comprises: identifying locations in the program of the volatile expressions to be evaluated, wherein the volatile expressions determine ordering constraints with respect to other volatile and non-volatile expressions; and reducing a number of volatile loads in an extended basic block in the program during the first pass, which increases opportunities for the second pass to common non-volatile expressions over a scope of the extended basic block.