Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
eXPonent
99 / 52 / 27
Регистрация: 21.05.2012
Сообщений: 1,170
1

Насколько хорошо компилятор производит оптимизацию часто вызываемых функций?

21.05.2017, 17:41. Просмотров 264. Ответов 1

Например есть строчки из кода
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
unsigned long Ly_char4(unsigned char S[4])
{
    unsigned long Ly(S[0] + 1013904223);
    Ly = Ly * 1664525 + S[1] + 1013904223;
    Ly = Ly * 1664525 + S[2] + 1013904223;
    return Ly * 1664525 + S[3] + 1013904223;;
}
 
unsigned long Rs_char4(unsigned char S[4])
{
    unsigned long Rs = 0;
    unsigned long magic = 63689;
    Rs = Rs * magic + S[0], magic *= 378551;
    Rs = Rs * magic + S[1], magic *= 378551;
    Rs = Rs * magic + S[2], magic *= 378551;
    return Rs * magic + S[3];
}
Копилятор сможет сделать упрощение функции до вызова только return?
или мне нужно самому это делать, убирая лишние переменные и вычисления

как это я сделал с функцией:
C++
1
2
3
4
unsigned long s4_char4(unsigned char S[4])
{
    return S[0] + (S[1] << 8) + (S[2] << 16) + (S[3] << 24);    
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2017, 17:41
Ответы с готовыми решениями:

Перехват и подмена вызываемых функций
Здравствуйте. Нужно подменить вызов таких функций как open(), lstat(), stat(), read(), write(),...

Инлайн функций вызываемых через указатель на функцию
Есть контейнер функций #include &lt;iostream&gt; class container { using func = void(*)(); ...

Программа для определения функций WinAPI, вызываемых программой с GUI
Хотел бы узнать, какие функции Windows API вызывает программа с GUI. Какие программы позволяют это...

Насколько хорошо вы знаете WordPress?
Привет! Я уже писала про встречи, на которых обсуждаются проблемы, возникающие при работе с...

Насколько хорошо Google индексирует сайты на Ucoz?
Насколько хорошо Google индексирует сайты на Ucoz? Например сайт сделать на английском языке -...

1
MrGluck
Форумчанин
Эксперт CЭксперт С++
8132 / 4984 / 1436
Регистрация: 29.11.2010
Сообщений: 13,456
22.05.2017, 15:23 2
Открыть ASM выхлоп и посмотреть что делает конкретный компилятор с конкретными ключами оптимизации в конкретном контексте вызова. Никто кроме вас сказать явно ничего не сможет. Никаких обязательств стандарт не накладывает.
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2017, 15:23

Подскажите, насколько хорошо игры запускаются с болванок?
Собираюсь купить xbox 360E для запуска пиратских игр. Существуют приставки с винтом 4GB и 500GB -...

Насколько хорошо надо знать SQL, чтобы программировать БД на C#?
Сабж. Или достаточно только реляционную модель представлять? Хотя это я не думаю. Имеется ввиду,...

Насколько хорошо проработан вопрос поиска пересечения bspline кривых
Насколько хорошо проработан вопрос поиска пересечения bspline кривых? существуют ли более-менее...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru