LINUX.ORG.RU

GCC переходит на С++ компиляцию самого себя с целью улучшения качества кода

 ,


3

4

Для начала изменен только bootstrap код. Цель — улучшение качества кода (поскольку С++ жестче работает с типами). Когда там появятся классы и темплейты?.. Официально заявленные причины использовать С++:

  • C++ — стандартизованный, популярный язык.
  • C++ — практически надмножество C90, используемого внутри GCC.
  • Совместимый с С C++ код так же эффективен, как просто код C.
  • C++ поддерживает более чистый код во многих важных ситуациях.
  • C++ позволяет легче создавать и поддерживать четкие интерфейсы.
  • C++ никогда не требует более кривого кода.
  • C++ не панацея, но улучшение.

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

★★★★★

Проверено: Shaman007 ()
Последнее исправление: Silent (всего исправлений: 6)
Ответ на: комментарий от sv75

frost_ii>> Виртуальная машина никогда не позволит сделать быстрый код.

sv75> LLVM — не виртуальная машина (внезапно).

Однако архетиктура, заточенная на возможность использовать вирутальные машины, ограничивает возможности оптимизации.

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

Однако архетиктура, заточенная на возможность использовать вирутальные машины, ограничивает возможности оптимизации.

Ты бредишь. Наверное, тебя головой часто об пол роняли?

Абсолютно все современные компиляторы используют такую же архитектуру, как LLVM. В том числе и те, что заточены на одну единственную целевую платформу.

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

Абсолютно все современные компиляторы используют такую же архитектуру, как LLVM. В том числе и те, что заточены на одну единственную целевую платформу.

Грубовато, однако отвечу, что в gcc есть несколько уровней оптимизации, часть из которых возможна с внутренней машиной gcc с учетом известной целевой платвормы. Вот LLVM эту возможность оторвали. Под конкретную платформу оптимизации возможны только на следующих этапах.

Ну, по крайней мере, так раньше было.

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

Однако архетиктура, заточенная на возможность использовать вирутальные машины, ограничивает возможности оптимизации.

В чём разница между IR и GIMPLE?

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

Грубовато, однако отвечу, что в gcc есть несколько уровней оптимизации, часть из которых возможна с внутренней машиной gcc с учетом известной целевой платвормы.

Ты вообще хоть что либо про gcc знаешь? Или просто тупой?

Вот LLVM эту возможность оторвали.

Утю-тюшечки. Во первых, задайся вопросом, что такое интринсики. Во вторых, помедитируй, идиот, на platform string. В третьих, подумай, лошара, зачем там у большинства инструкций и типов данных есть Alignment.

Под конкретную платформу оптимизации возможны только на следующих этапах.

А в LLVM тоже до хрена этих самых следующих этапов, если ты не в курсе. Точно так же, как в gcc. Посмотри на SelectionDAG, на legalization pass и прочее.

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