The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Дэниэл Бернштейн выступил с инициативой создания Си-компилят..."
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
. "Дэниэл Бернштейн выступил с инициативой создания Си-компилят..." +/
Сообщение от Аноним (-), 22-Дек-15, 19:09 
>[оверквотинг удален]
>> Любой современный. Dead store elimination считается безопасной оптимизацией и применяется
>> всеми распространёнными компиляторами C даже на нижнем уровне оптимизации.
> Удаление присваивания возможно _только_ в случае, если компилятор может _доказать_, что
> оно ни на что не влияло. Например, присваивание локальной переменной в
> функции, после которого присвоенное значение никуда более не попадало. Включая указатели
> на эту переменную.
> Практически ни один компилятор не удалит memset во внешнем или глобальном буфере,
> например, потому что результат этой операции может быть виден в другой
> части программы. Чтобы доказать обратное, всю программу надо собирать с LTO
> и знать, что используется стандартный memset, а не переопределенная реализация.

Чтобы доказать прямое, программу тоже надо собирать с LTO. Но, как её не собирай, компилятор не занимается доказательствами.

Типичный шаблон работы с буфером, предназначенным для ценных данных:

(1) Выделение страницы памяти в локальном контексте. mlock(), mprotect().
(2) Получение ценных данных, их запись в буфер, выделенный в (1).
(3) Обработка ценных данных.
(4) memset(). goto (2)

И в этом цикле memset() с точки зрения компилятора — dead store.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Дэниэл Бернштейн выступил с инициативой создания Си-компилят..., opennews, 22-Дек-15, 13:48  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру