xcrun -sdk iphoneos
指定平臺 -arch arm64
指定架構(gòu)
xcrun -sdk iphoneos clang -arch arm64 -rewrite-objc main.m -o main.cpp
clang -x objective-c -rewrite-objc -isysroot /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk ViewController.m
查看LLVM的中間代碼IR
(Intermediate Representation)
clang -emit-llvm -S main.m
中間代碼語法介紹
@ - 全局變量
% - 局部變量
alloca - 在當前執(zhí)行的函數(shù)的堆棧幀中分配內(nèi)存俭正,當該函數(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 - 代碼標簽
call - 調(diào)用函數(shù)