草庐IT

c++ - 如何制作干净的clang前端?

我正在开发一个C++源代码分析器项目,看来clang是一个不错的候选者解析工作。问题是clang严重依赖基础设施“llvm”项目,如何配置它以获得干净的前端,而无需任何面向具体机器的后端?就像LCC一样,它们为专注于解析器部分的人提供了一个“空”后端。任何建议表示赞赏。 最佳答案 我最近在Windows上做了这个。从here下载clang和llvm源代码.安装cmake和Python(与文档相反,您确实需要Python来构建clang;至少,如果cmake找不到Python运行时,它会放弃)。您还需要VS2008或VS2010。有一

c++ - 如何使用 llvm 生成机器码

我目前正在使用llvm进行编译器项目。我遵循了各种教程,直到我有一个解析器来创建语法树,然后使用提供的IRBuilder将树转换为llvm模块。我的目标是创建一个可执行文件,但我对下一步该做什么感到困惑。我找到的所有教程都只是创建llvm模块并使用Module.dump()打印出程序集。此外,我能找到的唯一文档是针对llvm开发人员的,而不是针对项目的最终用户的。如果我想生成机器码,接下来的步骤是什么?llvm-mc项目看起来可以做我想做的事,但我找不到任何关于它的文档。也许我希望llvm做一些它没有做的事情。我的期望是我可以构建一个模块,然后会有一个我可以用模块调用的API,一个目标

c++ - 如何使用 llvm 生成机器码

我目前正在使用llvm进行编译器项目。我遵循了各种教程,直到我有一个解析器来创建语法树,然后使用提供的IRBuilder将树转换为llvm模块。我的目标是创建一个可执行文件,但我对下一步该做什么感到困惑。我找到的所有教程都只是创建llvm模块并使用Module.dump()打印出程序集。此外,我能找到的唯一文档是针对llvm开发人员的,而不是针对项目的最终用户的。如果我想生成机器码,接下来的步骤是什么?llvm-mc项目看起来可以做我想做的事,但我找不到任何关于它的文档。也许我希望llvm做一些它没有做的事情。我的期望是我可以构建一个模块,然后会有一个我可以用模块调用的API,一个目标

c++ - 我的编译器在 C/C++、OCaml 和 F# 之间犹豫不决

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter寻求指导。关闭9年前。我想开始研究一个小编译器并构建它,我在几种不同的语言之间犹豫不决。我的要求很简单,我希望能够发出LLVM-IR代码,因为我有一个LLVM后端,我想重用以针对特定平台。所以现在我有以下选择:使用OCaml和LLVM绑定(bind)-高效,LLVM附带OCaml绑定(bind),但OCaml(IDE,支持)的编码体验并不是最好的。使用C/C++和LLVM绑

c++ - 我的编译器在 C/C++、OCaml 和 F# 之间犹豫不决

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter寻求指导。关闭9年前。我想开始研究一个小编译器并构建它,我在几种不同的语言之间犹豫不决。我的要求很简单,我希望能够发出LLVM-IR代码,因为我有一个LLVM后端,我想重用以针对特定平台。所以现在我有以下选择:使用OCaml和LLVM绑定(bind)-高效,LLVM附带OCaml绑定(bind),但OCaml(IDE,支持)的编码体验并不是最好的。使用C/C++和LLVM绑

c++ - Windows 上的 Clang

首先,我关注了"GettingStarted:BuildingandRunningClang".特别是,我根据“使用VisualStudio”部分构建了它。换句话说,我是使用VisualStudio2010构建的。其次,我手动设置了MinGW分发的包含和库路径:我正在尝试编译的简单程序:#includeusingnamespacestd;intmain(){cout我从编译器得到以下反馈:InfileincludedfromC:\MinGW\lib\gcc\mingw32\4.5.2\include\c++\iostream:39:InfileincludedfromC:\MinGW\

c++ - Windows 上的 Clang

首先,我关注了"GettingStarted:BuildingandRunningClang".特别是,我根据“使用VisualStudio”部分构建了它。换句话说,我是使用VisualStudio2010构建的。其次,我手动设置了MinGW分发的包含和库路径:我正在尝试编译的简单程序:#includeusingnamespacestd;intmain(){cout我从编译器得到以下反馈:InfileincludedfromC:\MinGW\lib\gcc\mingw32\4.5.2\include\c++\iostream:39:InfileincludedfromC:\MinGW\

python - 什么是 LLVM 以及如何用 LLVM 替换 Python VM 将速度提高 5 倍?

Google正在赞助一个开源项目,旨在将Python的速度提高5倍。Unladen-Swallow好像有一个goodprojectplan为什么并发是一个如此困难的问题?LLVM会解决并发问题吗?除了多核之外,还有没有其他解决方案可以提升硬件? 最佳答案 LLVM是几件事在一起-一种虚拟机/优化编译器,结合不同的前端,以特定语言输入并以中间语言输出结果。此中间输出可以与虚拟机一起运行,也可以用于生成独立的可执行文件。并发性的问题在于,尽管它在科学计算中使用了很长时间,但最近才在消费者应用程序中变得普遍。因此,虽然众所周知如何编写科学

python - 什么是 LLVM 以及如何用 LLVM 替换 Python VM 将速度提高 5 倍?

Google正在赞助一个开源项目,旨在将Python的速度提高5倍。Unladen-Swallow好像有一个goodprojectplan为什么并发是一个如此困难的问题?LLVM会解决并发问题吗?除了多核之外,还有没有其他解决方案可以提升硬件? 最佳答案 LLVM是几件事在一起-一种虚拟机/优化编译器,结合不同的前端,以特定语言输入并以中间语言输出结果。此中间输出可以与虚拟机一起运行,也可以用于生成独立的可执行文件。并发性的问题在于,尽管它在科学计算中使用了很长时间,但最近才在消费者应用程序中变得普遍。因此,虽然众所周知如何编写科学

python - 关于空腹燕子的意见?

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter寻求指导。关闭9年前。您对Google'sUnladenSwallow有何看法和期望??从他们的项目计划中:WewanttomakePythonfaster,butwealsowanttomakeiteasyforlarge,well-establishedapplicationstoswitchtoUnladenSwallow.ProduceaversionofPytho