It appears that we can now successfully all of spec and libgcj, flow-sensitively... heads/escape-analysis
commit03c869b6dadcc12f5c16034eaf5a2cb69ab8effd
authorpbiggar <pbiggar@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 21 May 2007 16:34:55 +0000 (21 16:34 +0000)
committerpbiggar <pbiggar@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 21 May 2007 16:34:55 +0000 (21 16:34 +0000)
tree5a70d92da65df94bea40f91d5d2dd4dbcb29aecd
parent62bd097a46c7c6c6566176e72818f929c1bf0d90
It appears that we can now successfully all of spec and libgcj, flow-sensitively. It is horribly slow though.
Fixed a bug in tree-ssa-devirt
Added the tree-ssa-offline-devirt, which provides offline virtualisation analysis. The method calls are not actually devirtualized, but rather used when a the escape analysis pass sees a virtual functions, and needs to find its callees.
We now serialize all functions, as part of an iterative whole-program analysis.
The flag_ipa_stack_allocate flag has been split into many different flags, though not as many as intended.
ADDR_EXPRs and INDIRECT_REFs are now recognized as variables, since it was too complicated to use their inner nodes, which were frequently classes. get_var is used to extract the variable
Interprocedural is extended to virtual functions, using serialized results
Results are printed to the ./results file
In libjava, NOTE_MEMORY_USAGE can be turned on and off at compile time, with the PRINT_ALLOCATION_INFO define

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/escape-analysis@124905 138bc75d-0d04-0410-961f-82ee72b054a4
13 files changed:
gcc/common.opt
gcc/java/Make-lang.in
gcc/java/class.c
gcc/java/congraph.c
gcc/java/congraph.h
gcc/java/ipa-stack-allocate.c
gcc/java/ipa-stack-allocate.h [new file with mode: 0644]
gcc/java/lang.c
gcc/java/tree-ssa-devirt.c
libjava/boehm.cc
libjava/include/boehm-gc.h
libjava/include/mem_usage.h [new file with mode: 0644]
libjava/prims.cc