问题标签 [llvm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 在 LLVM 上引导语言
我正在 LLVM 之上引导一个编程语言编译器。目前,我主要为 C 的一个子集编写了一个编译器,该子集是自编译的。完成后,我将引导我的语言远离 C,同时保持自编译。
由于编译器是自编译的,因此我使用的任何 C 功能都必须实现。所以这是一个恒定的平衡:如果我使用了太多的特性,我将不得不实现比我想要的更多,但如果我没有实现足够的特性,那么编写代码就会很困难。
其中一项功能是 LLVM 绑定。在没有 LLVM C 绑定的情况下生成 LLVM 中间表示是很困难的。但是,如果我使用 LLVM 绑定,当我从 C 分支出来时,我必须再次实现它们。
我在这里遇到了一些困难,所以我正在寻找替代解决方案。有任何想法吗?
llvm - 静态和动态仪表的优缺点
有许多静态和动态检测工具。Soot 是 Java 字节码的静态检测工具。Pin 和 Valgrind 是二进制文件的动态检测工具。
静态和动态检测工具的优缺点是什么?我认为静态检测工具在运行时性能方面更好,而动态工具更强大。请比较他们的能力和表现。
另外,使用检测工具与编写 LLVM 通行证有什么区别?
c++ - 如何在 Windows 上使用 GCC 4 构建 LLVM?
我已经能够使用 MinGW GCC 3.4.5 构建 LLVM 2.6(llvm-2.6.tar.gz 包)。我没有正确测试,但它似乎工作。
问题是,我有自己的库,它们不是使用 GCC3 构建的,但在 GCC4 中可以正常工作(模板问题)。我相信 MinGW 的第一个官方 GCC4 版本是 GCC 4.4.0。
编辑
整洁 - “试过这个试过那个”信息中的所有有用信息现在都在答案中。
编辑
这个问题/答案的大部分对于 LLVM 2.7 来说都是多余的 - 标准配置,使例程在 MinGW 中正常工作,没有黑客或变通方法。
lisp - 为什么 llvm 上没有好的方案/lisp?
有 Gambit Scheme、MIT Scheme、PLT Scheme、Chicken Scheme、Bigloo、Larceny、...;然后是所有的口齿不清。
然而,(据我所知)LLVM 上没有一个流行的方案/lisp,尽管 LLVM 提供了很多不错的东西,例如:
- 比 x86 更容易生成代码
- 轻松进行 C FFI 调用...
那么为什么 LLVM 上没有好的方案/lisp 呢?
llvm - 如何使用 ANTLR 和 C 目标生成 LLVM IR
我目前正在尝试使用 ANTLR3 生成 LLVM IR。但问题是,我需要 C 目标(C++ 会更好,但还没有工作,或者是吗?)但是从 C 中我不能调用 LLVM C++ API 来构建 IR。
Terence Parr 的教程使用 Java 和 StringTemplate 库。但据我所知,StringTemplate 库不适用于 C。
有没有人有一些好主意如何做到这一点?:)
谢谢
ruby - 用macrubyc编译的ruby代码可以使用gem吗
MacRuby 0.5 包含一个基于 LLVM 的 ruby 编译器,称为 macrubyc。
有谁知道是否可以从已编译的代码中动态加载 gem?或者编译宝石并将它们链接起来?这是计划好的吗?或者编译后的代码将如何能够使用 gems。
c++ - 为 llvm 编写新前端时尝试/抛出块
llvm-config
放入-fno-exceptions
LDFLAGS 用于链接 llvm 本身。我是否正确地假设这意味着我不能在链接到 llvm 编译器的代码(例如新语言前端)中使用普通的 C++ try/throw 块?我不是在谈论编译器生成的程序,而是编译器本身。我不想干涉 的输出llvm-config
,我敢肯定-fno-exceptions
这是有原因的..
如果我想为与其他 LLVM 代码链接的 LLVM(我正在编写的玩具语言)编写一个新的语言前端,是否有标准的方法来处理前端代码中的异常?
c - GCC 未定义的符号
我最近为Homebrew放弃了 MacPorts ,结果我现在遇到了一些问题 make
。即这个错误:
这三个库似乎没有链接或其他东西。老实说,我是一名 Ruby 开发人员,从来不需要编译任何东西,所以真的不知道去哪里解决这个问题。当我从源代码编译任何东西时就会发生这种情况。
在上面的示例中,这是安装时运行make
时的输出zsh
debugging - 使用 gdb 调试 llvm pass
是否可以使用 gdb 调试 llvm 通行证?我在 llvm 网站上找不到任何文档。
qt - 将 Qt 绑定到 LLVM
将 Qt 绑定到位于 LLVM 之上的语言的最佳方法是什么?
尝试解析 Qt 头文件并从中生成一个到 C 的接口,从 LLVM 调用 C 接口?或者也许尝试让 SWIG 连接 Qt?或者,还有更好的方法?