Ваш вопрос принципиально не отличается от Можно ли перевести язык ассемблера на LLVM IR, оптимизировать его и затем перекомпилировать в другую архитектуру? .
Исходные и двоичные исполняемые / объектные файлы asm в основном эквивалентны этой проблеме. Вы все еще пытаетесь декомпилировать в LLVM-IR. Это сложно, и я не знаю, существует ли декомпилятор.
Кажется, Clang игнорирует флаг "-emit-llvm".
Нет, это просто не повлияло ни на один из этапов операции, которую вы просили сделать.
Вы попросили ваш компилятор скомпилировать в .o
, так оно и было.
Если бы вход был .c
, а выход .s
, он мог бы излучать LLVM-IR, но в этом случае LLVM-IR не был частью процесса сборки .s
до .o
.
Таким образом, LLVM-IR-представление программы никогда не существовало во время работы clang
, поэтому излучать было нечего.