SSA Form Seminar France. April 27 to 30, Dr. Markus Schordan. Deputy Program Director of Game Engineering. UAS Technikum Wien

Similar documents
UNIVERSAL SPATIAL UP-SCALER WITH NONLINEAR EDGE ENHANCEMENT

ELCOM. Part Application Instruction. Release (V S 0.5) YS Kim S Jeong. OS Program Change to V S1.5 YS Kim S Jeong

This paper is a preprint of a paper accepted by Electronics Letters and is subject to Institution of Engineering and Technology Copyright.

Controlling Peak Power During Scan Testing

Music in Practice SAS 2015

OF AN ADVANCED LUT METHODOLOGY BASED FIR FILTER DESIGN PROCESS

Name / Title of intervention. 1. Abstract

Good afternoon! My name is Swetha Mettala Gilla you can call me Swetha.

Knowledge Representation

The PeRIPLO Propositional Interpolator

Design for Testability

Module 8 VIDEO CODING STANDARDS. Version 2 ECE IIT, Kharagpur

Bilbo-Val: Automatic Identification of Bibliographical Zone in Papers

Audio Compression Technology for Voice Transmission

Sequencing and Control

CS 7643: Deep Learning

1. Introduction. Abstract. 1.1 Logic Criteria

Application of A Disk Migration Module in Virtual Machine live Migration

Joint Optimization of Source-Channel Video Coding Using the H.264/AVC encoder and FEC Codes. Digital Signal and Image Processing Lab

Understanding Compression Technologies for HD and Megapixel Surveillance

Video coding standards

More Digital Circuits

PiMPro Rack Mount Analyzer

Informatique Fondamentale IMA S8

PiMPro Portable Analyzer PiMPro Classic 1821

FX Basics. Time Effects STOMPBOX DESIGN WORKSHOP. Esteban Maestre. CCRMA Stanford University July 2011

GOVERNMENT OF ANDHRA PRADESH ABSTRACT

Implementation of A Low Cost Motion Detection System Based On Embedded Linux

Digital TV Broadcasting in Japan. Tetsuo YAMAKAWA

A Design Language Based Approach

Jin-Fu Li Advanced Reliable Systems (ARES) Laboratory. National Central University

A Framework for Segmentation of Interview Videos

An MFA Binary Counter for Low Power Application

PEP-II/BaBar Performance, Accumulated Luminosity. BaBar has submitted over 400 papers for publication (Last year this number was 350)

On Communication Requirements for Control-by-Wire Applications. Future distributed control systems for safety critical applications

GG450 4/12/2010. Today s material comes from p in the text book. Please read and understand all of this material!

List of Publications and Talks within Project T425-N23

DISTRIBUTION STATEMENT A 7001Ö

Music Perception with Combined Stimulation

GCE English Literature 2015: Contemporary Poetry

Getting Started with the LabVIEW Sound and Vibration Toolkit

FORMAL METHODS INTRODUCTION

Television History. Date / Place E. Nemer - 1

RELIABILITY REASON FOR A COMMERCIAL INADVERTENT-INTERCHANGE SETTLEMENT STANDARD.

Modeling memory for melodies

Acoustic Scene Classification

Pivoting Object Tracking System

COSC3213W04 Exercise Set 2 - Solutions

Tempo Estimation and Manipulation

Decision-Maker Preference Modeling in Interactive Multiobjective Optimization

ECE Real Time Embedded Systems Final Project. Speeding Detecting System

CMOS Latches and Flip-Flops

Retiming Sequential Circuits for Low Power

The Research of Controlling Loudness in the Timbre Subjective Perception Experiment of Sheng

ENCYCLOPEDIA DATABASE

Faculty Governance Minutes A Compilation for online version

Reduced complexity MPEG2 video post-processing for HD display

ANNOTATING MUSICAL SCORES IN ENP

AN302 Anconda 3BR 3BA

Asynchronous IC Interconnect Network Design and Implementation Using a Standard ASIC Flow

Predicting the immediate future with Recurrent Neural Networks: Pre-training and Applications

hit), and assume that longer incidental sounds (forest noise, water, wind noise) resemble a Gaussian noise distribution.

