Каково состояние компиляторов, которые генерируют сборку X86 сегодня? - PullRequest
1 голос
/ 09 сентября 2010

Всякий раз, когда я общаюсь с людьми, работающими с предварительным исполнением в реальном времени, они, как правило, указывают на то, что сгенерированные инструкции по сборке X86 не столь эффективны.

С такими вещами, как VMX, я должен спросить, насколько вероятно, что коммерческие компиляторы C ++ будут использовать эти наборы команд? У меня такое ощущение, что поставщики компиляторов не выпускают какую-то особенную сборку или не стремятся поддерживать свои компиляторы в актуальном состоянии.

И вообще, что представляет собой хорошая сборка X86?

Ответы [ 2 ]

2 голосов
/ 09 сентября 2010

Парни, с которыми вы разговариваете, должны быть сумасшедшими.Большинство современных компиляторов генерируют очень эффективный код, который использует таблицы предсказания ветвления и конвейерного останова и множество методов оптимизации.Как правило, они генерируют лучший код, чем все, кроме самых умных программистов.Существуют странные исключения, поэтому хорошо иметь __asm ​​и встроенные функции в режиме ожидания, но ситуации, в которых они оказываются необходимыми (и полезными), немногочисленны и далеки от этих дней.

1 голос
/ 09 сентября 2010

«Хорошая сборка» означает, что скомпилированная программа оптимально использует ресурсы.Есть мудрость: «Пиши код ясно и позволь компилятору делать оптимизации».Для того, чтобы эта мудрость оставалась верной, компиляторы идут в значительной степени на создание действительно быстрого кода.

Из моего опыта Visual C ++ часто производит удивительно удобный код для сложной конструкции C ++, поэтому идея о том, что поставщики компиляторов не заботятсяЭмиссон код не так верно.

...