Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2093157.2093175acmotherconferencesArticle/Chapter ViewAbstractPublication PagespppjConference Proceedingsconference-collections
research-article

Eliminating partially-redundant array-bounds check in the Android Dalvik JIT compiler

Published: 24 August 2011 Publication History
  • Get Citation Alerts
  • Abstract

    The Android operating system has transformed the mobile software platform landscape significantly. A significant component of the Android is the Dalvik Virtual Machine (DVM) that interprets client applications' codes written in Java and compiled to dexcode. Since interpretation is inherently slow, virtual machines typically employ just-in-time (JIT) compilation. In the Froyo 2.2 release of Android, DVM added a JIT compiler that selectively compiles hot-traces to native ARM code. Some crucial optimizations such as array bounds-check optimization have been implemented in the DVM-JIT compiler. DVM implements an extension of the state-of-the-art in optimization of partially-redundant array-bounds check, which is the approach of Wurthinger et al. as implemented in Java Hot-Spot Compiler. That technique has a limitation that it can optimize bounds checks only for indices that are "iterator plus a constant". In this paper, we tackle that problem by proposing an extension that can handle indices that are "affine functions of iterators, loop-invariants and literals". Our extension is fast and is implemented into the DVM JIT compiler.

    References

    [1]
    Comscore.com, US Mobile Subscriber Market Share. DOI=http://www.comscore.com/Press_Events/Press_Releases/2011/1/comScore_Reports_November_2010_U.S._Mobile _Subscriber_Market_Share. November, 2010.
    [2]
    Businessweek. Google Buys Android for its Mobile Arsenal. August, 2005.
    [3]
    Dan Borenstein, Dalvik VM Internals. Google I/O Developer Conference 2008.
    [4]
    Tim Lindholm and Frank Yellin. Java Virtual Machine Specification. Addison Wesley, 1999.
    [5]
    Yunhe Shi, Kevin Casey, M. Anton Ertl and David Gregg. Virtual Machine Showdown: Stack versus Registers. ACM Transactions on Architecture and Code Optimizations (TACO). Jan, 2008.
    [6]
    T. Suganuma, T. Ogasawara, T. Yasue et al., Overview of the IBM Java Just-In-Time Compiler. IBM Systems Journal, Vol. 39, No. 1. 2000.
    [7]
    Steven Muchnick. Advanced Compiler Design Implementation. Morgan Kauffman Publisher. 2009.
    [8]
    Andreas Gal, Christian Probst, Michael Franz. Hot-PathVM: An Effective JIT Compiler for Resource Constraint Devices. Proceedings of the 2nd international conference on Virtual execution environments.
    [9]
    Harrison W. Compiler analysis of value ranges for variables. IEEE Transactions on Software Engineering. 1977.
    [10]
    Victoria Markstein, John Cocke and Peter Markstein. Optimization of Range Checking. SIGPLAN Symposium on Compiler Construction. 1982.
    [11]
    Priyadarshan Kolte and Michael Wolfe. Elimination of redundant array subscript range checks. SIGPLAN Conference on Programming Language Design and Implementation. Pages 270--278. 1995.
    [12]
    Rajiv Gupta. Optimizing array bounds checks using flow analysis. ACM Letters on Programming Language and Systems, Vol. 2 No 1. Pages 135--150. 1993.
    [13]
    Rastislav Bodik, Rajiv Gupta, Vivek Sarkar. ABCD: Eliminating array bounds checks on demand. SIGPLAN Conference on Programming Language Design and Implementation, pages 321--333, 2000.
    [14]
    Hongwei Xi and Frank Pfening. Eliminating array bounds checking through dependent types. SIGPLAN Conference on Programming Language Design and Implementation, pages 249.257, 1998.
    [15]
    Radu Rugina and Martin C. Rinard. Symbolic bounds analysis of pointers, array indices and access memory regions. SIGPLAN Conference on Programming Language Design and Implementation, pages 182--1195.
    [16]
    George C. Necula. Compiling with Proofs. PhD Thesis. Carnegie Mellon University. 1998.
    [17]
    Norihisa Suzuki and Kiyoshi Ishihata. Implementation of an array bound checker. Fourth ACM Symposium on Principles of Programming Languages. Pages 13--143. 1977.
    [18]
    Victoria Markenstein, John Cocke and Peter Mark. Optimization of Range Checking. ACM Symposium on Compiler Construction, 1982.
    [19]
    Thomas Wurthinger, Christian Wimmer, Hanspeter Mossenbock. Array Bounds Check Eliminatio for the Java HotSpot Client Compiler. International Conference on the Principles and Practice of Programming in Java. 2007.
    [20]
    Ron Cytron, Jeanne Ferrante, Barry Rosen, Mark. Efficiently computing static single assignment form and the control dependence graph. Vol. 13, No. 4, pp. 451--490, 1991.
    [21]
    Yu, Y. T. and Lau, M. F. 2006. A comparison of MC/DC, MUMCUT and several other coverage criteria for logical decisions. J. Syst. Softw. 79, 5 (May. 2006), 577--590. DOI= http://dx.doi.org/10.1016/j.jss.2005.05.030.

    Cited By

    View all
    • (2015)Static Dalvik Bytecode Optimization for Android ApplicationsETRI Journal10.4218/etrij.15.0114.003637:5(1001-1011)Online publication date: 1-Oct-2015
    • (2015)An Improved Strategy to Eliminate Redundant Compilation Based on Dalvik JITProceedings of the 2015 Eighth International Conference on Internet Computing for Science and Engineering (ICICSE)10.1109/ICICSE.2015.50(237-240)Online publication date: 6-Nov-2015
    • (2014)DIVILARProceedings of the 4th ACM conference on Data and application security and privacy10.1145/2557547.2557558(199-210)Online publication date: 3-Mar-2014

    Index Terms

    1. Eliminating partially-redundant array-bounds check in the Android Dalvik JIT compiler

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image ACM Other conferences
      PPPJ '11: Proceedings of the 9th International Conference on Principles and Practice of Programming in Java
      August 2011
      186 pages
      ISBN:9781450309356
      DOI:10.1145/2093157
      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Sponsors

      • DTU: Technical University of Denmark
      • ORACLE: ORACLE

      In-Cooperation

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 24 August 2011

      Permissions

      Request permissions for this article.

      Check for updates

      Author Tags

      1. Java
      2. array bounds check optimization
      3. compilation
      4. just-in-time
      5. optimization
      6. performance
      7. verification

      Qualifiers

      • Research-article

      Conference

      PPPJ '11
      Sponsor:
      • DTU
      • ORACLE
      PPPJ '11: Principles and Practice of Programming in Java
      August 24 - 26, 2011
      Kongens Lyngby, Denmark

      Acceptance Rates

      Overall Acceptance Rate 29 of 58 submissions, 50%

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)10
      • Downloads (Last 6 weeks)0
      Reflects downloads up to 10 Aug 2024

      Other Metrics

      Citations

      Cited By

      View all
      • (2015)Static Dalvik Bytecode Optimization for Android ApplicationsETRI Journal10.4218/etrij.15.0114.003637:5(1001-1011)Online publication date: 1-Oct-2015
      • (2015)An Improved Strategy to Eliminate Redundant Compilation Based on Dalvik JITProceedings of the 2015 Eighth International Conference on Internet Computing for Science and Engineering (ICICSE)10.1109/ICICSE.2015.50(237-240)Online publication date: 6-Nov-2015
      • (2014)DIVILARProceedings of the 4th ACM conference on Data and application security and privacy10.1145/2557547.2557558(199-210)Online publication date: 3-Mar-2014

      View Options

      Get Access

      Login options

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media