concepts introduced in chapter 8
play

Concepts Introduced in Chapter 8 register assignment instruction - PowerPoint PPT Presentation

Concepts Introduced in Chapter 8 register assignment instruction selection run-time stack management followed by Fig. 8.1 1 EECS 665 Compiler Construction Target Program The target program can be Absolute machine language


  1. Concepts Introduced in Chapter 8 ● register assignment ● instruction selection ● run-time stack management followed by Fig. 8.1 1 EECS 665 Compiler Construction

  2. Target Program The target program can be – Absolute machine language – Relocatable machine language – Assembly language 2 EECS 665 Compiler Construction

  3. Tasks Performed by a Code Generator ● Register assignment ● Instruction selection ● Management of the run-time stack 3 EECS 665 Compiler Construction

  4. Register Assignment ● Register assignment is the assignment of temporaries to hardware registers. ● Challenges – Use of register pairs – Overlapping of registers – Operations in specific registers – Spills 4 EECS 665 Compiler Construction

  5. Instruction Selection ● Instruction selection is the mapping of the intermediate language operations to machine instructions. ● Have to choose not only the appropriate instructions, but also the addressing mode of each operand. 5 EECS 665 Compiler Construction

  6. SPARC Addressing Modes Name Assembly RTL immediate n n register %n r[n] register deferred [%n] M[r[n]] displacement [%n+m] M[r[n]+m] [%n-m] M[r[n]-m] indexed [%n+%m] M[r[n]+r[m]] 6 EECS 665 Compiler Construction

  7. Run-Time Stack Management ● Allocating and deallocating space on the run-time stack when entering and leaving a function. ● Partitioning the register set into scratch and nonscratch sets. ● Saving and restoring nonscratch registers that are used in the function. ● Dedicating registers for managing the run-time stack. ● Passing arguments. ● Responsibility of callee versus caller. 7 EECS 665 Compiler Construction

  8. Evaluation Order of Arguments ● What is printed by the following program? i n t g = 0 ; i n t f 0 ( ) { r e t u r n g ; } i n t f 1 ( ) { r e t u r n + + g ; } m a i n ( ) { p r i n t f ( “ % d % d \ n ” , f 0 ( ) , f 1 ( ) ) ; } 8 EECS 665 Compiler Construction

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend