小编gus*_*avo的帖子

为什么优化后消失了?

int suma(int* array, int len)
{
    asm("    xor %eax, %eax           # resultado = 0   \n"
        "    xor %edx, %edx           # i = 0           \n"
        "1:  add (%rdi,%rdx,4), %eax  # res += array[i] \n"
        "    inc %edx                 # ++i             \n"
        "    cmp %edx,%esi            # i < len?        \n"
        "    jne 1b                   # repetir         \n"
//      "    ret                                        \n"
       );
}

int main()
{
    int v[100];
    return suma(v, 100);
}
Run Code Online (Sandbox Code Playgroud)

为什么gcc会retsuma()on 的末尾插入-O0,但我必须自己添加on -O3

来自gcc …

c assembly gcc inline-assembly compiler-optimization

4
推荐指数
1
解决办法
783
查看次数