<コンパイル・オプション / 最適化オプション>
alias=noansiです。optimize=maxの場合はalias=ansiとなります。
alias=ansiを指定した場合、ANSI規格に基づき、ポインタ指示先の型を考慮した最適化を行います。一般には、alias=noansi を指定した場合よりもオブジェクト性能が向上しますが、alias=ansi と alias=noansiとで実行結果が異なる場合があります。 |
_func: MOV.L #_n,R4 MOV.L #1,[R4] ; n = 1; MOV.W #2,[R1] ; *ps = 2; MOV.L [R4],R5 ; (A) n を再ロードする MOV.L #_x,R4 MOV.L R5,[R4] RTS |
<alias=ansi 指定時> |
_func: MOV.L #_n,R4 MOV.L #1,[R4] ; n = 1; MOV.W #2,[R1] ; *ps = 2; MOV.L #_x,R4 MOV.L #1,[R4] ; (B) n = 1 で代入に使用した値を再利用する RTS |
optimize=0 または optimize=1 が有効な場合にaliasオプションを選択すると、alias=ansiの選択は無視され、常にalias=noansiが選択されたものとしてコード生成します。 |