CMPUT680 - Winter 2006 - PowerPoint PPT Presentation

1 / 15
About This Presentation
Title:

CMPUT680 - Winter 2006

Description:

CMPUT 680 - Compiler Design and Optimization. 1. CMPUT680 - Winter ... Some People You Want to be Friend With. Kit Barton. Paul Berube. Stephen. Curial. Zhuang ... – PowerPoint PPT presentation

Number of Views:54
Avg rating:3.0/5.0
Slides: 16
Provided by: csUal
Category:

less

Transcript and Presenter's Notes

Title: CMPUT680 - Winter 2006


1
CMPUT680 - Winter 2006
  • Topic0 Introduction
  • José Nelson Amaral
  • http//www.cs.ualberta.ca/amaral/courses/680

2
Admin. Information
  • Instructor Prof. Jose Nelson Amaral
  • Office ATH 342
  • Phone 492-5411
  • Office Hours Anytime (appointment
    suggested but not required)
  • email amaral_at_cs.ualberta.ca
  • webpage
  • http//www.cs.ualberta.ca/amaral/courses/680

3
Some People You Want to be Friend With
Kit Barton
Paul Berube
Stephen Curial
Zhuang Guo
4
Mailing List
Important announcements will be made through the
class mailing list (some only in the list). I
have created an alias for the students in CMPUT
680. If you have not received an email from me,
please send me an email.
5
Bibliography
1. A set of papers - to be assigned 2. Books
Randy Allen, Ken Kennedy, Optimizing
Compilers for Modern Architectures A
Dependence-based Approach, Morgan Kauffman, 2001.
Andrew W. Appel Modern Compiler
Implementation in C A. Aho, R. Sethi and J.
Ullman, Compilers Principles, Techniques and
Tools (The Dragon Book), Addison Wesley, 1988 M.
Wolfe, High Performance Compilers of Parallel
Computing, Addison Wesley, 1995 S. Muchnick,
Advanced Compiler Design and Implementation,
Morgan Kaufman, 1997
6
Bibliography
7
Bibliography
  • 3. Journals
  • IEEE Computer
  • Transactions on Computers
  • Concurrency
  • Transactions on Parallel and Distributed
    Systems
  • ACM TOPLAS - Transactions on Programming
  • Languages and Systems
  • Transaction on Computer Systems
  • JPDC Journal of Parallel and Distributed
    computing
  • JSC Journal of Supercomputing
  • JPP International Journal of Parallel
    Programming
  • PC Parallel Computing (North-Holland)
  • JPL J. of Programming Languages

8
Bibliography
  • 4. Conference Proceedings
  • PLDI ACM Symposium on Programming Language
    Design and Implementation
  • POPL ACM Symposium on Principles of Programming
    Languages
  • PPOPP ACM Symposium on Principles and Practice
    of Parallel Programming
  • ICPP International Conference on Parallel
    Processing
  • ICS International Conference on Supercomputing
  • LCPC Intern. WS. on Languages and Compilers for
    Parallel Computing
  • PACT Parallel Architectures and Compilation
    Techniques (since 1994)
  • IPPS International Parallel Processing
    Symposium
  • EUROPAR European Parallel Processing Conferences
  • MICRO ACM/IEEE Symposium on Microarchitectures
  • ISCA ACM/IEEE International Symposium on
    Computer Architecture
  • ASPLOS ACM Symposium on Architecture Support for
    Program Languages and Operating Systems

9
Compiler Development Test Cycle
Resident Compiler
Development Compiler Source Code
Development Compiler
Application Source Code
Application Output Verifier
Expected Application Output
Compiled Application
Application Output
Application Input
10
Structure of an Optimizing Compiler
source code
11
Phases of a Compiler
Source program
12
Low-level Model
Mixed-level Model
Two models of compiler structures (Muchnick, pp.
08)
13
2. Lexical Analysis
3. Parsing
4. Abstract Syntax
5. Semantic Analysis
6. Activation Records
7. Translation to Intermediate Code
8. Basic Blocks and traces
9. Instruction Selection
12. Putting it All Together
1. Introduction
10. Liveness Analysis
11. Register Allocation
17. Dataflow Analysis
18. Loop Optimizations
19. Static Single- Assignment Form
20. Pipelining, Scheduling
15. Functional Languages
16. Polymorphic Types
21. Memory Hierarchies
13. Garbage Collection
14. Object-Oriented Languages
Course Teaching Sequence
(Appel, pp. x)
14
2. Lexical Analysis
3. Parsing
4. Abstract Syntax
5. Semantic Analysis
6. Activation Records
7. Translation to Intermediate Code
8. Basic Blocks and traces
9. Instruction Selection
12. Putting it All Together
1. Introduction
10. Liveness Analysis
11. Register Allocation
17. Dataflow Analysis
18. Loop Optimizations
19. Static Single- Assignment Form
20. Pipelining, Scheduling
15. Functional Languages
16. Polymorphic Types
21. Memory Hierarchies
13. Garbage Collection
14. Object-Oriented Languages
Course Teaching Sequence
(Appel, pp. x)
15
Environ- ments
Tables
Parsing Actions
Semantic Analysis
Canon- icalize
Instruction Selection
Abstract Syntax
Source Program
Token
Reductions
Translate
IR Trees
IR Trees
Assem
Lex
Parse
Translate
Frame
Frame Layout
Control Flow Analysis
Data Flow Analysis
Relocatable Object Code
Register Allocation
Code Emission
Machine Language
Interference Graph
Register Assignment
Assembly Language
Assembler
Assem
Flow Graph
Linker
Phases of a compiler, and interfaces between them
(Appel, pp. 4)
Write a Comment
User Comments (0)
About PowerShow.com