首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mono LLVM和LLVM-IR

Mono LLVM和LLVM-IR
EN

Stack Overflow用户
提问于 2011-06-15 06:49:20
回答 1查看 2.7K关注 0票数 14

我正在使用Mono (http://www.mono-project.com/Mono:Runtime:Documentation:LLVM),看起来他们在这里使用LLVM作为JIT,而不是作为代码生成器。但是根据文档,在生成本机代码之前,它们要经过LLVM:

  1. 首先,从IL代码生成普通的mono JIT IR。
  2. 将红外变换为SSA形式。
  3. 将IR转换为LLVM IR。
  4. LLVM IR由LLVM编译成本机代码。

所以,我想知道是否有任何方法来捕捉这个第三阶段,并使用IR为我的LLVM后端提供。这将允许我获得C#到LLVM前端免费。

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

发布于 2011-12-25 19:35:25

Mono的LLVM支持通过尝试从适当的libmono-llvm.so加载$libdir来工作,例如在OSX上,/usr/bin/mono将加载/Library/Frameworks/Mono.framework/Libraries/libmono-llvm.dylib。请参阅mono/mini/Min-llvm.h中的LLVM加载代码,特别是负载()负载()

因此,如果您将LLVM后端mono-llvm命名为LLVM后端mono-llvm,那么当您将mono作为mono --llvm启动时,将使用它。尽管如此,mono_llvm_load()似乎需要来自mono-llvm库的特定导出,比如mono_llvm_initmono_llvm_cleanup,所以我确信您的LLVM后端需要做一些额外的工作,以便允许Mono使用它,而且我也不确定在哪里可以找到它(除了在Mono的源代码中为"LLVM“进行grepping之外)。

这也意味着LLVM后端可能不能从预先构建的mono中重用;也就是说,为了使用您的LLVM后端,您可能需要构建自己的mono,因为预构建mono将提供一个可能不可插入的mono-llvm后端。(我不知道LLVM后端的可插入性和不可插拔性。)

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6354077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档