Phase 1: Results
For each of the 7 programs,
there are 2 files describing the call graph computed by CHA:
- rmethods: This file contains the set of all non-library methods
reachable from "main" (plus the appropriate < clinit > and "finalize"
methods) — in other words, the file lists the nodes in the call graph.
- calls: Contains info about all calls in all methods from
rmethods. This is essentially the set of call graph edges. The format
of the file is as follows:
- Line "===== Method X" indicates the start of info for call sites inside
method X.
- Line "[S] X" indicates a "simple" call — i.e. a call through
specialinvoke or staticinvoke. For any such call, the static target and the
run-time target are the same.
- Line "[C] X,a,b" indicates a "complex" call — i.e. a call through
virtualinvoke and interfaceinvoke. Such a call can have several run-time
target methods; all such targets are listed immediately below the line.
Number "a" is the number of the possible classes of the receiver object;
number "b" is the number of possible run-time target methods (a is always
greater than or equal to b).
For each program, we also have a GIF file showing the edges in the call
graph.
Results: p1
p2
p3
p4
p5
p6
p7