Информация об изменениях

Сообщение Re: Как ассемблер решает задачу оптимизации? от 30.11.2021 11:17

Изменено 30.11.2021 11:30 ononim

Re: Как ассемблер решает задачу оптимизации?
Не знаю как такие вещи делает сферический х86 ассемблер в вакууме, но например арм ассембер в подобных задачах не заморачивается особенной оптимизацией. Уточню — в арм ассемблере есть такая директива .ltorg которая говорит 'вот сюда можно класть константы' и есть некоторые инструкции, которые туда откладывают свои константы. Так вот если пихать эти директивы везде — компилятор просто будет пихать константу в ближайший .ltorg не глядя на то, что такая же константа уже присутствует в каком то другом .ltorg который находится в достижимой области.
Поланаю х86 ассемблер тоже не особо заморачивается поиском комбинации, дающей минимальное количество длинных джампов.
Re: Как ассемблер решает задачу оптимизации?
Не знаю как такие вещи делает сферический х86 ассемблер в вакууме, но например арм ассембер в подобных задачах не заморачивается особенной оптимизацией. Уточню — в арм ассемблере есть такая директива .ltorg которая говорит 'вот сюда можно класть константы' и есть некоторые инструкции, которые туда откладывают свои константы. Так вот если пихать эти директивы везде — компилятор просто будет пихать константу в ближайший .ltorg не глядя на то, что такая же константа уже присутствует в каком то другом .ltorg который находится в достижимой области.
Поланаю х86 ассемблер тоже не особо заморачивается поиском комбинации, дающей минимальное количество длинных джампов. Кстати такая комбинация не факт что будет оптимальна с точки зрения перфоманса, если уж так крепко заморачиваться.