Issues in design_of_code_generator

vinithapanneer 7,661 views 19 slides Feb 27, 2015
Slide 1
Slide 1 of 19
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19

About This Presentation

Issues faced during the design of code generator


Slide Content

Issues regarding design of code generator Presented by, M.Selva Vinitha B.E/CSE M.Kumarasamy college of engineering Karur .

Code generator Final phase of compiler design Optimized intermediate code is provided as input It generates target code 2/27/2015 2 Issues in design of code generator

Code generation and Instruction Selection 4 Symbol table input output Front end Intermediate Code generator Code generator 2/27/2015 Issues in design of code generator

Contd … output code must be correct output code must be of high quality code generator should run efficiently 2/27/2015 4 Issues in design of code generator

Pre-requisites Instruction set of target machine. Instruction addressing modes. No. of registers. Configuration of ALU 2/27/2015 5 Issues in design of code generator

Issues in the design of a code generator Input to the code generator Memory management Target programs Instruction selection Register allocation Evaluation order Approaches to code generation 2/27/2015 6 Issues in design of code generator

Input to the code generator The intermediate representation of the source program produced by the front end Several choices for the intermediate language Linear - postfix nottion 3 address - quadruples Virtual machie - stack machine code Graphical - syntax tree & dags 2/27/2015 7 Issues in design of code generator

Memory management Mapping names in the source program to addresses of data objects in run-time memory Done by the front end and the code generator. A name in a three- address statement refers to a symbol-table entry for the name. A relative address can be determined 2/27/2015 8 Issues in design of code generator

Target programs Absolute machine language Relocatable machine language Assembly language 2/27/2015 9 Issues in design of code generator

Contd.. Absolute machine language: Produce an absolute machine language program can be placed in a fixed location in memory and immediately executed. 2/27/2015 10 Issues in design of code generator

Contd.. Relocatable machine language: Producing a relocatable machine language program subprograms to be compiled separately. relocatable object modules can be linked together and loaded for execution by a linking loader. must provide explicit relocation information to the loader, to link the separately compiled program segments. 2/27/2015 11 Issues in design of code generator

Contd … Assembly language: Producing an assembly language program makes the process of code generation easier 2/27/2015 12 Issues in design of code generator

Instruction selection The factors to be considered during instruction selection are: The uniformity and completeness of the instruction set. Instruction speed and machine idioms. Size of the instruction set. 2/27/2015 13 Issues in design of code generator

Contd … Eg ., for the following address code is:                     a := b + c                     d := a + e inefficient assembly code is: MOV b, R           R  ← b ADD  c, R 0               R  ← c + R MOV R , a           a    ← R MOV a, R           R  ← a ADD  e, R           R  ← e + R MOV R  , d         d    ← R Here the fourth statement is redundant, and so is the third statement if , 'a ' is not subsequently used. 2/27/2015 14 Issues in design of code generator

Register allocation Instructions with register operands are usually shorter and faster Efficient utilization of registers is important in generating good code. 2/27/2015 15 Issues in design of code generator

Contd.. Register allocation phase : Select the set of variables that will reside in registers Register assignment phase: Pick the specific register that a variable will reside in. 2/27/2015 16 Issues in design of code generator

Evaluation order The order in which computations are performed Affect the efficiency of the target code. Some computation orders require fewer registers to hold intermediate results 2/27/2015 17 Issues in design of code generator

Approaches to code generation Most important criteria for code generator is that it produces correct code Correctness takes on special signification It contains a straightforward code generation algorithm The output of such code generator can be improved by peephole optimization technique 2/27/2015 18 Issues in design of code generator

Conclusion Output of code generator phase is dependent on: Target language Operating system Memory management system Instruction selection Register allocation Evaluation order 2/27/2015 19 Issues in design of code generator
Tags