今天生成X86程序集的编译器状态如何?

时间:2010-09-09 11:55:42

标签: x86-64 compiler-optimization

每当我与那些使用实时性能的人交谈时,他们都会指出生成的X86汇编指令并不那么高效。

随着VMX的出现,我不得不问,商用C ++编译器有多大可能会利用这些指令集?我觉得编译器供应商不会发出特别的花哨组装,或者专注于让编译器保持最新状态。

就此而言,首先构成优秀X86组件的是什么?

2 个答案:

答案 0 :(得分:2)

你正在谈论的那些人必须是表现坚果。大多数现代编译器都会生成非常高效的代码,这些代码利用了分支预测和管道停顿表以及一系列优化技术。它们通常会发出比所有代码更好的代码,但最聪明的程序员可以匹配。有一些古怪的例外,这就是为什么让__asm和内在函数处于待机状态的好处,但是这些日期之间证明必要(和有用)的情况很少见。

答案 1 :(得分:1)

“良好的汇编”意味着编译的程序最佳地利用资源。有一种智慧“以清晰的方式编写代码并让编译器进行优化”。因为这种智慧能够让真正的编译器在很大程度上产生真正快速的代码。

根据我的经验,Visual C ++经常为复杂的C ++构造产生令人惊讶的consice代码,因此编译器供应商不关心代码发射的想法并非如此。