Outline. 1 Reiteration. 2 Dynamic scheduling - Tomasulo. 3 Superscalar, VLIW. 4 Speculation. 5 ILP limitations. 6 What we have done so far.

Mitigation of Cascading Outages and Prevention of Blackouts:System-Wide Corrective Control

XRAN-FH.WP.0-v01.00 White Paper

A combination of approaches to solve Task How Many Ratings? of the KDD CUP 2007

EXECUTIVE SUMMARY. MARKET DYNAMICS CHINA CINEMATIC rd QUARTER

Cost models for digitisation and storage of audiovisual archives

Detecting Musical Key with Supervised Learning

COMPOSITE VIDEO LUMINANCE METER MODEL VLM-40 LUMINANCE MODEL VLM-40 NTSC TECHNICAL INSTRUCTION MANUAL

Summarizing Long First-Person Videos

SVT DAQ. Per Hansson Adrian HPS Collaboration Meeting 10/27/2015

Computational Modelling of Harmony

Measurement of automatic brightness control in televisions critical for effective policy-making

A Novel Macroblock-Level Filtering Upsampling Architecture for H.264/AVC Scalable Extension

FinFETs & SRAM Design

Timing with Virtual Signal Synchronization for Circuit Performance and Netlist Security

Page 1) 7 points Page 2) 16 points Page 3) 22 points Page 4) 21 points Page 5) 22 points Page 6) 12 points. TOTAL out of 100

ENCODING OF PREDICTIVE ERROR FRAMES IN RATE SCALABLE VIDEO CODECS USING WAVELET SHRINKAGE. Eduardo Asbun, Paul Salama, and Edward J.

International Journal of Engineering Trends and Technology (IJETT) - Volume4 Issue8- August 2013

Permutations of the Octagon: An Aesthetic-Mathematical Dialectic

Introduction to Signal Processing D R. T A R E K T U T U N J I P H I L A D E L P H I A U N I V E R S I T Y

ECE321 Electronics I

PITZ Introduction to the Video System

Hardware Implementation of Viterbi Decoder for Wireless Applications

Adaptive decoding of convolutional codes

Scalability of MB-level Parallelism for H.264 Decoding

DC Ultra. Concurrent Timing, Area, Power and Test Optimization. Overview

Universal Format Converter Implementation

However, in studies of expressive timing, the aim is to investigate production rather than perception of timing, that is, independently of the listene

Music Radar: A Web-based Query by Humming System

Appeal decision. Appeal No France. Tokyo, Japan. Tokyo, Japan. Tokyo, Japan. Tokyo, Japan. Tokyo, Japan

Luwei Yang. Mobile: (+86) luweiyang.com

Discrete Mode Laser Diodes emitting at l~689 and 780nm for Optical Atomic clock applications.

INTRODUCTION TO SCIENTOMETRICS. Farzaneh Aminpour, PhD. Ministry of Health and Medical Education

Figure 2: Original and PAM modulated image. Figure 4: Original image.

Pro Video Formats for IEEE 1722a

Reconfigurable FPGA Implementation of FIR Filter using Modified DA Method

Using Scan Side Channel to Detect IP Theft

MultiSpec Tutorial: Visualizing Growing Degree Day (GDD) Images. In this tutorial, the MultiSpec image processing software will be used to:

Transcription:

SSA Form Seminar France April 27 to 30, 2009 Dr. Markus Schordan Deputy Program Director of Game Engineering UAS Technikum Wien

Overview Computation of program information with SATIrE Flow-sensitivity and context-sensitivity Points-to analysis Shape analysis program annotations for making analysis results persistent Representation in SSA Form Memory regions and indirections SSA Form for representing analysis results Code pattern detection 10/10/2008 Markus Schordan 2

