• DocumentCode
    3121908
  • Title

    Array Bounds Check Elimination for Java Based on Sparse Representation

  • Author

    Yang, Keqiao ; Huang, Zeng ; Yang, Min

  • Author_Institution
    Parallel Process. Inst., Fudan Univ., Shanghai, China
  • fYear
    2009
  • fDate
    2-4 Dec. 2009
  • Firstpage
    189
  • Lastpage
    196
  • Abstract
    As a type-safe program language, Java requires bounds checks of array accesses. Whenever an array element is accessed, a cmp (compare) instruction is executed to check whether the index value is within the valid bounds. Array bounds checks may prevent many useful optimizations because of precise exception. We present a new ABCE (array bounds check elimination) algorithm to eliminate redundant checks based on sparse representation for a Java static compiler. In contrast to other approaches performing in JVMs, we adhere to the design principle of the static compiler to optimize scientific Java applications. The algorithm is a light-weight algorithm working on an intermediate representation in static single assignment form. It fully removes bounds checks if it can be proven that they never fail. Whenever possible, it moves bounds checks out of loops to reduce the total number of executed checks. If such a check fails, the executing program branches into the unmodified loop to preserve the exception semantics of Java. For the scientific SciMark 2.0 benchmark suite, this algorithm removes on average 76% of bounds check instructions. The evaluation shows a speedup near to the theoretical maximum for LU test case.
  • Keywords
    Java; data flow analysis; program compilers; Java static compiler; SciMark benchmark suite; array bounds check elimination algorithm; light-weight algorithm; redundant checks; scientific Java applications; sparse representation; static single assignment form; type-safe program language; Application software; Conference management; Design optimization; Engineering management; Java; Parallel processing; Partial response channels; Phased arrays; Runtime; Software engineering; Java; array bounds check elimination; optimization; performance;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Engineering Research, Management and Applications, 2009. SERA '09. 7th ACIS International Conference on
  • Conference_Location
    Haikou
  • Print_ISBN
    978-0-7695-3903-4
  • Type

    conf

  • DOI
    10.1109/SERA.2009.11
  • Filename
    5381765