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

Добрый верчер, а стоит ли использовать lea для вычислений произвольных

значений, как замена add/imul?

28 ответов

47 просмотров

Нужно.

strewg- Автор вопроса
КТ315
Нужно.

а работает ли быстрее, и короче ли выходит по размерам?

КТ315
Быстрее.

сложение не факт, а умножение только на ряд маленьких констант

КТ315
Сложение тоже быстрее.

если бы это было так, то компиляторы бы совали её везде подряд, но увы это не так

disba1ancer
если бы это было так, то компиляторы бы совали её ...

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

КТ315
Потому что они не умеют оптимизировать максимально...

возможно, но инструкция lea как раз загрузит этот блок и следующие несколько инструкций придётся использовать обычные, что компиляторы обычно и делают

disba1ancer
возможно, но инструкция lea как раз загрузит этот ...

Ты забываешь, что на современных процессорах этих блоков не 1, и даже не 2. Конкретно ALU и AGU могут достигать даже 8. Так что параллельно 8 независимых LEA процессор за такт точно смогёт выполнить)

КТ315
Ты забываешь, что на современных процессорах этих ...

ну 8 за такт это не совсем правда, но да, примерно так, в любом случае использовать только одно, не используя другое, глупо

disba1ancer
ну 8 за такт это не совсем правда, но да, примерно...

Не, так я же не говорю, что только lea надо. Да и это невозможно, lea достаточно ограниченная инструкция. Но если возможно - надо использовать. А вот про умножение - его брезгуют использовать, зачастую могут использовать sal/sar.

КТ315
Не, так я же не говорю, что только lea надо. Да и ...

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

КТ315
Не, так я же не говорю, что только lea надо. Да и ...

чего действительно стоит избегать, так это деления, оно ужасно медленное

disba1ancer
что касается умножения, то его надо использовать, ...

Ты же компилятор в пример приводил, вот я и говорю про них - они постоянно только sar/sal и используют.

КТ315
На любой.

приведи конкретный пример

КТ315
screenshot

поставь 22

disba1ancer
поставь 22

Зачем? Он на каждом случае будет разные варианты использовать. Ты попросил пример с sal - я показал. На числа типа 12 он будет его постоянно тыкать. На меньше - будет lea. imul он брезгует использовать.

КТ315
Зачем? Он на каждом случае будет разные варианты и...

так ты сказал, что ставит sal на любой код, оказалось это таки не так, хотя действительно лучше во всех случаях умножать

disba1ancer
так ты сказал, что ставит sal на любой код, оказал...

Ты сказал, что он sal вообще не использует, оказалось это не так.

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

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

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Привет всем. Подскажите где можно посмотреть, какая версия электрон, поддерживает версии windows? Некий changelog. Мне бы желательно, поддержку 7,8,10... latest, как понимаю и...
Anonym Squad
21
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Не ну фпц - это уже просто троллинг какой-то. Элементарный код нельзя собрать. ЧЯДНТ? program Project1; {$mode delphi} uses SysUtils, Classes, Generics.Collections; var...
Peter
4
а где есть mysql cloud кроме яндекс-клауд?
Oleg Nosov
13
Есть ли смысл устраиваться на 1с ? Даст это плюс в дальнейшем трудоустройстве на php? Просто у меня в городе вакансий на пхп нету. Или лучше удаленно искать. Опыта работы нету...
Azamat
14
hi im a cs student. i need some advice from people who have enough experience in Embedded Software. I need to know whether this profession is suitable for me. I have watched s...
Sahand 🏔️
8
А кто-нибудь запихивал сборку перловых модулей/образов с perl приложениями в окружения без интернета (в специализированном CI/CD)? У меня сейчас есть ряд cpanfile, которые н...
Andrey Smirnov / 𝓪𝓵𝓵𝓽𝓮𝓻 /
14
Кстати а покупал кто-нибудь ЭЦП для подписи кода? А то у меня на некоторых компах и ОС иногда SmartScreen винды программу за вирус принимал. Если купить такую ЭЦП и подписыват...
Дмитрий Завгородний
15
Карта сайта