SlideServe
Menu
Préférences
© SlideServe · v2026

Optimizing Compilers CISC 673 Spring 2009 Feedback Directed Optimization

basil-nash avatar
9 diapositives · 283 Views · Nov 17, 2014

Optimizing Compilers CISC 673 Spring 2009 Feedback Directed Optimization. John Cavazos University of Delaware. Feedback-Directed Optimization (FDO). Exploit information gathered at run-time to optimize execution “selective optimization”: what to optimize “FDO” : how to optimize.

Optimizing Compilers CISC 673 Spring 2009 Feedback Directed Optimization - slide 1
01 / 9Optimizing Compilers CISC 673 Spring 2009 Feedback Directed Optimization
1 / 17

Télécharger la présentation

Optimizing Compilers CISC 673 Spring 2009 Feedback Directed Optimization
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. Optimizing CompilersCISC 673Spring 2009Feedback Directed Optimization John Cavazos University of Delaware

  2. Feedback-Directed Optimization (FDO) • Exploit information gathered at run-time to optimize execution • “selective optimization”: what to optimize • “FDO” :how to optimize

  3. Advantages of FDO • Can exploit dynamic information that cannot be inferred statically • System can change and revert decisions when conditions change • Runtime binding allows more flexible systems

  4. Challenges for automatic online FDO • Compensate for profiling overhead • Compensate for runtime transformation overhead • Account for partial profile available and changing conditions

  5. Clients of Profiling Information • Inlining, unrolling, method dispatch • Dispatch tables, Garbage Collection • Pretching • Misses, Hardware performance monitors [Adl-Tabatabai et al.’04] • Code layout

  6. Code Layout Motivation • Instruction memory critical to program performance • Cache line conflicts are one cause of misses • Particularly for direct-mapped caches • Page faults • Default code layout for most compilers is bad • Instructions placed in source order • Procedures placed according to source file listing • Compilers can rearrange code to reduce misses • More performance and less power for free

  7. Procedure Positioning • “Closest is best” strategy: if procedure calls another frequently, we want two procedures close to one another. Increases chances they will land on the same page, reducing working set. • Construct a weighted call graph • Node = procedure • Edge from A  B means procedure A calls B (perhaps multiple times) • Weight on edge is the total number of dynamic calls • Using the weighted call graph to build the link order for the procedures

  8. Example Call Graph

  9. Merging Nodes 1) The heaviest weight edge is one connecting procedures A and D. They are merged. Edge weights are updated. 2) The next edge chosen is the one between C and F.