Новое На Форуме

 Форум:  Тема: Ответов: Последний:
 МК \"Острофф\"  МК \"Остроф\"!!!!!! 7515 acomplia
 Флудильня  Как и Где расслабиться после сесии? 14 lyo1ya
 Флудильня  Баги сайта обсуждаются тут 16 wowanko
 Флудильня  MKM-83 40 _Nickolas_
 Флудильня  Тип ОС 18 wowanko
 Флудильня  Как сделать сайт интересным? 1 lapaKusapa
 Флудильня  Интернет-браузер 6 _Nickolas_

Главная Страница
Опубликовал: wish :: 28.03.2009 :: Просмотров: 487
#709: Кто кого обманет
Категория: Софт

Задача: протестировать оптимизирующий компилятор С++ (gcc, естественно) для встраиваемого PowerPC-процессора.

Тестовый стенд: отладочная плата, на ней проц, основной способ взаимодействия с которым - интерфейс RS-232. Чтобы не заморачиваться с передачей данных по COM-порту, я решил смухлевать — сделал все тестовые данные константными.

Скомпилировал программу с несколькими уровнями оптимизации, открыл ассемблерный исходник в отладчике и стал сравнивать результаты оптимизации. Вот что получилось.

Уровень оптимизации 0. Код толстый и красивый, все вычисления выполняются самым прямолинейным, тупым и очевидным способом. Предсказуемо...

Уровень оптимизации 1. Код стал компактнее, откровенно тупые действия вырезаны, но некоторая рыхлость всё ещё есть. Не впечатляет.

Уровень оптимизации 2. Объекты пропали. Память больше не задействована, вместо нее работают 32 регистра процессора. Так держать!

Уровень оптимизации 3. Загрузка вычисленного значения в регистр как константы. Всё. Объём кода - 8 байт, или две инструкции (две, потому что загрузка константы на этой архитектуре идёт по полуслову).

Домухлевался. Один-ноль в пользу компилятора!

Пользователи, пока что, не говорили Спасибо!

Спасибо!
 (Голосов: 1)


Комментарии - 0 :: Главная Страница

Раздача ICQ

Извините, но на этой странице запрещено автоматическое получение номера ICQ.

Сообщить Администратору О Ошибке

Информация

Посетители, находящиеся в группе Гости, не могут оставлять Комментарии в данной новости...

Сообщить Администратору О Ошибке



Students :: 1999-2008 (Все Права неЗащищены)
При использовании материалов сайта ссылка на stud.net.ua необязательна, но крайне желательна! :)