Re: [abc] FW: [abc-users] -O3 runtime error

From: Ondrej Lhotak <olhotak@uwaterloo.ca>
Date: Wed Aug 09 2006 - 23:55:31 BST

On Wed, Aug 09, 2006 at 05:34:56PM -0400, Eric Bodden wrote:
> Well, in my experiments it suffices to analyze an arbitrary AspectJ file with -O3 in abc version 1.2.1. In this setting, apparently the "cg" phase takes indefinetely long to run. Since this phase is required for the cflow analusis as well as for the static tracematch optimizations, both seem to suffer from the same problem at the current time. I have attached one tracematch file for which this happens on my machine. (and as I said, it seems to happen for any file)
>
>
> This is running on a jrockit-R26.4.0-jdk1.5.0_06 JVM, analyzing the sun-jdk1.5.0_07 JRE. When I use the sun-jdk1.5.0_07 JVM, too, abc crashes in the "cg" phase without any output. (not even an exception or anything; looks almost like a System.exit(0))

The JDK 1.5 standard library is much bigger than the versions that
we've ever used before, so I would expect Soot to take a bit longer to
process it. Nevertheless, I can't duplicate your issue:

olhotak@lhotak:~$ java -version
java version "1.5.0_07"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_07-b03)
Java HotSpot(TM) Server VM (build 1.5.0_07-b03, mixed mode)
olhotak@lhotak:~$ echo $CLASSPATH
/usr/local/jdk1.5.0_07/jre/lib/rt.jar:/usr/local/jdk1.5.0_07/jre/lib/jce.jar:.:/home/olhotak/abc-1.2.1-complete.jar
olhotak@lhotak:~$ time java -Xmx1024m abc.main.Main -ext abc.tm -O3 -main-class TmTestMin TmTestMin.java
Using BDD package: JeddJavaFactory
Garbage collection #1: 1000003 nodes / 998321 free / 0.101s / 0.101s total
Garbage collection #2: 1000003 nodes / 991669 free / 0.109s / 0.21s total
Garbage collection #3: 1000003 nodes / 985107 free / 0.071s / 0.281s total
<... stuff deleted ...>
Garbage collection #67: 1000003 nodes / 809608 free / 0.133s / 7.059s total
Garbage collection #68: 1000003 nodes / 808194 free / 0.135s / 7.194s total

real 5m15.327s
user 6m12.711s
sys 0m2.280s

I haven't been able to try with jrockit because their download site
seems to be broken now, so I can't download their 1.5 VM.

Ondrej

