2015/6/25\course\cpeg421-08s\Topic-1.ppt1 CPEG 421/621 - Spring 2008 Compiler Design: The Software and Hardware Tradeoffs.

Slides:



Advertisements
Similar presentations
Optimizing Compilers for Modern Architectures Syllabus Allen and Kennedy, Preface Optimizing Compilers for Modern Architectures.
Advertisements

ECE Synthesis & Verification - Lecture 2 1 ECE 667 Spring 2011 ECE 667 Spring 2011 Synthesis and Verification of Digital Circuits High-Level (Architectural)
Randal E. Bryant Carnegie Mellon University CS:APP2e CS:APP Chapter 4 Computer Architecture Overview CS:APP Chapter 4 Computer Architecture Overview
Spring 2008, Jan. 14 ELEC / Lecture 2 1 ELEC / Computer Architecture and Design Spring 2007 Introduction Vishwani D. Agrawal.
Instruction Level Parallelism (ILP) Colin Stevens.
2015/6/14\course\cpeg s\Topic-1.ppt1 CPEG 421/621 - Fall 2010 Topics on Advanced Compiler Design.
Cpeg421-08S/final-review1 Course Review Tom St. John.
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
Advanced Compilers CSE 231 Instructor: Sorin Lerner.
Slide 1 Instructor: Dr. Hong Jiang Department of Computer Science & Engineering University of Nebraska-Lincoln Classroom: 108 Avery Hall; Time: 1:30pm-2:20pm,
2015/6/21\course\cpeg F\Topic-1.ppt1 CPEG 421/621 - Fall 2010 Topics I Fundamentals.
Prof. John Nestor ECE Department Lafayette College Easton, Pennsylvania Computer Organization Pipelined Processor Design 3.
Embedded Systems in Silicon TD5102 Henk Corporaal Technical University Eindhoven DTI / NUS Singapore.
09/06/11\course\867-11F\Topic-0.ppt1 CPEG Fall 2011 Advanced Topics in High End Computer Systems.
CMPUT Compiler Design and Optimization1 CMPUT680 - Winter 2006 Topic0: Introduction José Nelson Amaral
1 Computer Engineering Department Islamic University of Gaza ECOM 6301: Selected Topics in Computer Architectures (Graduate Course) Fall Prof.
ECE 232 L1 Intro.1 Adapted from Patterson 97 ©UCBCopyright 1998 Morgan Kaufmann Publishers ECE 232 Hardware Organization and Design Lecture 1 Introduction.
DATA LOCALITY & ITS OPTIMIZATION TECHNIQUES Presented by Preethi Rajaram CSS 548 Introduction to Compilers Professor Carol Zander Fall 2012.
8/16/2015\course\cpeg323-08F\Topics1b.ppt1 A Review of Processor Design Flow.
ELEC516/10 course_des 1 ELEC516 VLSI System Design and Design Automation Spring 2010 Course Description Chi-ying Tsui Department of Electrical and Electronic.
Foundations of Programming Languages – Course Overview Xinyu Feng Acknowledgments: some slides taken or adapted from lecture notes of Stanford CS242
Overview of the Course. Critical Facts Welcome to CISC 672 — Advanced Compiler Construction Instructor: Dr. John Cavazos Office.
1 Computer Engineering Department Islamic University of Gaza ECOM 6301: Advanced Computer Architectures (Graduate Course) Fall 2013 Prof. Mohammad A. Mikki.
David O’Hallaron Carnegie Mellon University Processor Architecture Overview Overview Based on original lecture notes by Randy.
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT Optimizing Compilers CISC 673 Spring 2011 Course Overview John Cavazos University.
Fall 2015, Aug 17 ELEC / Lecture 1 1 ELEC / Computer Architecture and Design Fall 2015 Introduction Vishwani D. Agrawal.
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.
1 Towards Optimal Custom Instruction Processors Wayne Luk Kubilay Atasu, Rob Dimond and Oskar Mencer Department of Computing Imperial College London HOT.
ELEC692/04 course_des 1 ELEC 692 Special Topic VLSI Signal Processing Architecture Fall 2004 Chi-ying Tsui Department of Electrical and Electronic Engineering.
Lecture 01: Welcome Computer Architecture! Kai Bu
1 Processor Architecture Jurij Silc, Borut Robic, Theo Ungerer.
Lecture 0. Course Introduction Prof. Taeweon Suh Computer Science Education Korea University COM609 Topics in Embedded Systems.
\cpeg323-08F\Topic0.ppt1 CPEG 323 – Fall 2008 Topics in Computer System Engineering – Computer Organization and Design.
CWRU EECS 3141 Computer designers must be experienced: in both hardware and software co-design, as well as in embedded applications, be familiar with optimization.
CS5222 Adv. Comp. Arch. Part 0 Page.1 Chi C.H. Fall 2003 NUS CS5222 Advanced Computer Architecture Part 0: Course Introduction Fall Term, 2003/2004 Chi.
Course Overview for Compilers J. H. Wang Sep. 14, 2015.
Lecture 0. Course Introduction Prof. Taeweon Suh Computer Science Education Korea University COM515 Advanced Computer Architecture.
CS5222 Adv. Comp. Arch. Part 0 Page.1 Chi C.H. Fall 2004 NUS CS5222 Advanced Computer Architecture Part 0: Course Introduction Fall Term, 2004/2005 Chi.
1 CS308 Compiler Theory. 2 Course Information Instructor : –Prof. Minyi Guo –Yao Shen Course.
Course Overview for Compilers J. H. Wang Sep. 20, 2011.
CS533 Concepts of Operating Systems Jonathan Walpole.
Spring 2016, Jan 13 ELEC / Lecture 1 1 ELEC / Computer Architecture and Design Spring 2016 Introduction Vishwani D. Agrawal.
Memory-Aware Compilation Philip Sweany 10/20/2011.
Lecture 0. Course Introduction Prof. Taeweon Suh Computer Science Education Korea University COM515 Advanced Computer Architecture.
Lecture 1: Introduction CprE 585 Advanced Computer Architecture, Fall 2004 Zhao Zhang.
CS416 Compiler Design1. 2 Course Information Instructor : Dr. Ilyas Cicekli –Office: EA504, –Phone: , – Course Web.
VU-Advanced Computer Architecture Lecture 1-Introduction 1 Advanced Computer Architecture CS 704 Advanced Computer Architecture Lecture 1.
Compiler Research How I spent my last 22 summer vacations Philip Sweany.
Elec/Comp 526 Spring 2015 High Performance Computer Architecture Instructor Peter Varman DH 2022 (Duncan Hall) rice.edux3990 Office Hours Tue/Thu.
Lecture 01: Welcome Computer Architecture! Kai Bu
CS140 – Computer Programming 1 Course Overview First Semester – Fall /1438 – 2016/2017 CS140 - Computer Programming 11.
Welcome to CSE 502 Introduction.
ECE 486/586 Computer Architecture Introductions Instructor and You
ELEC 7770 Advanced VLSI Design Spring 2016 Introduction
CMSC 611 Advanced Computer Arch.
CMPUT Compiler Design and Optimization
课程名 编译原理 Compiling Techniques
Chapter 4 Data-Level Parallelism in Vector, SIMD, and GPU Architectures Topic 17 NVIDIA GPU Computational Structures Prof. Zhang Gang
CPEG 323 – Fall 2006 Topics in Computer System Engineering – Computer Organization and Design 9/22/2018 cpeg323\Topic0.ppt.
ELEC 7770 Advanced VLSI Design Spring 2014 Introduction
A Review of Processor Design Flow
ELEC 7770 Advanced VLSI Design Spring 2012 Introduction
ELEC 7770 Advanced VLSI Design Spring 2010 Introduction
ENG3380 Computer Organization
CMSC 611 Advanced Computer Arch.
Design of Digital Circuits Lecture 19a: VLIW
Optimizing Compilers CISC 673 Spring 2009 Course Overview
ELEC / Computer Architecture and Design Fall 2014 Introduction
CPE 626 Advanced VLSI Design, Spring 2002 Admin
Presentation transcript:

