Я изучаю систему LLVM, и я прочитал Документацию по началу работы. Тем не менее, некоторые номенклатуры (и формулировки в примере clang) все еще немного запутывают. Следующие термины и команды являются частью процесса компиляции, и мне было интересно, сможет ли кто-нибудь объяснить им немного лучше для меня:
-
clang -S
vs.clang -c
(Я знаю, что делает-c
, но как отличаются результаты?) * (Изменить) - LLVM Bitcode против LLVM IR (какая разница?)
- .ll файлы против .bc файлов (каковы они, как они отличаются?)
- Код сборки LLVM против исходного кода сборки (есть ли разница?)
На более высоком уровне я понимаю общий процесс компиляции и хорошо отслеживаю свой путь, я просто застрял в некоторых точках, где, например, я ожидаю увидеть "IR", но вместо этого вижу "биткод" "или" сборка LLVM ", которая заставляет меня думать, что я не понимаю их почти так же хорошо, как и я!