Chegou o compilador GCC 10.1 e essas são suas principais novidades

Após um ano de desenvolvimento o lançamento da nova versão foi publicado do conjunto livre Compiladores GCC 10.1, sendo este o primeiro lançamento significativo no novo ramo do GCC 10.x.

De acordo com o novo esquema de numeração de versão, a versão 10.0 foi usada durante o processo de desenvolvimento e, pouco antes do lançamento do GCC 10.1, o branch do GCC 11.0 já foi ramificado, com base no qual a próxima versão será formada. importância do GCC 11.1.

Para aqueles que não estão familiarizados com GCC (GNU Compiler Collection), você deve saber que eEste é um conjunto de compiladores criados pelo projeto GNU, é um software livre distribuído pela Free Software Foundation (FSF) sob a licença pública geral GPL.

Esses compiladores são amplamente usados ​​na maioria dos sistemas Unix a tal ponto que são considerados um padrão para sistemas operacionais Unix e derivados de código aberto e também proprietários, como o Mac OS X.

O GCC requer o conjunto de aplicativos conhecidos como binutils para realizar tarefas como identificar arquivos de objetos ou obter seu tamanho para copiar, traduzir ou criar listas, vinculá-los ou remover símbolos desnecessários.

O que há de novo no GCC 10.1

O GCC 10.1 se destaca pela implementação de muitas inovações da linguagem C ++ desenvolvido para o padrão C ++ 20, melhorias relacionadas ao futuro padrão de linguagem C (C2x), novas otimizações em back-ends de compiladores e suporte experimental para o modo de análise estática.

Para as linguagens C, C ++ e Fortran, a especificação de programação paralela OpenACC 2.6 é implementada, que define ferramentas de download em GPUs e processadores especializados, como NVIDIA PTX.

A implementação do padrão Abrir MP 5.0 (Open Multi-Processing), que define a API e métodos para usar métodos de programação paralela em sistemas multi-core e híbridos (CPU + GPU / DSP) com memória compartilhada e unidades de vetorização (SIMD), está quase terminado.

Recursos são adicionados como expressões condicionais diretivas lastprivate, scan e loop, expressões de ordem e use_device_addr. Para OpenMP e OpenACC, foi adicionado suporte para download em GPUs AMD Radeon de XNUMXª e XNUMXª geração.

Para as linguagens C, a função "access" foi adicionada para descrever o acesso à função de objetos passados ​​por referência ou ponteiro e para associar esses objetos a argumentos inteiros contendo informações sobre o tamanho dos objetos.

Para trabalhar em conjunto com "access", o atributo "type" é implementado para detectar o acesso incorreto das funções do usuário, por exemplo, ao gravar valores em uma área fora dos limites do array. O atributo symver também foi adicionado para vincular caracteres no arquivo ELF a números de versão específicos.

Para C ++, cerca de 16 mudanças e inovações foram implementadas desenvolvido no padrão C ++ 20 incluindo a palavra-chave "constinit" adicionado e implementado suporte para expansão de modelos «conceito»Isso permite que você defina um conjunto de requisitos para os parâmetros do template, que durante a compilação limitam o conjunto de argumentos que podem ser tomados como parâmetros do template.

Além disso, otimizações interprocedurais aprimoradas são destacadas, O IPA-SRA foi reprojetado para funcionar durante o bind e, entre outras coisas, agora remove valores calculados e retornados não utilizados.

No modo de otimização "-O2", a opção "-finline-functions" é habilitada, que é reconfigurada para um código mais compacto do que para desempenho.

Destaca também o otimização de link aprimorada (LTO), se adicionou um novo arquivo executável lto-dump para despejar informações em arquivos de objeto codificados por byte LTO. Em passagens paralelas LTO, o número de tarefas de execução simultânea pode ser determinado automaticamente e, se isso não puder ser determinado, use as informações sobre o número de núcleos da CPU como um fator de paralelização.

O mecanismo de otimização foi melhorado e é baseado nos resultados do perfil de código (PGO), que gera um código mais ideal com base em uma análise das características de execução do código.

Se você quiser saber mais sobre isso, você pode verificar os detalhes deste lançamento no link a seguir. 


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.