joeq-2011

joeq-2011 - Joeq Framework CS 243, Winter 2010-2011...

Info iconThis preview shows pages 1–13. Sign up to view the full content.

View Full Document Right Arrow Icon
Joeq Framework CS 243, Winter 2010-2011 CS243: Joeq Framework 1
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Homework 2: Dataflow Framework Solver interface Represent iterative dataflow algorithm Used for multiple dataflow analyses Analysis interface Specify per-analysis properties: direction, lattice value, boundary condition, … e.g., Constant Propagation, Liveness, Reaching Definition Solver Analysis Const. Prop. Liveness Reaching Defs MySolver CS243: Joeq Framework 2
Background image of page 2
Joeq Compiler framework for analyzing and optimizing Java bytecode Developed by John Whaley and others Implemented in Java Research project infrastructure: 10+ papers rely on Joeq Also see: http://joeq.sourceforge.net Etymology jyo-kyu- ” like the name “Joe” and the letter “Q” Advancedlevel in Japanese ( 上級 ) CS243: Joeq Framework 3
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Overview Intermediate representation in real compilers Joeq framework focusing on its intermediate representation Java bytecode Joeq quads: instruction set used in Joeq Homework 2 CS243: Joeq Framework 4
Background image of page 4
Typical Compiler Infrastructure Front-end Parsing Middle-end Machine- independent optimizations Back-end Machine- dependent optimizations CS243: Joeq Framework 5
Background image of page 5

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
GCC Front-end Parsing Middle-end Machine- independent optimizations Back-end Machine- dependent optimizations Abstract Syntax Tree GIMPLE Register Transfer Language CS243: Joeq Framework 6
Background image of page 6
SUIF: Stanford University Intermediate Format Front-end Parsing Middle-end Machine- independent optimizations Back-end Machine- dependent optimizations PGI C SUIF Compiler Machine SUIF SUIF CS243: Joeq Framework 7 Persistent and consistent intermediate representation
Background image of page 7

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
LLVM: Low-Level Virtual Machine (UIUC) Front-end Parsing Middle-end Machine- independent optimizations Back-end Machine- dependent optimizations Selection DAG GCC Front- end OR Clang LLVM Compiler LLVM Back-end LLVM IR Apple and NVIDIA OpenCL* compilers KLEE: symbolic execution for automatic test generation *OpenCL: A framework for programming heterogeneous platforms CS243: Joeq Framework 8
Background image of page 8
nvcc: NVIDIA CUDA Compiler Front-end Parsing Middle-end Machine- independent optimizations Back-end Machine- dependent optimizations PTX* EDG Front-end nvcc Graphics driver * PTX: Parallel Thread Execution CS243: Joeq Framework 9
Background image of page 9

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Java Front-end Parsing Middle-end Machine- independent optimizations Back-end Machine- dependent optimizations Foo.java Java Compiler (javac) JVM (java) Bytecode Foo.class CS243: Joeq Framework 10
Background image of page 10
Joeq Front-end Parsing Middle-end Machine- independent optimizations Back-end Machine- dependent optimizations Foo.java Bytecode Foo.class Java Compiler (javac) JVM (java) Joeq Quad CS243: Joeq Framework 11
Background image of page 11

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Java Source Code Input to the Java Front-end A very “rich” representation Good for reading and writing (by human) Hard to analyze (by computer) Many high-level concepts with no hardware counterparts classes, generics, virtual function calls, exceptions, structured control flow, locks, etc.
Background image of page 12
Image of page 13
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 39

joeq-2011 - Joeq Framework CS 243, Winter 2010-2011...

This preview shows document pages 1 - 13. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online