Faz sentido usar o bootstrap exótico no GCC?

2

Alguém tem alguma evidência de que o GCC atualmente é inicializado de formas não triviais para detectar bugs em certos recursos e arquiteturas? Ou pelo menos aponte para alguma documentação onde eu possa encontrar técnicas reais de bootstrap para checar erros no GCC?

Bootstrap regular

  • Use a versão do GCC (X-1) para compilar a versão do GCC (X), chame de A
  • Um é o novo compilador com binário lento.
  • Use o novo compilador A para compilar e produzir B
  • B é o novo compilador com binário rápido
  • deixe B compilar e produzir C
  • Neste ponto, se A estiver livre de erros, o despejo binário do executável produzido de B e C deve ser o mesmo. li>

A abordagem do GCC também mantém os recursos de código usados ao desenvolver ao mínimo, de modo que, se o bootstrap for bem-sucedido, você sabe que pelo menos um conjunto mínimo de recursos é livre de bugs. (Oposto a Clang, onde um maior número de recursos é usado apenas para aumentar a cobertura simplesmente por bootstrapping).

Boostrap de otimização guiada por perfil

  • Use A para compilar usando o sinal -fprofile-generate e produzir B
  • Use B para compilar a si mesmo (ele gerará informações de perfil)
  • Use A para compilar seu arquivo usando o -fprofile-use e produzir B '

  • Use B ' para compilar usando o sinal -fprofile-generate e produzir C

  • Use C para compilar a si mesmo (ele gerará informações de perfil)
  • Use B ' para compilar seu arquivo usando o -fprofile-use e produzir C'

  • Neste ponto, se A estiver livre de erros, o despejo binário do executável produzido de B ' e C' deve ser o mesmo.

Bootstrap para trás e para frente

  • Use a versão X do GCC para compilar a versão do GCC (X-1) e produzir A
  • Em seguida, inicie um bootstrap regular para A
  • Use A para compilar a versão X do GCC e produzir D
  • Faça um bootstrap regular em D .

Off topic: Acho que seria bom se alguém criasse um gráfico de bootstraps do GCC, mantendo bootstraps especiais (como builds multiplataformas), e veja onde bootstraps falham e rapidamente

    
por GameDeveloper 29.08.2015 / 16:04

0 respostas

Tags