问题标签 [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.
haskell - LLVM 与 C-- ;对于 Haskell,LLVM 从根本上怎么可能不比 C 更好——?
objective-c - Objective-C 单例和 LLVM/clang 泄漏警告
我在应用程序的多个位置使用单例模式,并且clang
在分析代码时遇到内存泄漏错误。
我将这些设置用于scan-build
:
scan-build -v -v -v -V -k xcodebuild
我相当确定单例中的代码很好 - 毕竟,它与 Stack Overflow 以及 Apple 文档中引用的代码相同 - 但我想整理内存泄漏警告,所以我的扫描 -构建返回成功。
c++ - LLVM 它是什么以及我如何使用它来跨平台编译
我在这里和那里阅读有关 llvm 的信息,可用于缓解 c++ 中跨平台编译的痛苦,我试图阅读文档,但我不明白如何在现实生活中的开发问题中使用它,有人可以解释一下吗我用简单的话我该如何使用它?
llvm - llvm 代码中出现的 %"alloca point" 行的目的是什么?
我最近一直在看一些由 llvm-gcc 生成的 LLVM 程序集,我注意到一个反复出现的声明,我不确定它的用途。
例如,下面的 C 程序:
当使用“llvm-gcc -emit-llvm -S”编译时,将产生以下代码(不相关部分已删除):
我对该行的目的感兴趣:
似乎没有做任何事情,因为它分配给的变量永远不会再次使用,并且 bitcast 本身毫无意义。我能想到的是,它实际上是作为 nop 插入的,用于以后的代码生成/分析目的,表明代码的有趣部分。
xcode - Xcode 3.2 + LLVM = 调试时没有本地符号
我有一个使用 Xcode 3.2 在 10.6 上构建的 Mac OS X 10.5 项目。当我使用 GCC 4.2 进行调试构建并命中断点时,Xcode 调试器正常显示局部变量信息。如果我选择 LLVM GCC 4.2 或 Clang LLVM,当我遇到断点时,本地符号不可用,如果我尝试打印self或任何其他本地符号,GDB会在当前上下文中显示 No symbol 'self' 。在所有情况下,设置了生成调试信息选项。Debug 配置设置为10.5 SDK, Build active architecture only选项设置。当 GDB 启动时,我可以看到它被配置为 x86_64-apple-darwin。我一定遗漏了一些明显的东西。使用 LLVM 编译器时如何让 GDB 显示本地符号?$(NATIVE_ARCH)
c - LLVM - 链接问题
我正在为 Timber 语言编写 LLVM 代码生成器,当前编译器发出 C 代码。我的问题是我需要从生成的 LLVM 文件中调用 C 函数,例如编译器有一个实时垃圾收集器,我需要调用函数来通知何时在堆上分配新对象。我不知道如何将这些函数与我生成的 LLVM 文件链接起来。
代码生成是通过生成 .ll 文件然后手动编译这些文件来完成的。
我正在尝试从 LLVM 调用外部函数,但我没有运气。在示例中,我发现只调用了“puts”和“printf”等 C 标准函数,但我想调用 >homemade 函数。我被困住了。
compiler-construction - 创建 LLVM 的原因是什么?
LLVM 和常规编译器有什么区别?
它是否更具动态性,因此可用于将通常非常动态的语言(即 Javascript)编译成静态二进制代码?创建一个背后的原则是什么?
我知道编译器的 Dragon Book,但是 LLVM 有这样的东西吗?
编辑:我发现了这个有趣的项目。
objective-c - -forwardInvocation 适用于 Clang - LLVM 但不适用于 GCC
下面的代码实现了一个 NSProxy 子类,它将方法转发到一个 NSNumber 实例。
但是,当调用 [nsproxy floatValue] 时,我在 GCC 4.2 下得到 0.0。
在 LLVM-Clang 下,我得到正确答案 42.0。
知道发生了什么吗?
(顺便说一下,这是在垃圾收集下运行的)