170 похожих чатов

У меня вопрос, а зачем likely/unlikely атрибуты сделали такими неудобными,

относительно __builtin_expect?
Это специально чтобы не юзали?
Не, я понимаю, компилятору проще если помечают пути, но людям же легче оценить результат cmp, а не вероятность пути(которые ещё и инлайниться могут)

У меня вопрос возник в связи с тем что автозамена не сказать, что работает

Например, допустим у меня было выражение

if (builtin_based_likely(kek)) {
if (builtin_based_unlikely(kek2)) {
...
}
...
}

кажется правильно его будет переписать так:

if (kek) {
if (kek2) [[unlikely]] {
...
}
[[likely]]...
}

а не так:

if (kek) [[likely]] {
if (kek2) [[unlikely]] {
...
}
...
}

3 ответов

13 просмотров

Почему? (Идея понятна, речь о результатах, которые выдают реальные компиляторы)

Arelav- Автор вопроса
Dmitriy [Отпуск]
Почему? (Идея понятна, речь о результатах, которы...

Результаты зависят от конкретного кода, для простых примеров я не знаю примера с разницей Просто проблема что эквивалент builtin_expect в принципе пишется с помощью новых атрибутов, но ведь оно не предлагается так делать #define MY_BUILTIN_EXPECT_1(cond) [&] { if (!!(cond)) [[likely]] { return true; } // automatically unlikely return false; }() Не уверен насколько компиляторы хорошо это компилят, но суть такая В общем я не понимаю мотивацию тащить более сложное для правильного использования решение

Arelav
Результаты зависят от конкретного кода, для просты...

по моему всё максимально просто и понятно, [[likely]] если условие likely да и всё...

Похожие вопросы

Обсуждают сегодня

generic procedure function test<T>(param: T); type case T of longint: NewT = word; longword: NewT = byte; end; var v1: NewT; Как это можно сделать? Чтобы у меня...
notme
21
Интересно, нет ли какого-то способа получить из dll не адрес самой метки, а адрес со смещением?
The Bird of Hermes
54
Делал задачу вот такую https://stepik.org/lesson/4985/step/9?unit=1083 получилось такое https://play.haskell.org/saved/ipKrepqe оно работает, тестов много не писал, но работае...
Fedor
22
Хотел уточнить: копирование из одного рекорда в другой однотипный рекорд можно только по полям отдельно или можно чохом, типа Assign?
Ed Doc
9
Похоже опять туплю задача https://stepik.org/lesson/5431/step/8?unit=1132 код и его работа https://play.haskell.org/saved/lmYTShXM на мой взгляд все правильно, и даже избыто...
Fedor
8
что-то я не понимаю, в линуксе отладочную информацию как убрать из бинаря? он что с этой опцией, что без - одного и того же (достаточно большого) размера (да, я про лазарь)
Iluha Companets
13
Hey Does anyone know how can I receive push notifications from Github on my account? The official Github android app doesn't send notifications, and I don't use the email bec...
Jacob
10
Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
58
Как в webstorm включить фичу, чтобы прямо в коде можно было видеть кто редактировал это строчку и в каком коммите?
Антон
8
задача какая - что ты дальше с этой переменно будешь делать? Чем вот так не устраивает? var v1: T;
Александр (Rouse_) Багель
6
Карта сайта