Questions tagged «llvm»

3
如何使用asm.js在浏览器中运行C ++代码?
一个asm.js应用程序非常快(接近本地C ++速度): http://kripken.github.io/mloc_emscripten_talk/micro4b.png 但是,如何用C ++编写代码,将其转换为LLVM代码,然后使用emscripten / asm.js进行一些技巧呢?我还没有找到关于它的任何教程。 如果我用C ++编写代码,那么如何使用js API-s,例如XMLHttpRequest,WebSockets,Canvas或WebGL?
21 c++  javascript  llvm 

4
GCC vs clang / LLVM —各自的优缺点
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 6年前关闭。 GCC与clang / LLVM的优缺点是什么?
20 compiler  clang  gcc  llvm 

1
为什么LLVM具有类似程序集的IR,而不是类似树的IR?或者:为什么项目针对LLVM IR而不是clang的AST?
为什么LLVM的中间表示(LLVM IR)类似于树而不是像树? 或者,为什么语言实现针对LLVM IR而不是clang的AST? 我不是想立刻问两个不同的问题。在我看来,似乎客户和库程序员都已达成共识,LLVM的API(仅此而已)显然是好的软件设计,我的问题是“为什么?”。 我问的原因是,如果IR类似于AST,LLVM似乎可以为前端提供更多功能,因为那时clang基于AST的工具可以用于任何前端。另外,如果针对LLVM IR的语言针对clang的AST,则可以获得更多功能。 Clang具有用于创建和使用AST的类和函数,并且它是唯一与LLVM项目紧密相关的前端项目,那么为什么clang的AST功能在LLVM外部? 在我的头顶上,我知道Rust(rustc),D(ldc)和Haskell(GHC)都可以使用LLVM作为后端,但是它们不使用Clang AST(据我所知,我可以是错的)。我不知道这些编译器的所有内部细节,但是至少Rust和D当然看起来可以将它们编译为clang的AST。也许Haskell也可以,但是我对此不太确定。 这是因为历史原因(LLVM最初是“低级虚拟机”,后来出现了clang)吗?这是因为其他前端希望对提供给LLVM的内容进行尽可能多的控制吗?clang的AST不适合“非C类”语言是否有根本原因? 我不希望这个问题成为阅读中的练习。我只是希望它对那些对编译器设计感到好奇但还不太熟练的人有所帮助。由于LLVM和clang项目是公开开发的,所以我希望熟悉这些项目开发的人员可以回答,或者希望答案对于某些自己有足够信心回答的书呆子很明显。 抢占一些显而易见但不令人满意的答案: 是的,拥有类似程序集的IR可以使制作IR的人获得更多控制权(也许X lang比clang更好的代码库和AST格式),但是如果这是唯一的答案,那么问题就变成了“为什么LLVM 仅具有程序集-例如IR,而不是高级树状IR和底层程序集IR?”。 是的,将编程语言解析为AST并不难(至少与其他编译步骤相比)。即使这样,为什么还要使用单独的AST?如果没有其他问题,则使用相同的AST可以使您使用在AST上运行的工具(即使只是简单的东西,例如AST打印机)。 是的,我强烈同意,更加模块化是一件好事,但如果这是唯一的原因,那么为什么其他语言的实现往往针对LLVM IR代替铛的AST? 这些先发制人可能是错误的或忽略了细节,因此,如果您有更多细节或我的假设有误,请随时提供这些答案。 对于任何想回答一个更为明确的问题的人:类组装IR与树形IR的优缺点是什么?

4
LLVM低级别是哪种方式?
以何种方式(S)是LLVM(低级虚拟机)的低等级?(在撰写本文时,我在其网站上未找到缩写“ LLVM”的这种扩展,但在Wikipedia上却发现了这种扩展。) 它是为(编译器基础结构)设计的目的而被称为“低级”,还是因为它比其他工具在“低级”上工作? 作为(某种)“说明”,LLVM是否比JVM和CLR低,或者仅设计用于“低级”用途?

1
机器代码JIT和执行禁用位
如果CPU / OS具有“执行禁用”位,运行时生成的机器代码(例如JIT的输出)如何由CPU实际执行? 据我所知,许多现代处理器和操作系统包括用于支持NX位,(包括Intel和ARM),这防止了机器代码被存储在任何地址其它不是从正在执行的编译的二进制的代码部分。显然,这是一个不错的安全优势,因为它可以防止外壳代码注入攻击。 但是,如何动态生成机器代码的JIT引擎(如LLVM)如何解决这一问题?
10 machine-code  jit  llvm 

3
Clang / LLVM准备好迎接黄金时间了吗?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 6年前关闭。 可以使用Clang代替gcc吗?您对此有何经验?还有哪些不利条件? 编译的性能比gcc好得多,但是关于执行它时生成的代码的性能呢? 有没有好的工具可以在Linux或Windows上运行作为前端(IDE)? 编辑:我的意思是C编译器。C ++还不是很好。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.