我最近发现了LLVM(lowlevelvirtualmachine)项目,据我所知,它可用于对源代码进行静态分析。我想知道是否可以在程序中通过函数指针(找到调用者函数和被调用者函数)提取不同的函数调用。我可以在网站上找到这类信息,所以如果你能告诉我这样的库是否已经存在于LLVM中,或者你能给我指出如何自己构建它的好方向(现有源代码、引用、教程、示例...)。编辑:通过我的分析,我实际上想提取调用者/被调用者函数调用。在函数指针的情况下,我想返回一组可能的被调用者。调用者和被调用者都必须在源代码中定义(这不包括库中的第三方函数)。 最佳答案
我正在实现一个跨平台(MacOSX、Windows和Linux)应用程序,该应用程序将对财务数据进行大量CPU密集型分析。出于速度原因,大部分分析引擎将用C++编写,用户可访问的脚本引擎与C++测试引擎交互。随着时间的推移,我想编写几个脚本前端来模拟其他流行的软件,并拥有大量的用户群。第一个方面将是类似VisualBasic的脚本语言。我认为LLVM非常适合我的需求。由于数据量巨大,性能非常重要;运行一次测试可能需要数小时或数天才能得到答案。我相信使用LLVM还可以让我使用单一的后端解决方案,同时随着时间的推移为不同风格的脚本语言实现不同的前端。测试引擎本身将与界面分离,测试甚至会在单
我正在实现一个跨平台(MacOSX、Windows和Linux)应用程序,该应用程序将对财务数据进行大量CPU密集型分析。出于速度原因,大部分分析引擎将用C++编写,用户可访问的脚本引擎与C++测试引擎交互。随着时间的推移,我想编写几个脚本前端来模拟其他流行的软件,并拥有大量的用户群。第一个方面将是类似VisualBasic的脚本语言。我认为LLVM非常适合我的需求。由于数据量巨大,性能非常重要;运行一次测试可能需要数小时或数天才能得到答案。我相信使用LLVM还可以让我使用单一的后端解决方案,同时随着时间的推移为不同风格的脚本语言实现不同的前端。测试引擎本身将与界面分离,测试甚至会在单
我目前正在使用llvm进行编译器项目。我遵循了各种教程,直到我有一个解析器来创建语法树,然后使用提供的IRBuilder将树转换为llvm模块。我的目标是创建一个可执行文件,但我对下一步该做什么感到困惑。我找到的所有教程都只是创建llvm模块并使用Module.dump()打印出程序集。此外,我能找到的唯一文档是针对llvm开发人员的,而不是针对项目的最终用户的。如果我想生成机器码,接下来的步骤是什么?llvm-mc项目看起来可以做我想做的事,但我找不到任何关于它的文档。也许我希望llvm做一些它没有做的事情。我的期望是我可以构建一个模块,然后会有一个我可以用模块调用的API,一个目标
我目前正在使用llvm进行编译器项目。我遵循了各种教程,直到我有一个解析器来创建语法树,然后使用提供的IRBuilder将树转换为llvm模块。我的目标是创建一个可执行文件,但我对下一步该做什么感到困惑。我找到的所有教程都只是创建llvm模块并使用Module.dump()打印出程序集。此外,我能找到的唯一文档是针对llvm开发人员的,而不是针对项目的最终用户的。如果我想生成机器码,接下来的步骤是什么?llvm-mc项目看起来可以做我想做的事,但我找不到任何关于它的文档。也许我希望llvm做一些它没有做的事情。我的期望是我可以构建一个模块,然后会有一个我可以用模块调用的API,一个目标
Google正在赞助一个开源项目,旨在将Python的速度提高5倍。Unladen-Swallow好像有一个goodprojectplan为什么并发是一个如此困难的问题?LLVM会解决并发问题吗?除了多核之外,还有没有其他解决方案可以提升硬件? 最佳答案 LLVM是几件事在一起-一种虚拟机/优化编译器,结合不同的前端,以特定语言输入并以中间语言输出结果。此中间输出可以与虚拟机一起运行,也可以用于生成独立的可执行文件。并发性的问题在于,尽管它在科学计算中使用了很长时间,但最近才在消费者应用程序中变得普遍。因此,虽然众所周知如何编写科学
Google正在赞助一个开源项目,旨在将Python的速度提高5倍。Unladen-Swallow好像有一个goodprojectplan为什么并发是一个如此困难的问题?LLVM会解决并发问题吗?除了多核之外,还有没有其他解决方案可以提升硬件? 最佳答案 LLVM是几件事在一起-一种虚拟机/优化编译器,结合不同的前端,以特定语言输入并以中间语言输出结果。此中间输出可以与虚拟机一起运行,也可以用于生成独立的可执行文件。并发性的问题在于,尽管它在科学计算中使用了很长时间,但最近才在消费者应用程序中变得普遍。因此,虽然众所周知如何编写科学
已结束。此问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提出有关书籍、工具、软件库等方面的建议的问题。您可以编辑问题,以便用事实和引用来回答它。关闭2年前。Improvethisquestion我想使用来自Java的LLVM代码生成框架。也就是说,我确实不想将Java代码编译成LLVM。我只是想要一个可以从Java调用的用于代码生成的LLVM库。通常的LLVM库是C,所以我不能使用它。是否有任何Java端口?如果不是,那么最简单的方法是什么?将API封装到JNI中? 最佳答案 快速搜索llvm
已结束。此问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提出有关书籍、工具、软件库等方面的建议的问题。您可以编辑问题,以便用事实和引用来回答它。关闭2年前。Improvethisquestion我想使用来自Java的LLVM代码生成框架。也就是说,我确实不想将Java代码编译成LLVM。我只是想要一个可以从Java调用的用于代码生成的LLVM库。通常的LLVM库是C,所以我不能使用它。是否有任何Java端口?如果不是,那么最简单的方法是什么?将API封装到JNI中? 最佳答案 快速搜索llvm
文章目录一、CMake、Make、MinGw、MSVC之间的联系-二、Clang、Llvm、GCC之间的联系三、CMake、Make、MinGw、Clang、Llvm、GCC名词解释CMakeGCC:GNU编译器套装LLVM:一套编译器基础设施项目,GCC的竞争对手GCC和LLVM区别CLang:LLVM的编译器的前端一、CMake、Make、MinGw、MSVC之间的联系-1、MSVC是指微软的VC编译器。MinGW是指是MinimalistGNUonWindows的缩写,MinGw是windows版本的gcc集合2、MinGW并不仅是一个C/C++编译器,而是一套GNU工具集合。除开GCC