rdsdatasource: Основы llvm
TRANSCRIPT
Ты кто такой? LLVM
• Набор библиотек для реализации компиляторов
• Кучу всяких helper библиотек• Промежуточное представление кода (IR)
для оптимизации Кучу всяких helper библиотек
Objective-C LLVM
Frontend libclang
LLVM Optimizer
X86, ARM Backend
Clang driver
LLVM IRSource Optimised IR Machine code
Objective-C LLVM% clang -ccc-print-phases hello.m
0: input, "hello.m", objective-c
1: preprocessor, {0}, objective-c-cpp-output
2: compiler, {1}, assembler
3: assembler, {2}, object
4: linker, {3}, image
5: bind-arch, "x86_64", {4}, image
Swift Frontend
ParsingSemantic analysis
Clang importerSIL(Swift Intermediate Language)
generation SIL guaranteed transformations
LLVM IR Generation
Ты кто такой? BITCODE
• Также известный как LLVM bitcode file• На самом деле это две вещи в одном• Представляет формат bitstream контейнера• Энкодит LLVM IR в bitstream контейнер