Cpeg421-08S/final-review1 Course Review Tom St. John.

Slides:



Advertisements
Similar presentations
School of EECS, Peking University “Advanced Compiler Techniques” (Fall 2011) SSA Guo, Yao.
Advertisements

Course Outline Traditional Static Program Analysis –Theory Compiler Optimizations; Control Flow Graphs Data-flow Analysis – today’s class –Classic analyses.
Control Flow Analysis (Chapter 7) Mooly Sagiv (with Contributions by Hanne Riis Nielson)
Components of representation Control dependencies: sequencing of operations –evaluation of if & then –side-effects of statements occur in right order Data.
Program Representations. Representing programs Goals.
AUTOMATIC GENERATION OF CODE OPTIMIZERS FROM FORMAL SPECIFICATIONS Vineeth Kumar Paleri Regional Engineering College, calicut Kerala, India. (Currently,
Lecture 01 - Introduction Eran Yahav 1. 2 Who? Eran Yahav Taub 734 Tel: Monday 13:30-14:30
Representing programs Goals. Representing programs Primary goals –analysis is easy and effective just a few cases to handle directly link related things.
1 Intermediate representation Goals: –encode knowledge about the program –facilitate analysis –facilitate retargeting –facilitate optimization scanning.
Code Generation for Basic Blocks Introduction Mooly Sagiv html:// Chapter
2015/6/21\course\cpeg F\Topic-1.ppt1 CPEG 421/621 - Fall 2010 Topics I Fundamentals.
January 19, Compiler Design Hongwei Xi Comp. Sci. Dept. Boston University.
2015/6/25\course\cpeg421-08s\Topic-1.ppt1 CPEG 421/621 - Spring 2008 Compiler Design: The Software and Hardware Tradeoffs.
Compiler Construction
Overview of program analysis Mooly Sagiv html://
Topic 6 -Code Generation Dr. William A. Maniatty Assistant Prof. Dept. of Computer Science University At Albany CSI 511 Programming Languages and Systems.
BİL744 Derleyici Gerçekleştirimi (Compiler Design)1.
Overview of program analysis Mooly Sagiv html://
1.3 Executing Programs. How is Computer Code Transformed into an Executable? Interpreters Compilers Hybrid systems.
Precision Going back to constant prop, in what cases would we lose precision?
Invitation to Computer Science 5th Edition
Data Flow Analysis Compiler Baojian Hua
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
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.
Concordia University Department of Computer Science and Software Engineering Click to edit Master title style COMPILER DESIGN Review Joey Paquet,
Joey Paquet, Lecture 12 Review. Joey Paquet, Course Review Compiler architecture –Lexical analysis, syntactic analysis, semantic.
May 31, May 31, 2016May 31, 2016May 31, 2016 Azusa, CA Sheldon X. Liang Ph. D. Computer Science at Azusa Pacific University Azusa Pacific University,
Compiler Principles Fall Compiler Principles Lecture 0: Local Optimizations Roman Manevich Ben-Gurion University.
Static Single Assignment Form in the COINS Compiler Infrastructure Masataka Sassa, Toshiharu Nakaya, Masaki Kohama, Takeaki Fukuoka and Masahito Takahashi.
1 Compiler Design (40-414)  Main Text Book: Compilers: Principles, Techniques & Tools, 2 nd ed., Aho, Lam, Sethi, and Ullman, 2007  Evaluation:  Midterm.
Compiler Design Introduction 1. 2 Course Outline Introduction to Compiling Lexical Analysis Syntax Analysis –Context Free Grammars –Top-Down Parsing –Bottom-Up.
Intermediate Code Representations
Compiler Introduction 1 Kavita Patel. Outlines 2  1.1 What Do Compilers Do?  1.2 The Structure of a Compiler  1.3 Compilation Process  1.4 Phases.
The Model of Compilation Natawut Nupairoj, Ph.D. Department of Computer Engineering Chulalongkorn University.
Hy-C A Compiler Retargetable for Single-Chip Heterogeneous Multiprocessors Philip Sweany 8/27/2010.
CS412/413 Introduction to Compilers Radu Rugina Lecture 18: Control Flow Graphs 29 Feb 02.
1 Control Flow Graphs. 2 Optimizations Code transformations to improve program –Mainly: improve execution time –Also: reduce program size Can be done.
Control Flow Analysis Compiler Baojian Hua
CS 3220: Compilation Techniques for Parallel Systems Spring Pitt CS
©SoftMoore ConsultingSlide 1 Structure of Compilers.
1 Compiler Construction Vana Doufexi office CS dept.
Presented by : A best website designer company. Chapter 1 Introduction Prof Chung. 1.
CS416 Compiler Design1. 2 Course Information Instructor : Dr. Ilyas Cicekli –Office: EA504, –Phone: , – Course Web.
CS510 Compiler Lecture 1. Sources Lecture Notes Book 1 : “Compiler construction principles and practice”, Kenneth C. Louden. Book 2 : “Compilers Principles,
1 Compiler Construction Overview. 2 Today’s Goals Summary of the subjects we’ve covered Perspectives and final remarks.
1 Compiler Construction (CS-636) Muhammad Bilal Bashir UIIT, Rawalpindi.
Welcome! Simone Campanoni
Review 1.Structure of the course Lexical Analysis Syntax Analysis Grammar & Language RG & DFA Top-down LL(1) Parsing Bottom-Up LR Layered Automation Semantic.
Lecture 12 Intermediate Code Generation Translating Expressions
Single Static Assignment Intermediate Representation (or SSA IR) Many examples and pictures taken from Wikipedia.
CHAPTER 1 INTRODUCTION TO COMPILER SUNG-DONG KIM, DEPT. OF COMPUTER ENGINEERING, HANSUNG UNIVERSITY.
Compiler Design (40-414) Main Text Book:
Chapter 1 Introduction.
CMPUT Compiler Design and Optimization
Chapter 1 Introduction.
课程名 编译原理 Compiling Techniques
Compiler Lecture 1 CS510.
CS416 Compiler Design lec00-outline September 19, 2018
Introduction CI612 Compiler Design CI612 Compiler Design.
CSE401 Introduction to Compiler Construction
Code Optimization Overview and Examples Control Flow Graph
Subject: Language Processor
Exam Topics Hal Perkins Autumn 2009
Control Flow Analysis (Chapter 7)
CS416 Compiler Design lec00-outline February 23, 2019
Compiler Construction
Lec00-outline May 18, 2019 Compiler Design CS416 Compiler Design.
Optimizing Compilers CISC 673 Spring 2009 Course Overview
Review: What is an activation record?
Exam Topics Hal Perkins Winter 2008
Presentation transcript:

cpeg421-08S/final-review1 Course Review Tom St. John

cpeg421-08S/final-review2 Important Dates May 13 (Tuesday): Quiz May 15 (Thursday): Project 2, Phase 1 Due May 22 (Thursday): Project 2, Phase 2 Due Course work will carry the following weights towards your final grade: Homework, Lab and Class Participation: 25% Quiz: 45% Projects: 30%

cpeg421-08S/final-review3 Major Topics Topic 1: An Overview on Compiler Design Topic 2: Compiler Front-End and IR Topic 3:Run-time Environment Topic 4: Flow Analysis Topic 5: SSA Form and Its Applications Topic 6: Back-End Optimization Topic 7: Loop Scheduling and Software Pipelining Topic 8: Parallelism and Locality

cpeg421-08S/final-review4 Topic 1: Outline of Compiler Design Ability to apply knowledge of compiler design flow in understanding overall structure of compiler design and optimization ( e.g. phases of a modern compiler, role of each phase ) An understanding of professional and ethical responsibilities of a compiler engineer

cpeg421-08S/final-review5 Topic 2: Compiler Front-End and IR Ability to apply knowledge of compiler design flow to solve lexical, syntax and semantic analysis problems. An ability to use Regular Expressions (RE) and Context- Free Grammar (CFG) design simple lexical analyzer and parser. Ability to use high-level intermediate representation to transform source program to a specific intermediate representations, such as syntax trees, AST (Abstract Syntax Trees), DAG, three address code or SSA (Static Single Assignment) form. A Knowledge of contemporary issues on this topic.

cpeg421-08S/final-review6 Topic 3: Run-time Environment Understand the software conventions necessary to support various source languages, including data representation, storage allocation for the various storage classes of variables, visibility rules, call sequence, entry, exit, and return. Ability to apply the knowledge of run time support systems to trace the program execution. Ability to use a modern compiler development platform and tools for the practice of above. A Knowledge of contemporary issues on this topic.

cpeg421-08S/final-review7 Topic 4: Flow Analysis Ability to apply knowledge of basic flow analysis to solve dataflow problems ( definition of CFG, structure of CFG, domination relation, loops, reducibility, dominance frontier, etc.). An ability to identify, formulate and solve dataflow analysis problems in compiler optimization (e.g. DU/UD chains, live variable analysis, etc. and iterative dataflow analysis method). Ability to analyze the basic algorithms on the above techniques and conduct experiments to show their effectiveness. Ability to use a modern compiler development platform and tools for the practice of above. A Knowledge of contemporary issues on this topic.

cpeg421-08S/final-review8 Topic 5: SSA Form and Its Applications Ability to apply knowledge of SSA techniques in compiler optimization (definition of SSA, concept of Ф-nodes, advantages of SSA, where SSA is used, etc.) An ability to formulate and solve the basic SSA construction problem based on the techniques introduced in class (e.g. iterative dominance frontiers). Ability to analyze the basic algorithms using SSA form to express and formulate dataflow analysis problems (e.g. dead code elimination, common subexp elimination, etc.) Ability to formulate the SSA-PRE problem A Knowledge of contemporary issues on this topic.

cpeg421-08S/final-review9 Topic 6: Back-End Optimization – Inst Selection, Inst. Scheduling and Reg. Allocation Ability to apply knowledge of basic code generation techniques, e.g. instruction selection, instruction scheduling, register allocation, to solve code generation problems. An ability to identify, formulate and solve instruction scheduling problems ( e.g. list scheduling for basic blocks, etc.) and register allocation problems ( e.g. graph coloring method for both interference and interval graphs, live range coalescing and splitting, spilling, etc.) Ability to analyze the basic algorithms on the above techniques and conduct experiments to show their effectiveness. Ability to use a modern compiler development platform and tools for the practice of above. A Knowledge of contemporary issues on this topic.

cpeg421-08S/final-review10 Topic 7: Loop Scheduling and Software Pipelining Ability to apply knowledge of basic code generation techniques for loop scheduling and software pipelining techniques to solve code generation problems. An ability to identify, formulate and solve loop scheduling problems using software pipelining techniques (e.g. rate-optimal resource constraint software pipelining: RecMII, ResMII, resource constraints, repeated pattern identification, etc.) Ability to analyze the basic algorithms on the above techniques and conduct experiments to show their effectiveness. Ability to use a modern compiler development platform and tools for the practice of above. A Knowledge of contemporary issues on this topic.

cpeg421-08S/final-review11 Parallelism and Locality A basic notion of parallelism and locality An understanding of loop nest transformation and optimization