References The Language of the Visitor Design Pattern Markus Schordan Journal of Universal Computer Science (JUCS), Vol. 12, No. 7, pp. 849-867, August 2006. Special Issue: Selected Papers from The 10th Brazilian Symposium on Programming Languages. Issue edited by Mariza Andrade Silva Bigonha and Alex de Vasconcellos Garcia. Source Code based Component Recognition in Software Stacks for Embedded Systems Dietmar Schreiner, Markus Schordan, Gergo Barany, Karl Göschka. In Proceedings of the 4th ASME/IEEE International Conference of Mechatronic and Embedded Systems and Applications (MESA 2008), pp. 463-468, ISBN: 978-1-4244-2368-2, Beijing, China, Oct 12-15, 2008. 10/10/2008 Markus Schordan 3

SATIrE: Static Analysis Tool Integration Engine Activities - Projects ALL-TIMES 7. EU FP Dec 2007- Feb 2010 European timing analysis integration Partners: MDH, TU Vienna, AbsInt, Rapita, Symtavision, Gliwa CoSTA (timing analysis) FWF, National (Austria) Jul 2006 Dec 2009 ARTIST2 6. EU FP Sep 2004- Sep 2008 10/10/2008 Markus Schordan 4

SATIrE People SATIrE Developers Staff: Markus Schordan, Gergö Barany, Adrian Prantl, Dietmar Schreiner, Florian Brandner, Dietmar Ebner Students: Viktor Pavlu, Mihai Ghete, Christoph Roschger, Christoph Bonitz, Günther Khyo, Christian Biesinger Integrated Tools - Initiators LLNL-ROSE: Dan Quinlan (LLNL,CA,USA) PAG: Florian Martin (AbsInt) Termite: Adrian Prantl (TU Vienna) Clang: LLVM/Apple Community SATIrE-Based Tools Initiators TuBound: Adrian Prantl (TU Vienna) SATIrE Download http://www.complang.tuwien.ac.at/satire 10/10/2008 Markus Schordan 5

SATIrE: Static Analysis Tools Integration Engine SATIrE 10/10/2008 Markus Schordan 8

SATIrE Analyses Analysis Name classic analyses (RD, AE, LV, CP) Implementation Language Input Flow Sensitive FULA (PAG) ICFG Yes Yes Shape FULA (PAG) ICFG yes Yes Points-to C++ AST No Yes Type-Based Alias C++ AST No No Interval FULA (PAG) ICFG Yes Yes Loop-Bound Prolog (+Constraints) Interval No No Context Sensitive 10/10/2008 Markus Schordan 9

PAG Analysis Specification PROBLEM Reaching_Definitions direction: forward carrier: VarLabPairSetLifted init: bot init_start: lift({}) combine: comb retfunc: comb widening: wide equal: eq SUPPORT comb(a.b) = a lub b; wide(a,b) = b; eq(a,b) = (a=b); TRANSFER... ExprStatement(exprstmt), _: sl1_assignment(exprstmt,label,@); 10/10/2008 Markus Schordan 10

PAG Analysis Specification /* handling SL1 assignments in analysis */ sl1_assignment::expression,snum,varlabpairsetlifted ->VarLabPairSetLifted; sl1_assignment(exp,lab,bot) = bot; sl1_assignment(exp,lab,top) = top; sl1_assignment(exp,lab,infolifted) = let info <= infolifted; in case exp of Matching /* one variable on each side of assignment */ AssignOp(VarRefExp(cvarname1) as VarRef1, VarRefExp(cvarname2) as VarRef2) => let x = varref_varid(varref1); in lift(update_info(x,lab,info)) /* program variable */ ; endcase; /* update the analysis information with kill and gen functions */ update_info::str,snum,varlabpairset -> VarLabPairSet; update_info(x,lab,info) = union(rdkill(x,info),rdgen(x,lab)); /* kill variable */ rdkill::str,varlabpairset -> VarLabPairSet; rdkill(var,varset) = { (var1,lab1) (var1,lab1) <-- varset, if var1!= var }; Sets 10/10/2008 Markus Schordan 11

Overview of Pointer Analyses 10/10/2008 Markus Schordan 14

Points-To Analysis Variant of Steensgaard s algorithm Flow-insensitive Consideres type information Consideres function pointers Handles full C Context-sensitive version: static call strings with function summaries Heap allocated data structures are considered by call sites of malloc/new 10/10/2008 Markus Schordan 15

