Libgraph
From JopWiki
Contents |
[edit] libgraph
Requirements for a common program analysis and transformation interface for the JOP project
[edit] Motivation
[edit] Requirements
[edit] JOPizer (Postprocess & Link)
[edit] Optimizer
[edit] Program Analysis (DFA)
[edit] WCET Component
The WCET analysis operates on the call graph (tightened using receiver type analysis), the control flow graphs (with invoke nodes in isolated blocks) and, more recently, supergraphs.
It currently needs additional information on loop bounds, provided by some other analysis (dfa, source code), and analyzes loops and dominators itself. In the future, we will certainly need more information from other tools.
The WCET analysis needs different views on CFGs to simplify the ILP / UPPAAL model creation. At the moment, it has to be easy to insert split / join nodes, and resolve virtual invocations. For timing analysis, it needs the exact size of methods, and the exact bytecode representation of basic blocks.
In the future, the tool might need to communicate flow facts ((linear) expressions involving basic blocks), abstract flow predicates (not quite sure yet, but something like "model checker, keep track of the predicate x >= 0 in method foo"), propagated constants and intervals, informations related to concurrent execution (shared variables, synchronization, etc.), and possibly interact with other, external tools such as bandera.
