soot
Class Main

java.lang.Object
  |
  +--soot.Main
All Implemented Interfaces:
java.lang.Runnable

public class Main
extends java.lang.Object
implements java.lang.Runnable

Main class for Soot; provides Soot's command-line user interface.


Field Summary
static Timer aggregationTimer
           
static Timer assembleJasminTimer
           
static int assignLocalCount
           
static int assignStmtCount
           
static Timer assignTimer
           
static int B
           
static int BAF
           
static Timer buildJasminTimer
           
static int CLASS
           
static int cleanup1LocalCount
           
static int cleanup1StmtCount
           
static Timer cleanup1Timer
           
static int cleanup2LocalCount
           
static int cleanup2StmtCount
           
static Timer cleanup2Timer
           
static Timer cleanupAlgorithmTimer
           
static int COMPILATION_ABORTED
           
static int COMPILATION_SUCCEDED
           
static int conversionLocalCount
           
static int conversionStmtCount
           
static Timer conversionTimer
           
static Timer copiesTimer
           
static int DAVA
           
static Timer deadCodeTimer
           
static Timer defsAnalysisTimer
           
static Timer defsPostTimer
           
static Timer defsSetupTimer
           
static Timer defsTimer
           
 java.util.Date finish
           
static Timer graphTimer
           
static int GRIMP
           
static Timer grimpAggregationTimer
           
static int GRIMPLE
           
static boolean isInDebugMode
           
static boolean isProfilingOptimization
           
static boolean isVerbose
           
static int JASMIN
           
static int JIMP
           
static int JIMPLE
           
static Timer liveAnalysisTimer
           
static Timer livePostTimer
           
static Timer liveSetupTimer
           
static Timer liveTimer
           
static int NJIMPLE
           
static boolean oldTyping
           
static int packLocalCount
           
static int packStmtCount
           
static Timer packTimer
           
static Timer propagatorTimer
           
static Timer resolverTimer
           
static Timer resolveTimer
           
static int splitLocalCount
           
static Timer splitPhase1Timer
           
static Timer splitPhase2Timer
           
static int splitStmtCount
           
static Timer splitTimer
           
 java.util.Date start
           
static long stmtCount
           
static int totalFlowComputations
           
static int totalFlowNodes
           
static Timer totalTimer
           
static boolean usePackedDefs
           
static boolean usePackedLive
           
static Timer usePhase1Timer
           
static Timer usePhase2Timer
           
static Timer usePhase3Timer
           
static Timer usesTimer
           
 
Constructor Summary
Main()
           
 
Method Summary
static void addCompilationListener(soot.gui.ICompilationListener l)
           
static void addDynamicPackage(java.lang.String str)
           
static void addDynamicPath(java.lang.String path)
           
static void addExclude(java.lang.String str)
           
static void addInclude(java.lang.String str)
           
static void addProcessPath(java.lang.String path)
           
static java.lang.String getExtensionFor(int rep)
           
static int getFinalRep()
           
static java.lang.String getOutputDir()
           
static int getTargetRep()
           
static void initApp()
          Initializes various Soot data and calls the PackAdjuster.
static boolean isAnalyzingLibraries()
           
static boolean isAppMode()
           
static boolean isDebug()
           
static boolean isOptimizing()
           
static boolean isOptimizingWhole()
           
static boolean isProfiling()
           
static boolean isSubstractingGC()
           
static boolean isVerbose()
           
static void main(java.lang.String[] args)
          Entry point for cmd line invocation of soot.
static void markPackageAsDynamic(java.lang.String str)
           
static java.lang.String paddedLeftOf(java.lang.String s, int length)
           
 void run()
          Entry point to the soot's compilation process.
static void setAnalyzingLibraries(boolean val)
           
static void setAnnotationPhases(java.lang.String opt)
           
static void setAppMode(boolean val)
           
static void setCmdLineArgs(java.lang.String[] args)
           
static void setDebug(boolean val)
           
static void setFinalRep(java.lang.String rep)
           
static void setOptimizing(boolean val)
           
static void setOptimizingWhole(boolean val)
           
static void setOutputDir(java.lang.String dir)
           
static void setProfiling(boolean val)
           
static void setReservedNames()
           
static void setSrcPrecedence(java.lang.String prec)
           
static void setSubstractingGC(boolean val)
           
static void setTargetRep(int rep)
           
static void setVerbose(boolean val)
           
static double truncatedOf(double d, int numDigits)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

start

public java.util.Date start

finish

public java.util.Date finish

COMPILATION_ABORTED

public static final int COMPILATION_ABORTED

COMPILATION_SUCCEDED

public static final int COMPILATION_SUCCEDED

BAF

public static final int BAF

B

public static final int B

JIMPLE

public static final int JIMPLE

JIMP

public static final int JIMP

NJIMPLE

public static final int NJIMPLE

GRIMP

public static final int GRIMP

GRIMPLE

public static final int GRIMPLE

CLASS

public static final int CLASS

DAVA

public static final int DAVA

JASMIN

public static final int JASMIN

isVerbose

public static boolean isVerbose

isProfilingOptimization

public static boolean isProfilingOptimization

oldTyping

public static boolean oldTyping

isInDebugMode

public static boolean isInDebugMode

usePackedLive

public static boolean usePackedLive

usePackedDefs

public static boolean usePackedDefs

totalFlowNodes

public static int totalFlowNodes

totalFlowComputations

public static int totalFlowComputations

