1
bdbai 2015-06-09 13:44:38 +08:00 via iPhone
以及CLR
|
2
ether 2015-06-09 16:31:00 +08:00
swift那边不清楚。Clang那边得到的llvm bitcode (其实就是llvm IR的二进制形式)是平台相关的。首先clang那边就生成了平台相关的abi,其次llvm ir里面的Data Layout就包含了目标平台的东西。而且llvm 的那些优化会根据data layout做平台相关优化。
llvm IR 更多是一种用来represent我们程序,供llvm不同的transformation和analysis pass共享的一种编译器内部数据结构。 |
3
mozartgho 2015-06-09 16:35:02 +08:00
LLVM本来就是一个编译器后端,用来把中间代码编译成机器码。它的中间代码是语言无关的,和JVM有根本的不同。你说的bitcode应该是指LLVM的中间代码。另外请贴出完整的文章链接。不知道文章是什么意思,是说以后ObjC和Swift都编译成LLVM中间码吗?
|
4
typcn 2015-06-09 16:46:12 +08:00
JVM = SHITVIRUALMACHINE
LLVM = COMPLIER BACKEND |
5
egen 2015-06-09 16:49:06 +08:00
|
6
forcecharlie 2015-06-10 10:18:36 +08:00
@ether 最终还是会用llc 编译成机器码的。很jvm是不同的
|