如何解决单声道LLVM和LLVM-IR
我正在玩Mono LLVM(http://www.mono-project.com/Mono:Runtime:Documentation:LLVM),似乎他们在这里将LLVM用作JIT,而不是真正用作代码生成器。但是根据文档,它们在生成本机代码之前先经过LLVM-IR: 首先,从IL代码生成正常的单JIT IR IR转换为SSA形式 IR转换为LLVM IR LLVM IR由LLVM编译成本地代码 因此,我想知道是否有任何方法可以捕获此第三阶段并使用IR来馈送我的LLVM后端。这样一来,我就可以免费获得C#到LLVM-IR前端。 谢谢你的帮助!解决方法
Mono的LLVM支持通过尝试从适当的``1''中加载``0''来工作,例如在OSX上,
/usr/bin/mono
将加载/Library/Frameworks/Mono.framework/Libraries/libmono-llvm.dylib
。请参阅mono / mini / mini-llvm.h中的LLVM加载代码,特别是mono_llvm_load()和try_llvm_load()。
因此,如果您将LLVM后端命名为mono-llvm
,则在将mono启动为mono --llvm
时将使用它。就是说,ѭ6似乎需要从mono-llvm
库中进行特定的导出,例如mono_llvm_init
和mono_llvm_cleanup
,因此我确定您的LLVM后端需要做一些额外的工作才能允许Mono使用它,我\'我不确定在哪里可以找到(不是在Mono \的源代码中对“ LLVM \”进行ѭ10ping操作...)。
这也意味着LLVM后端可能无法从预构建的mono中重用;也就是说,您可能需要构建自己的Mono才能使用LLVM后端,因为prebuild mono将提供可能无法插入的mono-llvm
后端。 (我不知道LLVM后端的可插拔性。)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。