[abc] type assigner complexity in Soot

From: John Jorgensen <jorgnsn@lcd.uregina.ca>
Date: Fri Sep 17 2004 - 06:45:33 BST

>>>>> "hendren" == Prof Laurie HENDREN <hendren@sable.mcgill.ca> writes:

    hendren> If you go to abc.comlab.ox.ac.uk/dists/0.9.1/package
    hendren> and you download abc-complete.jar, you can see the
    hendren> problem using the following,

    hendren> java -Xmx512M soot.Main -cp
    hendren> lib/abc-complete.jar:/usr/lib/j2sdk1.4/jre/lib/rt.jar
    hendren> abc.aspectj.parse.CUP\$Grm\$actions

I confirmed that the problem is the number of locals after
splitting:

abc.aspectj.parse.CUP$Grm$actions.CUP$Grm$do_action_0() has about
35 locals on entry to jb.ls, but around 35,000 on exit.
abc.aspectj.parse.CUP$Grm$actions.CUP$Grm$do_action_270() has
around 40 locals on input to jb.ls, but around 45,000 on exit.

The only quick, localized fix I could imagine would be to
substitute some other, magically faster, method for finding
duplicate parent and child nodes for the creation of all the
TreeSets, but I can't think of what that method could be.

I tried disabling jb.ls to see how much that would speed things
up, but the result was a Type 12 typing exception (which I have
not investigated, so maybe it is easy to work around; though you
would not want to forestall the optimizations enabled by
splitting the locals in any event).
Received on Fri Sep 17 10:02:30 2004

This archive was generated by hypermail 2.1.8 : Fri Sep 17 2004 - 14:30:02 BST