A framework for interprocedural optimization in the presence of dynamic class loading

Author:

Sreedhar Vugranam C.1,Burke Michael1,Choi Jong-Deok1

Affiliation:

1. IBM T.J. Watson Research Center, P.O. Box 704, Yorktown Heights, NY

Abstract

Dynamic class loading during program execution in the Java Programming Language is an impediment for generating code that is as efficient as code generated using static whole-program analysis and optimization. Whole-program analysis and optimization is possible for languages, such as C++, that do not allow new classes and/or methods to be loaded during program execution. One solution for performing whole-program analysis and avoiding incorrect execution after a new class is loaded is to invalidate and recompile affected methods. Runtime invalidation and recompilation mechanisms can be expensive in both space and time, and, therefore, generally restrict optimization. To address these drawbacks, we propose a new framework, called the extant analysis framework , for interprocedural optimization of programs that support dynamic class (or method)loading. Given a set of classes comprising the closed world , we perform an offline static analysis which partitions references into two categories:(1) unconditionally extant references which point only to objects whose runtime type is guaranteed to be in the closed world; and (2) conditionally extant references which point to objects whose runtime type is not guaranteed to be in the closed world. Optimizations solely dependent on the first categorycan be statically performed, and are guaranteed to be correct even with any future class/method loading. Optimizations dependent on the second category are guarded by dynamic tests, called extant safety tests , for correct execution behavior.We describe the properties for extant safety tests, and provide algorithms for their generation and placement.

Publisher

Association for Computing Machinery (ACM)

Subject

Computer Graphics and Computer-Aided Design,Software

Cited by 13 articles. 订阅此论文施引文献 订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献

1. The Effects of Static Analysis for Dynamic Software Updating: An Exploratory Study;IEEE Access;2020

2. PYE;ACM Transactions on Programming Languages and Systems;2019-07-20

3. Rethinking Incremental and Parallel Pointer Analysis;ACM Transactions on Programming Languages and Systems;2019-03-31

4. Restructuring AMS to reduce synchronization overheads on android system;Cluster Computing;2018-03-26

5. JBInsTrace: A tracer of Java and JRE classes at basic-block granularity by dynamically instrumenting bytecode;Science of Computer Programming;2014-01

同舟云学术

1.学者识别学者识别

2.学术分析学术分析

3.人才评估人才评估

"同舟云学术"是以全球学者为主线,采集、加工和组织学术论文而形成的新型学术文献查询和分析系统,可以对全球学者进行文献检索和人才价值评估。用户可以通过关注某些学科领域的顶尖人物而持续追踪该领域的学科进展和研究前沿。经过近期的数据扩容,当前同舟云学术共收录了国内外主流学术期刊6万余种,收集的期刊论文及会议论文总量共计约1.5亿篇,并以每天添加12000余篇中外论文的速度递增。我们也可以为用户提供个性化、定制化的学者数据。欢迎来电咨询!咨询电话:010-8811{复制后删除}0370

www.globalauthorid.com

TOP

Copyright © 2019-2024 北京同舟云网络信息技术有限公司
京公网安备11010802033243号  京ICP备18003416号-3