冗長なコードの削除
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/08/16 15:31 UTC 版)
「のぞき穴的最適化」の記事における「冗長なコードの削除」の解説
次に挙げる例では冗長なロード・ストア命令を削除する。 a = b + c; d = a + e; 上のコードを素直に実装すると以下のようになる。 MOV b, R0 # bをレジスタにコピーADD c, R0 # cをレジスタに加算。したがってレジスタの値はb+cになるMOV R0, a # レジスタの値をaにコピーMOV a, R0 # aをレジスタにコピーADD e, R0 # eをレジスタに加算。したがってレジスタの値はa+e [(b+c)+e]になるMOV R0, d # レジスタの値をdにコピー しかしこのコードは以下のように最適化できる。 MOV b, R0 # bをレジスタにコピーADD c, R0 # cをレジスタに加算。したがってレジスタの値はb+cになる (a)MOV R0, a # レジスタの値をaにコピーADD e, R0 # eをレジスタに加算。したがってレジスタの値はb+c+e [(a)+e]になるMOV R0, d # レジスタの値をdにコピー
※この「冗長なコードの削除」の解説は、「のぞき穴的最適化」の解説の一部です。
「冗長なコードの削除」を含む「のぞき穴的最適化」の記事については、「のぞき穴的最適化」の概要を参照ください。
- 冗長なコードの削除のページへのリンク