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  

 

这段汇编代码类似于下面这段代码, (实际上 三元运算符 ? : 还是条件判断,这里只是用来表达 ‘不用跳转’这个意思):

 

 

优化之后,少了条件判断,程序无须跳转,这样流水线不用被清空,程序效率就提高了.

 

 

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