gcc優化分析

 

查看優化級別大於0時的彙編代碼

gcc -O1 -S test.c

 

  1. foo:   
  2.         pushl   %ebp   
  3.         xorl    %eax, %eax   
  4.         movl    %esp, %ebp   
  5.         cmpl    $9, 8(%ebp)   
  6.         popl    %ebp   
  7.         setg    %al   
  8.         decl    %eax   
  9.         andl    $-100, %eax   
  10.         addl    $200, %eax   
  11.         ret  

 

這段彙編代碼類似於下面這段代碼, (實際上 三元運算符 ? : 還是條件判斷,這裏只是用來表達 ‘不用跳轉’這個意思):

 

 

優化之後,少了條件判斷,程序無須跳轉,這樣流水線不用被清空,程序效率就提高了.

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章