![]() | 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是不同的 |