Download presentation
Presentation is loading. Please wait.
1
Compiler Construction
CS 606 Sohail Aslam Lecture 3 compiler: intro
2
Syntax Tree x+2-y goal expr term op – <id,y> <id,x> +
<number, 2> x+2-y
3
Abstract Syntax Trees The parse tree contains a lot of unneeded information. Compilers often use an abstract syntax tree (AST).
4
Abstract Syntax Trees This is much more concise – + <id,y>
<id,x> <number,2> This is much more concise
5
Abstract Syntax Trees – + <id,y> <id,x> <number,2> AST summarizes grammatical structure without the details of derivation
6
Abstract Syntax Trees – + <id,y> <id,x> <number,2> ASTs are one kind of intermediate representation (IR)
7
The Back End Instruction selection IR machine code errors Register
allocation scheduling
8
The Back End Translate IR into target machine code.
Choose machine (assembly) instructions to implement each IR operation
9
The Back End Ensure conformance with system interfaces
Decide which values to keep in registers
10
The Back End Instruction Selection: Produce fast, compact code.
IR machine code errors Register allocation scheduling Instruction Selection: Produce fast, compact code.
11
The Back End Instruction Selection:
IR machine code errors Register allocation scheduling Instruction Selection: Take advantage of target features such as addressing modes.
12
The Back End Instruction Selection:
IR machine code errors Register allocation scheduling Instruction Selection: Usually viewed as a pattern matching problem – dynamic programming.
13
The Back End Instruction Selection:
IR machine code errors Register allocation scheduling Instruction Selection: Spurred by PDP-11 to VAX CISC.
14
The Back End Instruction Selection:
IR machine code errors Register allocation scheduling Instruction Selection: RISC architecture simplified this problem.
15
The Back End Register Allocation:
IR Instruction selection IR Register allocation IR Instruction scheduling machine code errors Register Allocation: Have each value in a register when it is used.
16
The Back End Register Allocation:
IR Instruction selection IR Register allocation IR Instruction scheduling machine code errors Register Allocation: Manage a limited set of resources – register file.
17
The Back End Register Allocation:
IR Instruction selection IR Register allocation IR Instruction scheduling machine code errors Register Allocation: Can change instruction choices and insert LOADs and STOREs.
18
The Back End Register Allocation:
IR Instruction selection IR Register allocation IR Instruction scheduling machine code errors Register Allocation: Optimal register allocation is NP-Complete.
19
The Back End Instruction Scheduling:
IR Instruction selection IR Register allocation IR Instruction scheduling machine code errors Instruction Scheduling: Avoid hardware stalls and interlocks.
20
The Back End Instruction Scheduling:
IR Instruction selection IR Register allocation IR Instruction scheduling machine code errors Instruction Scheduling: Use all functional units productively.
21
The Back End Instruction Scheduling:
IR Instruction selection IR Register allocation IR Instruction scheduling machine code errors Instruction Scheduling: Optimal scheduling is NP-Complete in nearly all cases.
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.