Re: [abc-users] abc and soot's "-whole-program" option

From: Ondrej Lhotak <>
Date: Wed Oct 13 2004 - 04:13:45 BST

On Tue, Oct 12, 2004 at 03:37:44PM +0100, Bruno Harbulot wrote:
> However, the following command throws the exception pasted at the end of
> this message:
> java -Xmx512M abc.main.Main +soot -whole-program -soot `cat files.txt`
> I am not so familiar with soot's command line options, since I've mainly
> been using it through its Eclipse plugin. But I've managed to make the
> "-whole-program" option work using soot without Eclipse (on the class
> files). (I also thought it might be necessary to specify which class is
> the main class in case there were several classes with "static void
> main", but I haven't found anything in the documentation about this.)
> Would this option provide any benefit at all for a program compiled with
> abc? What are the default soot optimisations performed by abc?

By default, abc enables the same optimizations as the -O option to Soot:
Copy Propagator (jop.cp)
Jimple Constant Propagator and Folder (jop.cpf)
Conditional Branch Folder (jop.cbf)
Dead Assignment Eliminator (jop.dae)
Unreachable Code Eliminator (jop.uce1, jop.uce2)
Unconditional Branch Folder (jop.ubf1, jop.ubf2)
Unused Local Eliminator (jop.ule)
All of the above optimizations are intra-procedural.

The -whole-program option does not yet work correctly in the last
pre-release (0.9.1), and the crash you have reported is a typical
symptom of its incompleteness. The reason is that it requires the
ability to weave multiple times (first to perform analyses, and
again to weave using the analysis results), and this requires some
structural changes throughout the back-end. Until very recently,
other tasks have taken precedence over these changes. Once these
changes are finished, however, the -whole-program option will enable
AspectJ-specific optimizations making use of inter-procedural analysis,
including more aggressive cflow optimizations and thisJoinPoint to
thisJoinPointStaticPart optimization.

Received on Wed Oct 13 04:13:57 2004

This archive was generated by hypermail 2.1.8 : Sun Oct 31 2004 - 23:50:04 GMT