编译器项目构想
回答
我担心,6周是完成生产编译器改进的很短时间,尤其是如果您还不熟悉LLVM。在LLVM中冷启动并期待6周内发生任何有趣的事情(除了所有的精彩学习你会做,但这并不像提高性能/可用性/编译器的任何外部有趣之处:-))
在此给出一个答案的另一个警告:编译器是一个巨大的和精彩主题。它有很多不同的部分,其中许多是完全不同的。如果不知道你的果汁是否流淌,很难提出好的建议。这听起来像你在学术机构,所以和你的教授交谈肯定是一个好主意。
虽这么说......
找到事做的一种流行的方法是用GCC比较LLVM,看看GCC也更好(相信我,尽管LLVM的营销,还有很多事情GCC仍然更好;-))
例如,如果您正在进行矢量化,LLVM会有一个名为test-suite
的子项目,其中包含许多基准程序。其中之一称为TSVC
,它是一组用于测试矢量化功能的循环。最后我检查了(在去年),海湾合作委员会在寻找减少量方面做得比LLVM好得多。即使你没有解决这个问题(我怀疑你会在6周内,但让我惊讶!),写一个关于现代机器的问题和一些最新的基准数据将是社区,也许你自己感兴趣的。
如果您对前端(Clang)感兴趣,则C++ devirutalization是GCC功能的后盾。写一篇文章,解释什么是缺乏,以及如何接近。再次,6个星期是解决这个问题的时间。
稍微多一点元注意,拖网通过LLVM的bugzilla会告诉你很多的小事情的机会。有许多低垂的果实。我有一个非常快看,发现这一个:
clang should optimize common patterns to portably read big/little-endian data
这是在6个星期的新手可行的。通过拖曳错误跟踪器,您可以找到符合您自己的兴趣而不是我的兴趣的东西。
如果您更深入研究,那么尝试玩一些新的想法,并弄清LLVM如何被用来协助研究它。我前段时间浏览龙书的背页(我从来没有设法读过本书的那部分作为学生),并发现了使用Datalog表达别名分析约束的非常酷的想法。果然,一个快速的网络搜索发现这个研究项目llmv-datalog on GitHub。所有的源代码都在那里,为什么不用一个你喜欢的研究想法来运行一些经验?如果你大概知道你要拍摄什么,我觉得这个东西很容易被发现,这真是太神奇了。
祝你好运!
- 1. 构建(编译)项目编程VB.NET中
- 2. XML项目构想
- 3. Intellij Idea编译器重新编译已编译的项目
- 4. Xcode不断构建编译项目
- 5. 编译HTML(.Chm)从项目构建
- 6. C#项目的编译器选项
- 7. 编译Android项目
- 8. 编译Android项目
- 9. 编译Izpack项目
- 10. XCode项目编译
- 11. 使用替代编译器为Travis-CI R项目构建
- 12. 任意体系结构的可编译目标编译器
- 13. 有趣的编译器项目
- 14. 如何管理编译器项目?
- 15. 使用VS2010编译VS2015项目编译器
- 16. 使用Cygwin编译器将Qt项目编译到Eclipse中
- 17. 使用.NET 4.0编译器编译.NET 3.5项目
- 18. 编译ASP.NET5项目中的TypeScript项目
- 19. ASP.net编译项目错误
- 20. 项目,wsdl2objc未编译
- 21. 编译开源项目
- 22. Typescript项目编译错误
- 23. GWT无法编译项目
- 24. 与Mono编译csharp项目
- 25. 用NAnt编译WebSite项目
- 26. 编译Python项目的Windows
- 27. 编译项目时出错
- 28. 编译GWT项目与Eclipse
- 29. Android项目不编译
- 30. Java项目编译错误
我一直想带一个解析器生成器(这些天,一个PEG),并添加一个子树匹配和替换(树重写)语言ala TXL来操作分析树。如果您将代码生成添加为规则应用程序的副作用,那么您可以编写一个只使用转换规则的编译器。 – cliffordheath