Поиск:

Ответ в темуСоздание новой темы Создание опроса
> gcc builtin functions 
:(
    Опции темы
ni1
Дата 16.7.2014, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 30.6.2014

Репутация: нет
Всего: нет



Код

        for ( i = 0; i < len4; i++)
            p1[i] = p4[i];


Как запретить gcc оптимизировать этот код в memcpy(p1, p4, len4), оставив strlen memset и другие ?


PM MAIL   Вверх
leniviy
Дата 16.7.2014, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 552
Регистрация: 8.2.2003
Где: Спб

Репутация: нет
Всего: 5



Вынесите его в отдельный модуль и скомпилируйте без оптимизации. Кстати, что результат другой?
PM MAIL   Вверх
ni1
Дата 16.7.2014, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 30.6.2014

Репутация: нет
Всего: нет



результат правильный. Может есть способ сделать memcpy инлайн? В ms compiler для этого #pragma intrinsic() и #pragma function()

Это сообщение отредактировал(а) ni1 - 16.7.2014, 21:03
PM MAIL   Вверх
leniviy
Дата 16.7.2014, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 552
Регистрация: 8.2.2003
Где: Спб

Репутация: нет
Всего: 5



ключ -fno-builtin-memcpy должен помочь.

Хотя не, не помогает. -fno-builtin убирает вызов memcpy, но генерит большой код. -fno-tree-loop-distribute-patterns и -ffreestanding дают похожий эффект

Это сообщение отредактировал(а) leniviy - 16.7.2014, 22:54
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | GNU toolchain | Следующая тема »


 




[ Время генерации скрипта: 0.1300 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.