У меня есть следующий трехадресный код, где n — некоторая внешняя константа:
x = 0
i = 0
L: t1 = i * 4
t2 = a[t1]
t3 = i * 4
t4 = b[t3]
t5 = t2 * t4
x = x + t5
i = i + 1
if i < n goto L
Я хотел бы оптимизировать его настолько, насколько это возможно. Вот что я придумал до сих пор:
x = 0
i = 0
t1 = -4
L: t1 = t1+4
t5 = a[t1] * b[t1]
x = x + t5
i = i + 1
if i < n goto L
Кто-нибудь может предложить исправления/дополнительные оптимизации?
i < n
становитсяi == 0
, что скатывается в сложение) и адресуя массивы видаend[4 * i]
. Это интересная оптимизация IMO, но она не зависит от цели. - person harold   schedule 16.04.2013