问题标签 [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.

0 投票
4 回答
8615 浏览

haskell - LLVM 与 C-- ;对于 Haskell,LLVM 从根本上怎么可能不比 C 更好——?

我一直对LLVM低到可以对任何系统建模感到兴奋,并认为 Apple 正在采用它。但话又说回来,Apple 并没有特别支持Haskell

而且,有些人认为 Haskell 使用C--会更好:

LLVM'ers 没有解决零开销垃圾收集的问题并不令人惊讶。在不知道数据模型的情况下解决这个问题是计算机科学中的一个悬而未决的问题。

-- LHC 不会使用 LLVM。

0 投票
5 回答
3024 浏览

objective-c - Objective-C 单例和 LLVM/clang 泄漏警告

我在应用程序的多个位置使用单例模式,并且clang在分析代码时遇到内存泄漏错误。

我将这些设置用于scan-build

scan-build -v -v -v -V -k xcodebuild

我相当确定单例中的代码很好 - 毕竟,它与 Stack Overflow 以及 Apple 文档中引用的代码相同 - 但我想整理内存泄漏警告,所以我的扫描 -构建返回成功。

0 投票
5 回答
3255 浏览

c++ - LLVM 它是什么以及我如何使用它来跨平台编译

我在这里和那里阅读有关 llvm 的信息,可用于缓解 c++ 中跨平台编译的痛苦,我试图阅读文档,但我不明白如何在现实生活中的开发问题中使用它,有人可以解释一下吗我用简单的话我该如何使用它?

0 投票
5 回答
16082 浏览

string - 如何在 LLVM 中实现字符串数据类型?

我最近一直在研究LLVM,我发现它是一个非常有趣的架构。但是,通过本教程和参考资料,我看不到任何关于如何实现字符串数据类型的示例。

有很多关于整数、实数和其他数字类型,甚至数组、函数和结构的文档,但 AFAIK 对字符串一无所知。我是否必须向后端添加新的数据类型?有没有办法使用内置数据类型?任何见解将不胜感激。

0 投票
3 回答
36140 浏览

gcc - 通过 makefile 传递 gcc 标志

我正在尝试使用llvm构建通行证,并且我已经完成了 llvm 及其相关组件的构建。但是,当我按照所有步骤构建包含makefile的通行证后运行 make 时,我得到以下信息

制作共享对象时,不能使用针对“本地符号”的重定位 R_X86_64_32;使用 -fPIC 重新编译

在试图通过谷歌搜索错误消息找到修复后,我知道这不是 llvm 特有的。一些解决方案建议我应该在运行配置时使用“--enable-shared”,但这对我的情况没有帮助。现在我想使用 重新构建 llvm fPIC,如错误所示。但是我如何使用makefile来做到这一点?

0 投票
2 回答
1060 浏览

llvm - llvm 代码中出现的 %"alloca point" 行的目的是什么?

我最近一直在看一些由 llvm-gcc 生成的 LLVM 程序集,我注意到一个反复出现的声明,我不确定它的用途。

例如,下面的 C 程序:

当使用“llvm-gcc -emit-llvm -S”编译时,将产生以下代码(不相关部分已删除):

我对该行的目的感兴趣:

似乎没有做任何事情,因为它分配给的变量永远不会再次使用,并且 bitcast 本身毫无意义。我能想到的是,它实际上是作为 nop 插入的,用于以后的代码生成/分析目的,表明代码的有趣部分。

0 投票
5 回答
5523 浏览

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)

0 投票
3 回答
5289 浏览

c - LLVM - 链接问题

我正在为 Timber 语言编写 LLVM 代码生成器,当前编译器发出 C 代码。我的问题是我需要从生成的 LLVM 文件中调用 C 函数,例如编译器有一个实时垃圾收集器,我需要调用函数来通知何时在堆上分配新对象。我不知道如何将这些函数与我生成的 LLVM 文件链接起来。

代码生成是通过生成 .ll 文件然后手动编译这些文件来完成的。

我正在尝试从 LLVM 调用外部函数,但我没有运气。在示例中,我发现只调用了“puts”和“printf”等 C 标准函数,但我想调用 >homemade 函数。我被困住了。

0 投票
3 回答
5374 浏览

compiler-construction - 创建 LLVM 的原因是什么?

LLVM 和常规编译器有什么区别?
它是否更具动态性,因此可用于将通常非常动态的语言(即 Javascript)编译成静态二进制代码?创建一个背后的原则是什么?
我知道编译器的 Dragon Book,但是 LLVM 有这样的东西吗?

编辑:我发现了这个有趣的项目。

0 投票
2 回答
317 浏览

objective-c - -forwardInvocation 适用于 Clang - LLVM 但不适用于 GCC

下面的代码实现了一个 NSProxy 子类,它将方法转发到一个 NSNumber 实例。

但是,当调用 [nsproxy floatValue] 时,我在 GCC 4.2 下得到 0.0。

在 LLVM-Clang 下,我得到正确答案 42.0。

知道发生了什么吗?

(顺便说一下,这是在垃圾收集下运行的)