08 2013 档案

编译器为简单分支语句生成的代码质量很高
摘要:编译器对于简单分支的处理,感觉非常高效。比如这段C代码void sign3_c (uint8_t* s0, uint8_t *s1, int8_t *d, int width, int height, int stride) { int i,j; for(j = 0; j c1) v = 1; d[offset + i] = v; } }}其内层循环体编译出来的代码为.L6: movzbl 0(%ebp,%eax), %ecx movzbl (%edi,%eax), %edx ... 阅读全文

posted @ 2013-08-29 21:59 mathlover 阅读(313) 评论(0) 推荐(0)

clip3 操作的内联函数
摘要:其基本C语言的实现为: 1 static inline int clip3(int min, int max, int v) { 2 int ret = v; 3 if (ret max) 6 ret = max; 7 return ret; 8 }这个代码已经无法简化了,而且编译器一般来说也能生成比较优化的代码。针对x86,可以使用内联汇编来指定生成的代码,比如使用gcc的内联: 1 static inline int clip3(int min, int max, int value) { 2 int ret = value; 3 _... 阅读全文

posted @ 2013-08-20 22:17 mathlover 阅读(1460) 评论(0) 推荐(0)

导航