2012-12-14 23 views
32

Quali informazioni raccoglie GCC quando abilito -fprofile-generate e quale ottimizzazione utilizza effettivamente le informazioni raccolte (quando si imposta il flag -fprofile-use)?Quali informazioni raccolgono GGO Profile Guided Optimization (PGO) e quali ottimizzazioni lo utilizzano?

Ho bisogno di citazioni qui. Ho cercato per un po 'ma non ho trovato nulla di documentato.

Le informazioni relative all'ottimizzazione del collegamento (LTO) sarebbero un vantaggio! = D

risposta

7

"Quello che ogni programmatore dovrebbe sapere su Memory" di Ulrich Drepper https://people.freebsd.org/~lstewart/articles/cpumemory.pdf http://www.akkadia.org/drepper/cpumemory.pdf

Nella sezione 7,4

  • compilation con --profile-generare genera .gcno file per ciascun file oggetto. (lo stesso file utilizzato per i report di copertura gcov)
  • quindi è necessario eseguire alcuni test, durante il runtime registra i dati di copertura in file .gcda
  • ricompilare con --profile-use: raccoglierà i dati di copertura e dedurre se un ramo è probabile (__builtin_expect (.., 1) o improbabile (__builtin_expect (.., 0)

il risultato dovrebbe correre più veloce come dovrebbe essere meglio a prefetching codice nella cache istruzioni del processore.

Problemi correlati