Presentation is loading. Please wait.

Presentation is loading. Please wait.

Compiler Construction

Similar presentations


Presentation on theme: "Compiler Construction"— Presentation transcript:

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.


Download ppt "Compiler Construction"

Similar presentations


Ads by Google