Shape Analysis Computes the shape of heap allocated data structures for each program point Analyzed example program: list create, list reversal 10/10/2008 Markus Schordan 16

Shape Analysis Precision and Complexity Strong update Graph for each statement: worst-case: 2 n Nodes Analyzed program: DSW-Algorithm 10/10/2008 Markus Schordan 17

Running Example and SSA Forms 1. Scalar variables only 2. With pointers to local variables 3. Heap allocated data structures 10/10/2008 Markus Schordan 20

Artificial Sum (only scalar vars) 10/10/2008 Markus Schordan 21

Example: With Pointers 10/10/2008 Markus Schordan 23

Strong vs Weak Update 10/10/2008 Markus Schordan 24

Flow-Insensitive Points-To Analysis 10/10/2008 Markus Schordan 25

Memory Regions - Cases Partitions Subsets R1234 R12 R34 R1 R2 R3 R4 Layers 1. R12=R3; // partitions 2. R1=R12; // sub-region is assigned a super-region 3. R12=R1; // super-region is assigned a sub-region 4. R12=R1; R12=R2; // complete region (e.g. initialization) 10/10/2008 Markus Schordan 31

Subsets and Partition-Layers Want to have an SSA where each variable representing a memory region that is potentially modified, shows up on the LHS. each variable representing a memory region that is accessed shows up on the RHS. Solutions: Use the superset that contains all mod/ref regions and name it. Use multi-assignments. 10/10/2008 Markus Schordan 32

Pointer Analysis Precision cp bp b 1 ap a 2 cp bp b ap a 3 cp bp a, b ap 10/10/2008 Markus Schordan 33

Memory Regions r1 r2 r4 1 r3 r5 2 r1 r2 r4 r3 r5 3 r1 r2 r4 r3 10/10/2008 Markus Schordan 34

With Dynamic Data Structures 10/10/2008 Markus Schordan 37

Type-Supported Points-To [1] Before: 17: ap->next=b 10/10/2008 Markus Schordan 38

Type-Supported Points-To [2] Collapsing after: 17: ap->next=b 10/10/2008 Markus Schordan 39

Shape Analysis In general: requires cross-linking of shape graphs (ongoing work) 10/10/2008 Markus Schordan 40

rssa Form: Dynamic DS a=new List(); b=new List(); ap=a; bp=b; i=n; j=n; while (i>0) { ap->next=new List(); ap=ap->next; i=i-1; j=i; while (j>0) { bp->next=new List(); bp=bp->next; j=j-1; } } ap->next=b; r1.1=new ; r2.1=new ; r1.2=r1.1; r2.2=r2.1 i.1=n.1; j.1=n.1; i.3=phi(i.1,i.2) j.5=phi(j.1,j.4) r1.5=phi(r1.2,r1.4) r2.6=phi(r2.2,r2.5) while (i.3>0) { r1.3=r1.5 + new; r1.4=r1.3; i.2=i.3-1; j.2=i.2; j.4=phi(j.2,j.3) r2.5=phi(r2.6,r2.4) while (j.5>0) { r2.3=r2.5 + new; r2.4=r2.3; j.3=j.4-1; } } r1.6=r1.5 + r2.6; r1: a,ap,ap->next r2: b,bp,bp->next preserving definitions 10/10/2008 Markus Schordan 41

Using SSA Region-based SSA Form allows to create a high-level abstraction of a program Design pattern detection Based on reduced program dependence graph Component recognition Based on type & field-access information (= regions) 10/10/2008 Markus Schordan 43

Design Pattern Detection Call Graph Green nodes: accept methods Blue nodes : visit methods 10/10/2008 Markus Schordan 44

Component Recognition Unstructured Unfiltered Dependencies Components Filtered Dependencies 10/10/2008 Markus Schordan 45

Summary SATIrE: Static Analysis Tool Integration Engine Flow-sensitive context-sensitive analysis of C/C++ Website: http://www.complang.tuwien.ac.at/satire Memory region based SSA Form The more precise the pointer analysis the more memory regions Scaling via memory sub-region relation Region-based SSA form with program information suitable for code pattern detection 10/10/2008 Markus Schordan 46