LINUX.ORG.RU

memory barriers для _всяческих_ компиляторов и архитектур

 , , , ,


0

1

Комрады, мне вот приспичило memory barriers для кучи компиляторов, в том числе старых и тех что я даже не знаю где взять.

Посмотрите глазками, может что подскажите https://gist.github.com/leo-yuriev/ba186a6bf5cf3a27bae7.

Ну и share it по-возможности.


Для всяческих архитектур - из ядра, потом адаптировать под конкретный синтаксис используемых недокомпиляторов.

Ну и в C11 есть стандартные барьеры.

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

Для всяческих архитектур - из ядра, потом адаптировать под конкретный синтаксис используемых недокомпиляторов.

Тут начинаются проблемы, ибо нужен GCC для __asm, либо «тот самый компилятор» чтоб проверить собираемость. Если без проверки то проще #error.

А при наличии GCC проблем нет: __asm __volatile(::::«memory») и __sync_synchronize().

Ну и ядро способны собрать всего несколько компиляторов, если не ошибаюсь: gcc, clang, icc (intel), ну еще форки gcc. Со всем нет проблем...

Ну и в C11 есть стандартные барьеры.

В С++11 есть, а в С11 - я или туплю или не нашел (не путать барьеры с atomic types). Проблема в другом, С11 не поддерживается «чуть менее чем всеми» недокомпиляторами.

ly
() автор топика
Ответ на: комментарий от placement_new

Я просто написал btw к этому

Ок, теперь понял. Спасибо.

ly
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.