This item is only available for download by members of the University of Illinois community. Students, faculty, and staff at the U of I may log in with your NetID and password to view the item. If you are trying to access an Illinois-restricted dissertation or thesis, you can request a copy through your library's Inter-Library Loan office or purchase a copy directly from ProQuest.
Permalink
https://hdl.handle.net/2142/80820
Description
Title
A Dynamic Application Analysis Framework
Author(s)
Conte, Marie Therese
Issue Date
2003
Doctoral Committee Chair(s)
Hwu, Wen-Mei W.
Department of Study
Electrical Engineering
Discipline
Electrical Engineering
Degree Granting Institution
University of Illinois at Urbana-Champaign
Degree Name
Ph.D.
Degree Level
Dissertation
Keyword(s)
Engineering, Electronics and Electrical
Language
eng
Abstract
In this thesis we address the problem of interprocedural analysis on a dynamic application. We present a framework for performing partial analysis ahead of time and using it to facilitate a large range of runtime analyses and optimizations. We demonstrate one such analysis by performing swift, safe analysis during profiling of threaded, dynamically linked, adaptively compiled applications. In our framework, we focus on one such language, Java; however, our techniques are adaptable to others within this realm. We also present models for adaptive compilation utilizing our framework to verify compilation assumptions in the event of dynamic class loading. We present our system for performing a subset of analyses ahead of time by constructing a graph called a Compact Dataflow Graph (CDG), of the object references used intraprocedurally. The CDG is designed to be independent of the internal representation used by the runtime and general enough to facilitate a large range of dynamic interprocedural analysis and optimizations. We present our design and implementation of one such use of the CDG by using it to swiftly construct a form of a unification points-to graph we call an Object Connection Graph (OCG), which is used to determine swiftly a set of method local allocations that could be safely stack allocated. We present results for the use of the OCG using a subset of the threaded Java Grande benchmarks, and a set of small Java threaded applications.
Use this login method if you
don't
have an
@illinois.edu
email address.
(Oops, I do have one)
IDEALS migrated to a new platform on June 23, 2022. If you created
your account prior to this date, you will have to reset your password
using the forgot-password link below.