IllinoisIrvine PROMIS Compiler Symbolic Interpreter - PowerPoint PPT Presentation

1 / 21
About This Presentation
Title:

IllinoisIrvine PROMIS Compiler Symbolic Interpreter

Description:

Supports arbitrary precision data types. GNU MP (Multiple Precision) library ... No overhead for supporting arbitrary precision arithmetic ... – PowerPoint PPT presentation

Number of Views:24
Avg rating:3.0/5.0
Slides: 22
Provided by: nicholass5
Category:

less

Transcript and Presenter's Notes

Title: IllinoisIrvine PROMIS Compiler Symbolic Interpreter


1
Illinois-Irvine PROMIS CompilerSymbolic
Interpreter
  • Hideki Saito
  • Nicholas J. Stavrakos
  • Constantine D. Polychronopoulos

2
Outline
  • Symbolic Interpretation
  • What is it?
  • How does it work?
  • Symbolic Kernel
  • What can be done during interpretation?
  • Interprocedural Aspects
  • Performance Issues

3
Symbolic Interpretation
  • Interprets program to discover properties of the
    program
  • Maintains an environment of current execution
    state as each line of code is interpreted.
  • Requires a tool to manipulate the symbolic
    values variables take on during interpretation.

4
Interpretation Example
5
Encoding of Conditional Assignments
6
Symbolic Kernel
  • Interpreter requires tool to manipulate
  • Symbolic expressions
  • Expressions containing the truth function t
  • This tool is the core of the interpreter
  • Needs to be fast
  • Needs to be flexible

7
Symbolic Kernel
  • Supports basic data types
  • Supports arbitrary precision data types
  • GNU MP (Multiple Precision) library
  • Enables cross compilation for systems with
    different intrinsic data types
  • (64,128)-bit integers
  • Aribitrary precision floating point arithmetic

8
Symbol Class Definition
9
Uses of Symbolic Interpretation
  • SSA Versioning
  • Induction Variable Elimination
  • Static Performance Prediction
  • Range/Type/Constant Propagation
  • Symbolic Dependence Analysis
  • Strength Reduction

10
Symbolic Compiler
11
s-SSA Versioning
  • Similiar to classic SSA, but constructed during
    interpretation.
  • Allows for reevaluation of symbolic expressions
    without reinterpreting entire program.
  • Potentially smaller SSA form (less versions) than
    previous SSA algorithms

12
s-SSA Construction Example
13
Induction Variable Elimination
  • Eliminate variables inside loops which contain
    cross-iteration dependencies.
  • Computes closed form of variables using loop
    variables or loop constants
  • Introduces expensive operations (, /), but
    enables loops to execute in parallel
  • Opposite of strength reduction

14
Induction Variable Elimination Example
15
Strength Reduction
  • Replaces expensive instructions ( , / ) with
    less expensive instructions ( , -)
  • Introduces cross-iteration dependencies inside
    loops, hence restricting parallelism
  • If loop is not parallel, probably better to use
    simple instructions which introduce dependencies,
    than expensive instructions with no dependencies

16
Strength Reduction Example
17
Static Performance Analysis
  • Implemented with the aid of induction variable
    analysis and range propagation
  • Compile time estimation of relative sizes of code
    sections
  • Guides the ordering of transformations by the
    compiler
  • Usefull for scheduling code sections

18
Interprocedural Aspects
  • When interpreter encounters a function call it
    must evaluate the function call and its effect on
    the current environment
  • If function call only has a single call site,
    then entire environment can be transfered to
    function call for evaluation
  • If function call has multiple call sites then no
    assumptions can be made about environment when
    evaluating function call

19
Interprocedural Symbolic Interpretation
20
Performance Issues
  • Memory Requirements
  • Temporary file storage
  • Speed
  • No overhead for supporting arbitrary precision
    arithmetic
  • User definable values for complexity of
    interpretation

21
Conclusion
  • Most analysis and transformation techniques can
    use symbolic information (when necessary).
  • s-SSA enables retrieval of symbolic expressions
    without reinterpreting entire program.
  • Implication IR support required to achieve best
    possible performance from interpreter.
Write a Comment
User Comments (0)
About PowerShow.com