copiesTimer

public static Timer copiesTimer

defsTimer

public static Timer defsTimer

usesTimer

public static Timer usesTimer

liveTimer

public static Timer liveTimer

splitTimer

public static Timer splitTimer

packTimer

public static Timer packTimer

cleanup1Timer

public static Timer cleanup1Timer

cleanup2Timer

public static Timer cleanup2Timer

conversionTimer

public static Timer conversionTimer

cleanupAlgorithmTimer

public static Timer cleanupAlgorithmTimer

graphTimer

public static Timer graphTimer

assignTimer

public static Timer assignTimer

resolveTimer

public static Timer resolveTimer

totalTimer

public static Timer totalTimer

splitPhase1Timer

public static Timer splitPhase1Timer

splitPhase2Timer

public static Timer splitPhase2Timer

usePhase1Timer

public static Timer usePhase1Timer

usePhase2Timer

public static Timer usePhase2Timer

usePhase3Timer

public static Timer usePhase3Timer

defsSetupTimer

public static Timer defsSetupTimer

defsAnalysisTimer

public static Timer defsAnalysisTimer

defsPostTimer

public static Timer defsPostTimer

liveSetupTimer

public static Timer liveSetupTimer

liveAnalysisTimer

public static Timer liveAnalysisTimer

livePostTimer

public static Timer livePostTimer

aggregationTimer

public static Timer aggregationTimer

grimpAggregationTimer

public static Timer grimpAggregationTimer

deadCodeTimer

public static Timer deadCodeTimer

propagatorTimer

public static Timer propagatorTimer

buildJasminTimer

public static Timer buildJasminTimer

assembleJasminTimer

public static Timer assembleJasminTimer

resolverTimer

public static Timer resolverTimer

conversionLocalCount

public static int conversionLocalCount

cleanup1LocalCount

public static int cleanup1LocalCount

splitLocalCount

public static int splitLocalCount

assignLocalCount

public static int assignLocalCount

packLocalCount

public static int packLocalCount

cleanup2LocalCount

public static int cleanup2LocalCount

conversionStmtCount

public static int conversionStmtCount

cleanup1StmtCount

public static int cleanup1StmtCount

splitStmtCount

public static int splitStmtCount

assignStmtCount

public static int assignStmtCount

packStmtCount

public static int packStmtCount

cleanup2StmtCount

public static int cleanup2StmtCount

stmtCount

public static long stmtCount
Constructor Detail

Main

public Main()
Method Detail

addCompilationListener

public static void addCompilationListener(soot.gui.ICompilationListener l)

getExtensionFor

public static java.lang.String getExtensionFor(int rep)

setTargetRep

public static void setTargetRep(int rep)

getTargetRep

public static int getTargetRep()

setOptimizing

public static void setOptimizing(boolean val)

isOptimizing

public static boolean isOptimizing()

setOptimizingWhole

public static void setOptimizingWhole(boolean val)
                               throws CompilationDeathException

isOptimizingWhole

public static boolean isOptimizingWhole()

setProfiling

public static void setProfiling(boolean val)

isProfiling

public static boolean isProfiling()

setVerbose

public static void setVerbose(boolean val)

isVerbose

public static boolean isVerbose()

setAppMode

public static void setAppMode(boolean val)

isAppMode

public static boolean isAppMode()

addExclude

public static void addExclude(java.lang.String str)
                       throws CompilationDeathException

addInclude

public static void addInclude(java.lang.String str)
                       throws CompilationDeathException

addDynamicPath

public static void addDynamicPath(java.lang.String path)
                           throws CompilationDeathException

addDynamicPackage

public static void addDynamicPackage(java.lang.String str)
                              throws CompilationDeathException

markPackageAsDynamic

public static void markPackageAsDynamic(java.lang.String str)

addProcessPath

public static void addProcessPath(java.lang.String path)
                           throws CompilationDeathException

setDebug

public static void setDebug(boolean val)

isDebug

public static boolean isDebug()

setOutputDir

public static void setOutputDir(java.lang.String dir)

getOutputDir

public static java.lang.String getOutputDir()

setSrcPrecedence

public static void setSrcPrecedence(java.lang.String prec)
                             throws CompilationDeathException

setFinalRep

public static void setFinalRep(java.lang.String rep)
                        throws CompilationDeathException

getFinalRep

public static int getFinalRep()

setAnalyzingLibraries

public static void setAnalyzingLibraries(boolean val)

isAnalyzingLibraries

public static boolean isAnalyzingLibraries()

setSubstractingGC

public static void setSubstractingGC(boolean val)

isSubstractingGC

public static boolean isSubstractingGC()

setAnnotationPhases

public static void setAnnotationPhases(java.lang.String opt)

initApp

public static void initApp()
Initializes various Soot data and calls the PackAdjuster. Must be called!

setCmdLineArgs

public static void setCmdLineArgs(java.lang.String[] args)

main

public static void main(java.lang.String[] args)
Entry point for cmd line invocation of soot.

setReservedNames

public static void setReservedNames()

run

public void run()
Entry point to the soot's compilation process. Be sure to call setCmdLineArgs before invoking this method.
Specified by:
run in interface java.lang.Runnable
See Also:
setCmdLineArgs(java.lang.String[])

truncatedOf

public static double truncatedOf(double d,
                                 int numDigits)

paddedLeftOf

public static java.lang.String paddedLeftOf(java.lang.String s,
                                            int length)