LINUX.ORG.RU

История изменений

Исправление www_linux_org_ru, (текущая версия) :

насчет тормозов на конкретном примере add ax, [bx]

варианты:

1. компилятор знает, что [bx] сейчас в L1 скажем — значит, может сшедулить (куски этой) инструкции оптимально

2. компилятор знает, что [bx] сейчас в кэшах с *определенной* вероятностью — почти п.1

3. редкий случай, когда компилятор не знает, где будет [bx] — на крайняк тут можно запустить тупой железный алгоритм (пусть даже и упрощенный по сравнению с тем, что у интела в х86); вообще афайк эти железные алгоритмы это просто «когда операнд будет готов, тогда и поставим на очередь, а пока исполняем то, что можно reorder-нуть с этой инструкцией, или вообще ждем»

короче, тут вообще ниче испортить невозможно (можно ли сильно улучшить и сколько надо вложить в компилятор для этого — это другой вопрос)

Исходная версия www_linux_org_ru, :

насчет тормозов на конкретном примере add ax, [bx]

варианты:

1. компилятор знает, что [bx] сейчас в L1 скажем — значит, может сшедулить (куски этой) инструкции оптимально

2. компилятор знает, что [bx] сейчас в кэшах с *определенной* вероятностью — почти п.1

3. редкий случай, когда компилятор не знает, где будет [bx] — на крайняк тут можно запустить тупой железный алгоритм (пусть даже и упрощенный по сравнению с тем, что у интела в х86); вообще афайк эти железные алгоритмы это просто «когда операнд будет готов, тогда и поставим на очередь, а пока исполняем то, что можно reorder-нуть с этой инструкцией, или вообще ждем»

короче, тут вообще ниче испортить невозможно