一 : 指令合并概述
指令折疊的意思,原本一個語句會產生多條指令,通過折疊,可以刪除一些中間指令,減少指令數量,并且能夠減少寄存器占用。提高執行效率。
舉一個例子:
MUL A, B, 4 ; A = B * 4MAD D, A, 2, F ; D = A * 2 + F
MAD G, A, 3, I ; G = A * 3 + I
觀察上面的指令,拆解后可得到下面的指令:
MAD D, A, 2, F = (B * 4) * 2 + F = B * (4 * 2) + FMAD G, A, 3, I = (B * 4) * 3 + I = B * (4 * 3) + I
也就是說 MUL A的結果可以直接合并到MAD的立即數里面。通過指令折疊后,可以得到下面指令:
MAD D, B, 8, F ; D = B * 8 + F
MAD G, B, 12, I ; G = B * 12 + I
優化前后對比: