Cのほうの差はマシン語があるかないかでした・・
(1)==なら代入は3つのマシン語 cmpl $500000001, %ebx jne .L9 movl 28(%esp), %edx (2)>=なら代入は1つのマシン語 cmovge 28(%esp), %esi jmp命令>演算命令なのかな。 奥が深い・・
【2011/12/10 22:06】| | nwpfh #29ef1c77e8 [ 編集 ]
|
そこで論理反転のコードを書いてみて最適化のオプションを変えてみるというのはいかがでしょうか♪
同じコードが生成されるかどうかなんて。 RTLからの最適化は如何に? ( ̄- ̄;←自分の興味を他人にふるヤツ |
こういうの??反転したけど
アセンブラの論理反転の検証するほど いいマシンではないっ(なぜか威張る 秒なんて似た感じ。 --- bench.s 2011-12-10 22:34:52.022305568 +0900 +++ gtbench.s 2011-12-10 21:39:36.441864497 +0900 @@ -45,7 +45,7 @@ .cfi_offset 7, -12 pushl %esi pushl %ebx - movl $999999999, %ebx + xorl %ebx, %ebx .cfi_offset 3, -20 .cfi_offset 6, -16 andl $-16, %esp @@ -62,14 +62,14 @@ .p2align 4,,7 .p2align 3 .L5: - cmpl $499999999, %ebx - cmovle 28(%esp), %esi - subl $1, %ebx + cmpl $500000000, %ebx + cmovge 28(%esp), %esi + addl $1, %ebx movl (%esi), %eax movl %esi, (%esp) call *(%eax) addl %eax, %edi - cmpl $-1, %ebx + cmpl $1000000000, %ebx jne .L5 movl %edi, 8(%esp) movl $.LC0, 4(%esp)
【2011/12/10 22:42】| | nwpfh #29ef1c77e8 [ 編集 ]
|
|
トラックバックURL
|
忍者ブログ [PR] |