Pull to refresh

Comments 18

Обновление компилятора само по себе важно дело. Производительность, исправление багов и т.д. Но 4.8.1 действительно сделало скачек. Требует внимания. Спасибо за статью!
GCC 4.8.1 собирает BulletPhysics с internal compiler error: Segmentation fault. Поэтому более старую версию лучше не удалять.
Вероятно, вы уже локализовали и отрепортили баг? ;-)
Подскажите как воспроизвести (точная версия, опции, что пускать).
удалено, почему никак не добавят возможность изменения ветки сообщения после написания?
Есть мнение, что лучшая версия gcc — это clang :)
Вообщем, реквестирую бенчмарк с clang 3.3
CoreMark, gcc и clang в свободном доступе — проверяйте. Мои данные говорят, что clang пока отстает.
CoreMark в условно свободном доступе: нужно зарегестрироваться, и согласиться с длинным текстом лицензии. Вчера я этот текст так и не осилил.

Да и процессор Intel Atom D525 в свободном доступе найти не просто!
Если Вам нужно сравнить gcc и clang, то подойдет и что-нибудь другое. Прирост gcc от архитектурных оптимизаций будет другой, но в целом картина будет схожа.
Clang отстает, ощутимо (пока), но на мой взгляд, он все же перспективней, чем GCC. Архитектура GCC представляет собой месиво из функций, причем, например, это нормально, когда бэкенд лезет чуть-ли не во фронтэнд за какой-либо нужной ему информацией. Изменение в любом компоненте может повлиять на большое количество мест и простой фикс выливается в огромый патч во всех модулях. Почитайте, например, недавнюю историю с переходом на компиляцию при помощи g++. С другой стороны, архитектура LLVM — стройный код, написанный в прадигме ООП. Разбираться и работать с ним одно удовольствие.
У gcc есть поддержка множества архитектур. Другим компиляторам такой поддержки добиться слабо реально. Этот факт застолбит часть будущего за gcc.
А множество архитектур — это сколько? Четыре десятка, учитывая те, что уже не производятся лет 10? Более того, архитектуру в компилятор добавить относительно не сложно.

Но, не отрицаю, что пока от GCC не уйти — очень много на него завязано всего.
Добавить поддержку в софте — одно. Добавить инфраструктуру и людей это много сложнее. GNU продукты это не только gcc. Не зря все бьются за совместимость с gcc.
Мм… вопрос, а что мне надо к примеру под AMD A10? Какие параметры будут оптимальны под самое высокое быстродействие.
Самое простое универсальное решение — -march=native -O3.
Будет использовать все доступные на хост машине инструкции и пытаться оптимизировать по максимуму, учитывая некоторые особенности доступного процессора (размер кэша, например).
-O3 обычно не советуют использовать, т.к. программы становятся не стабильны.
Насколько вообще опасно его юзать, и что может произойти?
На приложениях, где стабильность критически важна, советуют использовать -O1. В остальных случаях, -O2 и -O3 вполне допустимы. Разница у них в наборе используемых оптимизаций. Никаких экспериментальных и ненадежных вещей O3 не включает.
Sign up to leave a comment.