Programming 版 (精华区)

发信人: SwordLea (飞刀李), 信区: Programming
标  题: [合集] 关于编译器优化的讨论(续)
发信站: 哈工大紫丁香 (Wed Jun 23 19:24:38 2004), 站内

────────────────────────────────────────
  iamxiaohan (潇寒·System Programmer) 于  (Tue Jun 22 11:46:01 2004)  说道:

基准测试程序
int global = 0 ;
int test()
{
        int a = 0 , b = 3 , c = 4 ;
        for( int i = 0 ; i < b + c ; ++i ){
                ++a ;
                ++global ;
        }
        return global ;
}

int main()
{
  __asm{
    mov edx , edx
    nop
  } ;  
  return test() ;


目的:测试对于函数中无效变量的优化能力,test()函数中的a是无用变量,优秀的编译
器应当优化掉它。

vc的测试结果:
//-----------------------------------------------main()--------------------
:00401000 8BD2                    mov edx, edx
:00401002 90                      nop
:00401003 A1C0724000              mov eax, dword ptr [004072C0]
:00401008 83C007                  add eax, 00000007 // !!!!!!!!! 恐怖 !!!!
:0040100B A3C0724000              mov dword ptr [004072C0], eax
:00401010 C3                      ret
//------------------------------------------------main() finished----------


────────────────────────────────────────
  prime (悠悠我思)                 于  (Tue Jun 22 15:52:54 2004)  说道:

这带来得副作用应该是ms编译速度变慢

【 在 iamxiaohan (潇寒·System Programmer) 的大作中提到: 】
: 基准测试程序
: int global = 0 ;
: int test()
: {
:         int a = 0 , b = 3 , c = 4 ;
:         for( int i = 0 ; i < b + c ; ++i ){
:                 ++a ;
:                 ++global ;
: ...................





────────────────────────────────────────
  iamxiaohan (潇寒·System Programmer) 于  (Tue Jun 22 15:54:07 2004)  说道:

nod
但一般来说,编译器应当把执行速度而不是编译速度放在第一位,
因为,编译一次,但执行也许是无数次~~~

【 在 prime (悠悠我思) 的大作中提到: 】
: 这带来得副作用应该是ms编译速度变慢




※ 修改:·SwordLea 于 Jun 23 19:24:51 修改本文·[FROM: 202.118.246.241]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:5.089毫秒