LLVM

O que é LLVM?

O que é LLVM?

O que é LLVM e por que ele é útil?

Vários miniprojetos trabalham sob o guarda-chuva do LLVM. Os miniprojetos lidam principalmente com tecnologias de compilador. Parece haver alguma confusão em relação à nomenclatura do LLVM. As pessoas assumem erroneamente que está relacionado a máquinas virtuais. Não há conexão. O termo LLVM não significa nada. É apenas um nome que foi usado no início do projeto.

O projeto LLVM é operado sob a licença “UIUC” estilo BSD. O projeto teve origem na Universidade de Illinois. Desde então, ele ganhou popularidade e tem sido usado para uma grande variedade de projetos. É especialmente popular nos círculos acadêmicos. O objetivo principal do projeto é fornecer compilação estática e dinâmica baseada em SSA de várias linguagens de programação.

Aqui está o mini-projeto do LLVM:

  1. LLVM Core: As bibliotecas centrais fornecem otimizador e suporte de geração de código para CPUs. LLVM IR (Intermediate Representation) fornece a base para as bibliotecas. A comunidade fez um bom trabalho documentando o LLVM Core. Portanto, você pode usar facilmente essas bibliotecas para criar sua nova linguagem de programação ou criar uma porta de um compilador existente. Se você está procurando se aventurar nesses territórios, o LLVM Core é um bom lugar para começar.
  1. Clang: É um compilador três vezes mais rápido que o GCC. Destina-se a C, C ++ e Objective-C. Os erros e avisos do Clang são mais fáceis de entender. Também possui uma ferramenta de análise estática. A própria ferramenta de análise estática é construída usando o compilador Clang.
  1. LLDB: É um depurador. É mais rápido e eficiente que GDB. O depurador é construído usando Clang e LLVM Core.
  1. libc ++ e libc ++ ABI: Melhor implementação de C ++ STD.
  1. compiler-rt: Ele fornece suporte para código de baixo nível. Ele também tem bibliotecas de tempo de execução para testes dinâmicos.
  1. OpenMP: Open Multi-Processing (OpenMP) é uma API para ajudar com multithreading. Este projeto suporta o tempo de execução nativo para OpenMP a ser usado com Clang.
  1. Polly: No mundo LLVM, é um loop de alto nível e otimizador de localidade de dados. Otimiza os padrões de acesso à memória de programas.
  1. libclc: Uma biblioteca para OpenCL.
  1. klee: É uma máquina virtual simbólica. Você pode usar o klee para percorrer todos os caminhos dinâmicos em um programa para encontrar problemas. A máquina pode produzir casos de teste automatizados.
  1. SAFECODE: É um compilador para C / C ++ para garantir a segurança da memória. É uma ótima ferramenta para os especialistas em segurança cibernética explorarem. Pode ajudar na detecção de erros de segurança de memória.
  1. lld: Ele está construindo um linker para trabalhar com Clang e LLVM.

O LLVM tem a reputação de criar binários mais limpos que o GCC. Além disso, o LLVM tem projetos externos que podem ser usados ​​para compilar Python, Haskell, PHP, LUA, Ruby e outras linguagens. LLVM é considerado uma solução versátil, flexível e reutilizável. Portanto, está ganhando popularidade na comunidade de desenvolvimento. É usado como compiladores JIT para linguagens integradas. LLVM também está sendo usado para supercomputadores. O amplo suporte da comunidade de desenvolvedores o torna uma ferramenta robusta.

Um estudo mais aprofundado:

Como alterar os botões esquerdo e direito do mouse no PC com Windows 10
É normal que todos os dispositivos de mouse de computador sejam ergonomicamente projetados para usuários destros. Mas existem dispositivos de mouse di...
Emular cliques do mouse passando o mouse usando o mouse sem cliques no Windows 10
Usar um mouse ou teclado na postura errada de uso excessivo pode resultar em muitos problemas de saúde, incluindo tensão, síndrome do túnel do carpo e...
Adicione gestos do mouse ao Windows 10 usando essas ferramentas gratuitas
Nos últimos anos, os computadores e sistemas operacionais evoluíram muito. Houve um tempo em que os usuários tinham que usar comandos para navegar pel...