soot

7
SOOT By Joe Palmer Information taken from http://www.sable.mcgill.ca/soot/tutorial/pldi03/tutorial.p df

Upload: gella

Post on 06-Jan-2016

56 views

Category:

Documents


0 download

DESCRIPTION

SOOT. By Joe Palmer Information taken from http://www.sable.mcgill.ca/soot/tutorial/pldi03/tutorial.pdf. General Overview. Developed by Sable Research Group out of McGill University in 1996-1997 Used to optimize Java Bytecode 4 source languages 4 intermediate representations used. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: SOOT

SOOTBy Joe Palmer

Information taken from http://www.sable.mcgill.ca/soot/tutorial/pldi03/tutorial.pdf

Page 2: SOOT

General OverviewGeneral Overview

Developed by Sable Research Group out of McGill University in 1996-1997

Used to optimize Java Bytecode 4 source languages 4 intermediate representations used

Page 3: SOOT

Sources LanguagesSources Languages

Primarily takes Java Source as its input Can also take:

SMLSchemeEiffel

Page 4: SOOT

I.R.’sI.R.’s Baf:

Streamlined, stack-based representation of bytecode Abstracts type dependent variations of expressions into a single expression

Jimple: Stack-less, typed, 3-Address representation of bytecode Mix between java source and java bytecode Linearization of a single expression into 3 separate statements

Only refers to 3 local vars or conts at once Only 15 jimple instructions are used

Compared to 200 possible instructions in java bytecode! Shimple:

SSA-form version of Jimple Each local var has a single static point of definition (never reassign) Uses Phi-Nodes for control flow

Grimp: Similar to Jimple but allows trees of expressions together with a

representation of a “new” operator Expressions are “aggregated”

main IR used!!

Page 5: SOOT

Phases of the OptimizationPhases of the Optimization

Page 6: SOOT

AnalysisAnalysis

Tested using 8 SPECjvm98 benchmarks running on JDK 1.2 Showed 8% improvement when optimized bytecode is run using

an interpreter 21% improvement when optimized bytecode is run using a JIT

compiler Used in research with traditional compiler analyses,

analyses for software engineering, analysis for distributed programs, and software verification Ptolemy Project Bandera Canvas Project

Page 7: SOOT

Strengths and Future Strengths and Future EnhancementsEnhancements Used as a common infrastructure with which

researchers could compare common analyses Enhancements coming:

Attribute management Attribute legends Improved visual attributes in source Interactive CFGs Growable graphical callgraph Making conversion from Java to Jimple more stable and

complete