Если вы используете Clang - ответ - да, это возможно:
clang -S -emit-llvm something.c
производит something.ll
, который является IR-файлом LLVM. Следующим шагом будет использование утилиты llc для создания файла сборки:
llc -march=x86 something.ll
должен создать something.s
со сборкой, специфичной для x86.
Однако я бы посоветовал не использовать его для большого проекта (если вы ищете варианты для ускорения компиляции, возможно, у вас есть большой). Причина в том, что в вашем коде или в сторонних разработчиках могут использоваться макросы, которые зависят от платформы. Например:
#ifdef UNIX
...
#else
...
Этап препроцессора является первым, он идет до излучения ИК. Поэтому, если вы создадите сборку для другой платформы, она может быть некорректной.