>
> Eric
>
> --
> Eric Bodden
> Sable Research Group
> McGill University, Montréal, Canada
>
> ________________________________
>
> From: Majordomo list server on behalf of Ondrej Lhotak
> Sent: Wed 8/9/2006 17:10
> To: abc@comlab.ox.ac.uk
> Subject: Re: [abc] FW: [abc-users] -O3 runtime error
>
>
>
> On Wed, Aug 09, 2006 at 03:44:18PM -0400, Eric Bodden wrote:
> > Ok, guys, this is interesting because on my machine I am seeing exactly
> > the same problem. First I thought it was be related to our new lab
> > machines but reading this, maybe it is not. The strange thing is that
> > just a few weeks ago everything worked fine when I started to work with
> > the points-to analysis. Then all the sudden (?) I got paddle crash on my
> > machine using the Sun JVM. After consulting Ondrej I used JRockit, which
> > I just gave another try today and with JRockit it also seems to take
> > forever just as this user reports. Personally I have no clue what could
> > cause this.
> >
> > Ondrej would you have a bit of time to look into this? If you need any
> > more information, please let me know.
>
> What are you asking me to look into? What runs forever?
>
> Ondrej
>
> >
> >
> > Eric
> >
> >
> > > -----Original Message-----
> > > From: Majordomo list server [mailto:majordomo@comlab.ox.ac.uk] On
> > > Behalf Of Eduardo S. Cordeiro
> > > Sent: Wednesday, August 09, 2006 3:14 PM
> > > To: abc-users@comlab.ox.ac.uk
> > > Subject: Re: [abc-users] -O3 runtime error
> > >
> > > Hello Ondrej and Eric,
> > >
> > > thanks for the replies; I noticed the problem with Paddle throwing an
> > > exception is solved on abc-1.2.1. I have another problem though --
> > with
> > > the -O3 flag turned on, and the -Xmx512M VM option, abc seems to run
> > > forever on my machine -- the most I've tried was going for over 20
> > > minutes when I shut it down.
> > >
> > > I don't actually need my optimization to run on -O3, however, because
> > > all I need is static information. The glitch seems to be that my
> > > optimization involves eliminating methods, and it appears that this
> > can
> > > only be done from a SceneTransformer. Adding SceneTransformers to the
> > > "bop" pack doesn't work though, and removing methods from a
> > > BodyTransformer is equally fruitless.
> > >
> > > I fear SceneTransformers can only be added to the "wjtp" pack...is
> > this
> > > true? If so, is there a way to remove methods from a BodyTransformer,
> > > or will -O3 be a requirement? (This might be pushing a little too
> > hard,
> > > but is it possible to run -O3 and bypass call graph creation and the
> > > other "wjtp" optimizations?)
> > >
> > > Thanks again for the help,
> > > Eduardo Cordeiro
> > >
> > > Ondrej Lhotak wrote:
> > > > On Thu, Aug 03, 2006 at 10:14:42AM -0400, Eric Bodden wrote:
> > > >
> > > >> You can get paddle from here:
> > > >> http://www.sable.mcgill.ca/~olhota/build/
> > > >>
> > > >
> > > > The machine that does those builds seems to not exist anymore.
> > > > Up-to-date builds are at:
> > > >
> > > > http://plg.uwaterloo.ca/~olhotak/build/
> > > >
> > > > I'll modify the web page to point to the up-to-date version.
> > > >
> > > > Ondrej
> > > >
> > > >
> > > >> Eric
> > > >>
> > > >>
> > > >>
> > > >>> -----Original Message-----
> > > >>> From: Majordomo list server [mailto:majordomo@comlab.ox.ac.uk] On
> > > >>> Behalf Of Eduardo S. Cordeiro
> > > >>> Sent: Wednesday, August 02, 2006 10:29 PM
> > > >>> To: abc-users@comlab.ox.ac.uk
> > > >>> Subject: Re: [abc-users] -O3 runtime error
> > > >>>
> > > >>> Eric and Ondrej,
> > > >>>
> > > >>> as a workaround, is it possible to disable at source code level
> > the
> > > >>> optimization that uses Paddle so that I can get my extension to
> > > run?
> > > >>>
> > > >>> Thanks and regards,
> > > >>> Eduardo Cordeiro
> > > >>>
> > > >>> Ondrej Lhotak wrote:
> > > >>>
> > > >>>
> > > >>>> This bug was reported and fixed in Paddle on April 27th (which,
> > > >>>> unfortunately, was after the abc 1.2.0 release). The fix should
> > > >>>>
> > > >> appear
> > > >>
> > > >>>> in the next release of abc.
> > > >>>>
> > > >>>> Ondrej
> > > >>>>
> > > >>>> On Wed, Aug 02, 2006 at 10:46:13AM -0300, Eduardo S. Cordeiro
> > > wrote:
> > > >>>>
> > > >>>>
> > > >>>>
> > > >>>>> Hello there,
> > > >>>>>
> > > >>>>> I've been trying to add an optimization to the wjtp pack, and so
> > > >>>>> abc must be executed with the -O3 option. When executed with
> > this
> > > >>>>>
> > > >> option,
> > > >>
> > > >>>>> abc generates the following error:
> > > >>>>>
> > > >>>>> Garbage collection #1: 1000003 nodes / 998323 free / 0.062s /
> > > >>>>> 0.062s total Exception in thread "main"
> > > >>>>>
> > > >> polyglot.util.InternalCompilerError:
> > > >>
> > > >>>>> unhandled exception during compilation
> > > >>>>> at abc.main.Main.run(Main.java:653)
> > > >>>>> at abc.main.Main.main(Main.java:211) Caused by:
> > > >>>>> java.lang.RuntimeException
> > > >>>>> at
> > > >>>>>
> > > >>>>
> > > soot.jimple.paddle.PaddleScene.makeSetFactories(PaddleScene.java:13
> > > >>>> 63
> > > >>>>
> > > >>> )
> > > >>>
> > > >>>>> at soot.jimple.paddle.PaddleScene.setup(PaddleScene.java:1284)
> > > >>>>> at
> > > >>>>>
> > > >>>
> > > soot.jimple.paddle.PaddleTransformer.setup(PaddleTransformer.java:84
> > > >>> )
> > > >>>
> > > >>>>> at
> > > >>>>>
> > > >>>>
> > > soot.jimple.paddle.PaddleTransformer.internalTransform(PaddleTransf
> > > >>>> or
> > > >>>>
> > > >>> mer.java:45)
> > > >>>
> > > >>>>> at soot.SceneTransformer.transform(SceneTransformer.java:39)
> > > >>>>> at
> > > >>>>>
> > > >>>
> > soot.jimple.paddle.PaddleHook.internalTransform(PaddleHook.java:43)
> > > >>>
> > > >>>>> at soot.SceneTransformer.transform(SceneTransformer.java:39)
> > > >>>>> at soot.Transform.apply(Transform.java:89)
> > > >>>>> at soot.RadioScenePack.internalApply(RadioScenePack.java:60)
> > > >>>>> at
> > > >>>>>
> > > >>>>
> > > soot.jimple.toolkits.callgraph.CallGraphPack.internalApply(CallGrap
> > > >>>> hP
> > > >>>>
> > > >>> ack.java:40)
> > > >>>
> > > >>>>> at soot.Pack.apply(Pack.java:110)
> > > >>>>> at
> > > >>>>>
> > > >>>
> > > abc.weaving.weaver.CflowAnalysisImpl.run(CflowAnalysisImpl.java:105)
> > > >>>
> > > >>>>> at abc.weaving.weaver.Weaver.runCflowAnalysis(Weaver.java:319)
> > > >>>>> at abc.weaving.weaver.Weaver.weave(Weaver.java:137)
> > > >>>>> at abc.main.Main.weave(Main.java:1064)
> > > >>>>> at abc.main.Main.run(Main.java:531)
> > > >>>>> ... 1 more
> > > >>>>>
> > > >>>>>
> > > >>>>> I thought this might be a problem with my extension, so I
> > removed
> > > >>>>>
> > > >> the
> > > >>
> > > >>>>> -ext option, but the error message still occurs. Is this an
> > error
> > > >>>>>
> > > >>> with
> > > >>>
> > > >>>>> my setup or maybe a known bug? I'm using abc 1.2.0 from the
> > > >>>>> abc-complete jar file.
> > > >>>>>
> > > >>>>> Thank you,
> > > >>>>> Eduardo Cordeiro
> > > >>>>>
> > > >>>>>
> > > >>>>>
> > > >>>>>
> > > >>>>
> > > >>>>
> > > >>>
> > > >
> > > >
> > >
> >
>
>
>

Content-Description: TmTestMin.java
> public aspect TmTestMin {
>
> static class Test {
> void a() { }
> void b() { }
> }
>
>
> tracematch(Object o) {
>
> sym a before: execution(* a()) && this(o);
> sym b before: execution(* b()) && this(o);
>
> a b {
> //do something
> }
>
> }
>
>
> public static void main(String[] args) {
> Test t2 = new Test();
> t2.a();
> t2.b();
> t2.b();
> t2.a();
> t2.b();
> }
> }
Received on Wed Aug 09 23:54:56 2006

This archive was generated by hypermail 2.1.8 : Tue Mar 06 2007 - 16:13:29 GMT