Objective-C在變?yōu)闄C(jī)器代碼之前,會被LLVM編譯器轉(zhuǎn)換為中間代碼
OC -> 中間代碼(.ll) -> 匯編、機(jī)器代碼
可以使用以下命令行指令生成中間代碼
clang -emit-llvm -S main.m
語法簡介
- @ - 全局變量
- % - 局部變量
- alloca - 在當(dāng)前執(zhí)行的函數(shù)的堆棧幀中分配內(nèi)存,當(dāng)該函數(shù)返回到其調(diào)用者時,將自動釋放內(nèi)存
- i32 - 32位4字節(jié)的整數(shù)
- align - 對齊
- load - 讀出,store寫入
- icmp - 兩個整數(shù)值比較,返回布爾值
- br - 選擇分支,根據(jù)條件來轉(zhuǎn)向label,不根據(jù)條件跳轉(zhuǎn)的話類型goto
- label - 代碼標(biāo)簽
- call - 調(diào)用函數(shù)
具體語法可以參考官方文檔:https://llvm.org/docs/LangRef.html