2015/6/25\course\cpeg421-08s\Topic-1.ppt1 CPEG 421/621 - Spring 2008 Compiler Design: The Software and Hardware Tradeoffs

2015/6/25\course\cpeg421-08s\Topic-1.ppt2 Instructor: Prof. Guang R. Gao Office:312 DuPont Hall Phone: Co-instructor: Dr. Haiping Wu Office:306 DuPont Hall Phone: TA: Thomas St John webpage: Admin. Information

2015/6/25\course\cpeg421-08s\Topic-1.ppt3 Important Dates May 14 (Mon.) : Tentative: quiz May 16 (Wed.) : project report due Course work will carry the following weights towards your final grade: Homework, Lab and class Participation: 25% Quiz: 45% Project: 30%

2015/6/25\course\cpeg421-08s\Topic-1.ppt4 References 1. A set of papers - to be assigned 2. Books: A. Aho, M. S. Lam, R. Sethi and J. Ullman, Compilers: Principles, Techniques and Tools (The Dragon Book, second edition), Addison Wesley, 2006 Other references: see course page

2015/6/25\course\cpeg421-08s\Topic-1.ppt5 3. Journals IEEEComputer Transactions on Computers Concurrency Transactions on Parallel and Distributed Systems ACMTOPLAS - Transactions on Programming Languages and Systems Transaction on Computer Systems JPDCJournal of Parallel and Distributed computing JSCJournal of Supercomputing JPPInternational Journal of Parallel Programming PCParallel Computing (North-Holland) JPLJ. of Programming Languages Other References

