Benjamin Goldberg Compiler Verification and Optimization

Slides:



Advertisements
Similar presentations
1 CIS 461 Compiler Design and Construction Fall 2014 Instructor: Hugh McGuire slides derived from Tevfik Bultan, Keith Cooper, and Linda Torczon Lecture-Module.
Advertisements

Software & Services Group, Developer Products Division Copyright© 2010, Intel Corporation. All rights reserved. *Other brands and names are the property.
ECE 454 Computer Systems Programming Compiler and Optimization (I) Ding Yuan ECE Dept., University of Toronto
Computer Architecture Lecture 7 Compiler Considerations and Optimizations.
8. Code Generation. Generate executable code for a target machine that is a faithful representation of the semantics of the source code Depends not only.
Optimizing single thread performance Dependence Loop transformations.
Chapter 10 Code Optimization. A main goal is to achieve a better performance Front End Code Gen Intermediate Code source Code target Code user Machine-
1 Translation Validation: From Simulink to C Michael RyabtsevOfer Strichman Technion, Haifa, Israel Acknowledgement: sponsored by a grant from General.
Program Representations. Representing programs Goals.
Chapter 2- Visual Basic Schneider1 Chapter 2 Problem Solving.
Automated Soundness Proofs for Dataflow Analyses and Transformations via Local Rules Sorin Lerner* Todd Millstein** Erika Rice* Craig Chambers* * University.
TECH Computer Science Parallel Algorithms  several operations can be executed at the same time  many problems are most naturally modeled with parallelism.
Instruction Level Parallelism (ILP) Colin Stevens.
2015/6/21\course\cpeg F\Topic-1.ppt1 CPEG 421/621 - Fall 2010 Topics I Fundamentals.
Validating High-Level Synthesis Sudipta Kundu, Sorin Lerner, Rajesh Gupta Department of Computer Science and Engineering, University of California, San.
On the Correctness of Model Transformations Gabor Karsai ISIS/Vanderbilt University.
Lecture 1CS 380C 1 380C Last Time –Course organization –Read Backus et al. Announcements –Hadi lab Q&A Wed 1-2 in Painter 5.38N –UT Texas Learning Center:
An Introduction Chapter Chapter 1 Introduction2 Computer Systems  Programmable machines  Hardware + Software (program) HardwareProgram.
High level & Low level language High level programming languages are more structured, are closer to spoken language and are more intuitive than low level.
Proof Carrying Code Zhiwei Lin. Outline Proof-Carrying Code The Design and Implementation of a Certifying Compiler A Proof – Carrying Code Architecture.
Compiler course 1. Introduction. Outline Scope of the course Disciplines involved in it Abstract view for a compiler Front-end and back-end tasks Modules.
Spiral: an empirical search system for program generation and optimization David Padua Department of Computer Science University of Illinois at Urbana-
Computer Organization and Architecture Tutorial 1 Kenneth Lee.
Compilers for Embedded Systems Ram, Vasanth, and VJ Instructor : Dr. Edwin Sha Synthesis and Optimization of High-Performance Systems.
1 Chapter 1 Introduction. 2 Outlines 1.1 Overview and History 1.2 What Do Compilers Do? 1.3 The Structure of a Compiler 1.4 The Syntax and Semantics of.
CS 460/660 Compiler Construction. Class 01 2 Why Study Compilers? Compilers are important – –Responsible for many aspects of system performance Compilers.
CISC Machine Learning for Solving Systems Problems John Cavazos Dept of Computer & Information Sciences University of Delaware
Represents different voltage levels High: 5 Volts Low: 0 Volts At this raw level a digital computer is instructed to carry out instructions.
ISA's, Compilers, and Assembly
What is a compiler? –A program that reads a program written in one language (source language) and translates it into an equivalent program in another language.
1 Asstt. Prof Navjot Kaur Computer Dept PRESENTED BY.
CS 404Ahmed Ezzat 1 CS 404 Introduction to Compiler Design Lecture 10 Ahmed Ezzat.
Proving Optimizations Correct using Parameterized Program Equivalence University of California, San Diego Sudipta Kundu Zachary Tatlock Sorin Lerner.
Computer Operation. Binary Codes CPU operates in binary codes Representation of values in binary codes Instructions to CPU in binary codes Addresses in.
Presented by : A best website designer company. Chapter 1 Introduction Prof Chung. 1.
Conditionally Correct Superoptimization Rahul Sharma, Eric Schkufza, Berkeley Churchill, Alex Aiken (Stanford University)
Credible Compilation With Pointers Martin Rinard and Darko Marinov Laboratory for Computer Science Massachusetts Institute of Technology.
Topics to be covered Instruction Execution Characteristics
COMP Compilers Lecture 1: Introduction
Why don’t programmers have to program in machine code?
Advanced Computer Systems
Code Optimization.
Programming Languages and Compilers (CS 421)
Chapter 1 Introduction.
Introduction to programming
Language Translation Compilation vs. interpretation.
Benjamin Goldberg, Emily Crutcher NYU
Chapter 1 Introduction.
课程名 编译原理 Compiling Techniques
Optimization Code Optimization ©SoftMoore Consulting.
Want to Write a Compiler?
Overview Instruction Codes Computer Registers Computer Instructions
Programming Languages
Instruction Scheduling for Instruction-Level Parallelism
High Performance Computing (CS 540)
COMP Compilers Lecture 1: Introduction
High Level Programming Languages
Compiler Back End Panel
Compiler Back End Panel
Compiler Front End Panel
Hyesoon Kim Onur Mutlu Jared Stark* Yale N. Patt
Back End Compiler Panel
8 Code Generation Topics A simple code generator algorithm
Optimization 薛智文 (textbook ch# 9) 薛智文 96 Spring.
Compiler Construction
Lecture 19: Code Optimisation
Chapter 6 Programming the basic computer
Compiler Structures 1. Overview Objective
Programming language translators
Presentation transcript:

Benjamin Goldberg Compiler Verification and Optimization Formally verifying that the compiler generates correct target code Relies on formal methods and theorem-proving techniques developed in the NYU ACSys group (Profs. Pnueli, Barrett,Cousot, etc.) Developing compiler optimizations for advanced computer architectures Embedded Processors: Optimizations for minimizing power and memory consumption in addition to reducing execution time Parallel Architectures: Optimizations exploiting instruction-level parallelism, multicore machines, etc.

Compiler Verification using Translation Validation (TV) Translation Validation is invoked after every compilation to prove that the target code is equivalent to the source code. challenge is to perform the validation in the presence of compiler optimizations that radically change the structure of the program (e.g. loop optimizations) As compiler runs, it generates “verification conditions” (assertions) that are then fed to the theorem prover to prove. If the conditions are proved, the compilation is correct. Front End Code Generation IR Global Optimizations (CSE, Dead Code Elim, Const Folding, Copy Prop) Loop Optimizations (Interchange, Tiling, etc) Machine Dependent Optimizations C, Fortran IA-64 Assembly INTEL Open Research Compiler (ORC) Translation Validation Tools “YES” or “NO”