LINUX.ORG.RU

Тест программа функционала C++

 


0

1

Есть clang компилятор, которым пользуюсь для сборки firefox - без Telemetry/Data Reporting/Fingerprinting.

clang compiler, можно собрать с PGO - выбрав нужные опции в конфигурации.

Для сбора данных PGO, разработчики clang, сочли нужным скормить компилятору - не удивляйтесь, код `Hello World' в 3 строки.

Кто пришлёт C++ code на одной странице, с использованием классов, созданием и удалений их, с условными и безусловными переходами, для тренировки компилятора?


Ответ на: комментарий от i-rinat

Clang - компилирует и линкует сам себя, на второй стадии.

BUILD_LTO_PGO=ON

BUILD_DIR='build'
BUILD_DIR_PGO='tools/clang/stage2-instrumented-bins/tools/clang/stage2-bins'

Нужна страница с кодом C++, как можно больше функционала этого языка.

blitz ()

Я не понял что нужно. Если нужна профильная информация для пересборки самого clang, то сними её со сборки firefox и радуйся жизни, а примеры ы 3 строки не помогут. Если нужна профильная информация для firefox, то вроде как она у разрабов есть, но я в какой-то моммент отключил сборку с pgo (на gcc), т.к. она идёт гораздо дольше, а на глаз изменений не заметил.

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

Нужна тестовая страница, со всевозможными операторами C++, для тренировки PGO clang, во время сборки.

Firefox, в официальной разработке PGO тренируется лишь на тесты JS.

Этого недостаточно, КМК. Есть своя отработанная методика тренировки, включая прохождение и тестов на медия контент - аудио/видео.

Долго ли? Укладываюсь в 20 минут + 2х время компиляции и линковки.

Результат? 20% скоростней в сравнительных тестах официального Firefox.

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

ты понимаешь, что PGO вообще работает только для простых и линейных приложений? на приложениях, которые имеют много вариантов ветвлений в зависимости от данных, это вообще дохлый номер. может стать даже хуже.

Iron_Bug ★★★★ ()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от Iron_Bug

Поясни, пожалуйста, что ты вкладывашеь в свою идею - только для простых и линейных приложений?

Собираю приложения в 2GB исходников. Они простые, задай себе вопрос.

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

да при чём тут вес исходников? можно крошечную программку написать с ветвлениями и она не будет оптимизироваться с PGO. читай про основы оптимизации. а ты собрался оптимизировать таким образом большой и сложный софт, который полностью зависит от входных данных.

Iron_Bug ★★★★ ()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от EXL

Благодарю! Но это бенчмарки для уже скомпилированного компилятора.

Хотелось бы - простейший набор, на одной странице.

* инициализации классов и уничтожения
* if (), for ()
* объявления функций и вызова их

для тренировки компилятора в PGO instrumentation.

Clang имеет для тренировки - тот пресловутый `Hello, world!'
Считаю недостаточным, для тренинга всех модулей компилятора.

blitz ()