LINUX.ORG.RU

Вышел LLVM 3.1

 


0

5

После 6 месяцев, прошедших с выпуска LLVM 3.0, представлен очередной релиз проекта LLVM 3.1. LLVM (Low Level Virtual Machine) — универсальная система анализа, трансформации и оптимизации программ, реализующая виртуальную машину с RISC-подобными инструкциями. Может использоваться как оптимизирующий компилятор этого байткода в машинный код для различных архитектур либо для его интерпретации и JIT-компиляции (для некоторых платформ).

Некоторые изменения:

  • значительно расширена поддержка C++'11 в компиляторе Clang;
  • AddressSanitizer — инструмент для поиска ошибок работы с памятью, позволяющий обнаруживать типичные ошибки при программировании на Си и Си++, такие как выход за границы буфера и т.п.;
  • в генератор кода добавлена поддержка так называемых «связок инструкций», позволяющих значительно повысить качество генерируемого кода для архитектур процессоров VLIW;
  • улучшена работа MIPS и ARM бэкенда;
  • помимо основных функций, этот релиз включает в себя улучшение производительности, исправление ошибок и другие усовершенствования.

Напоминаю, что LLVM позволяет компилировать программы написанные на языках С, C++, Objective-C, Fortran, Ada, Haskell, Java, Python, Ruby, JavaScript, GLSL или любом другом, для которого реализован front-end. В рамках проекта разработан фронтенд Clang для языков C и C++ и версия GCC, использующие llvm в качестве бэкенда. В Glasgow Haskell Compiler также реализована компиляция посредством llvm, существует ещё множество программ, использующих данную инфраструктуру.

>>> Подробности

★★★★★

Проверено: tazhate ()
Последнее исправление: thelonelyisland (всего исправлений: 2)
Ответ на: комментарий от unsigned

И чем C не соответствует этому определению?

В C не определены фундаментальные типы данных, например, строковый тип. Такие типы данных моделируются на этапе анализа и/или работы программы: строковый тип условно определяется на языке C через указатель на последовательность байтов в памяти, оканчивающуюся «нулём» — размер строки, как определяемого типа данных, неизветен компилятору.

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

Чувак, у тебя ровно 0 целых 0 десятых знаний о том, как работает компилятор C или Паскаля. Не позорься.

anonymous
()
Ответ на: комментарий от iZEN

размер строки, как определяемого типа данных, неизветен компилятору.

Это не «определяемый» тип данных - строкового типа нет в C ни при компиляции, ни при выполнении. Это понятие только для человека.

С тем же успехом можно сказать, что в яве размер массива неизвестен компилятору. Ява теперь тоже не статично типизирована?

unsigned ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.