2015/6/25\course\cpeg421-08s\Topic-1.ppt6 4. Conference Proceedings PLDIACM Symposium on Programming Language Design and Implementation POPLACM Symposium on Principles of Programming Languages PPOPPACM Symposium on Principles and Practice of Parallel Programming ICPPInternational Conference on Parallel Processing ICSInternational Conference on Supercomputing LCPCIntern. WS. on Languages and Compilers for Parallel Computing PACTParallel Architectures and Compilation Techniques (since 1994) IPDPSInternational Parallel and Distributed Processing Symposium EUROPAREuropean Parallel Processing Conferences MICRO ACM/IEEE Symposium on Microarchitectures ISCAACM/IEEE International Symposium on Computer Architecture ASPLOSACM Symposium on Architecture Support for Program Languages and Operating Systems Other Reference

2015/6/25\course\cpeg421-08s\Topic-1.ppt7 Major Topics Topic 1: An Overview on Compiler Design Topic 2: Compiler Front-End and IR Topic 3: Run-time Environment Topic 4: Middle-End and Optimizations Topic 5: Middle-End Optimization: Loop Nest Optimizations Topic 6: Back-End Optimization: Code Generation Topic 7: Advanced Optimization Topic 8: Compiler and Architecture Co-Design

2015/6/25\course\cpeg421-08s\Topic-1.ppt8 1.P rocessor architecture design flow 2.Compiler structure and design flow 3.Code generation design flow Foundations for Compiler Design

2015/6/25\course\cpeg421-08s\Topic-1.ppt9 Why Study Compilers? Influences on programming language design Influences on computer design Compiling techniques are useful for software development ─ Parsing techniques are often used ─ Learn practical data structures and algorithms ─ Basis for many tools such as text formatters, structure editors, silicon compilers, design verification tools,… Writing a compiler requires an understanding of almost all important CS subfields

2015/6/25\course\cpeg421-08s\Topic-1.ppt10 Architecture Models Architecture features/models Simultaneous multithreading Vector units. SIMD Instructional Level Parallelism (ILP) superscalar VLIW Chip multiprocessing (CMP, multi-core, etc.) What is the impact of these ideas on compilers?

2015/6/25\course\cpeg421-08s\Topic-1.ppt11 Instruction Set Architecture Design (Microarchitecture Design-I) System-Level Design RTL Level Design (Microarchitecture Design II) Compiler Design Code Optimizer Hardware Design Switch Level Design Circuit Level design ISA Simulator System Level Simulator RTL Level Simulator Switch Level Simulator Circuit Level Simulator Arch./Compiler and System Software Design Toolset Processor Architecture Design Flow Diagram HDL (VHDL or Verilog) Code Generator Toolchain - Intel VTune™ - IBM Performance Evaluator Debugger

2015/6/25\course\cpeg421-08s\Topic-1.ppt12 Interprocedural Analysis and Optimization Loop Nest Optimization and Parallelization Global (Scalar) Optimization Backend Code Generation Front end Good IR A Good Compiler Infrastructure Needed – A modern View Middle-End

2015/6/25\course\cpeg421-08s\Topic-1.ppt13 Middle-End Optimization Flow Analysis Control flow analysis Dataflow analysis Global scalar optimization Loop nest optimization Advanced topics: Static Single Assignment form (SSA) Application of SSA to scalar optimization

2015/6/25\course\cpeg421-08s\Topic-1.ppt14 Backend Optimization (I) Instruction selection Instruction scheduling Register allocation Others

2015/6/25\course\cpeg421-08s\Topic-1.ppt15 Backend Optimization (II) Loop optimization and scheduling Software pipelining