Interprocedural side-effect analysis and optimisation in the presence of dynamic class loading

  • Authors:
  • Phung Hua Nguyen;Jingling Xue

  • Affiliations:
  • University of New South Wales, Sydney, Australia;University of New South Wales, Sydney, Australia

  • Venue:
  • ACSC '05 Proceedings of the Twenty-eighth Australasian conference on Computer Science - Volume 38
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

We introduce a new approach to computing interprocedural modification side effects for Java programs in the presence of dynamic class loading. When compile-time unknown classes can be loaded dynamically, the points-to and modification sets computed statically based on the analysed program, called internal world, may be incomplete. Thus, the modification side effects cannot be determined based on such sets alone. We present a technique, called internal analysis (IA), to classify the references, objects and call sites in the analysed program so that we can determine which points-to and modification sets are definitely complete and which may be not. By combining the points-to sets and this classification, we obtain a new IA-based interprocedural side-effect analysis for determining the modification side-effects of any statement on any variable with good accuracy. We have implemented our algorithms in Soot. This paper demonstrates two important applications of this work: partial redundancy elimination (PRE) and copy propagation for field accesses. We report significantly increased opportunities in performing these optimisations over benchmarks when compared with a recently proposed technique in these areas. Our techniques are simple since they are flow-insensitive and achieve these improvements at small analysis costs.