編譯器項目構想
回答
我擔心,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. javascript項目編譯器
- 3. XML項目構想
- 4. Intellij Idea編譯器重新編譯已編譯的項目
- 5. 編譯HTML(.Chm)從項目構建
- 6. Xcode不斷構建編譯項目
- 7. 編譯/構建Google App Engine Java項目
- 8. C#項目的編譯器選項
- 9. 編譯Android項目
- 10. 編譯Android項目
- 11. 編譯Izpack項目
- 12. XCode項目編譯
- 13. 使用替代編譯器爲Travis-CI R項目構建
- 14. 用Cabal構建Haskell項目時替換編譯器
- 15. 如何關閉每個項目構建的C++編譯器
- 16. 任意體系結構的可編譯目標編譯器
- 17. 編譯Xcode項目的編譯錯誤
- 18. TeamCity編譯項目編譯錯誤
- 19. 有趣的編譯器項目
- 20. Android項目停止識別編譯器
- 21. Xcode項目範圍編譯器標誌
- 22. Geany項目包括編譯器錯誤
- 23. 如何管理編譯器項目?
- 24. 使用編譯器API編譯Java項目
- 25. 使用.NET 4.0編譯器編譯.NET 3.5項目
- 26. 使用VS2010編譯VS2015項目編譯器
- 27. 爲什麼使用BullsEye編譯器編譯項目?
- 28. 使用Cygwin編譯器將Qt項目編譯到Eclipse中
- 29. 使用Jack編譯器編譯Realm項目
- 30. 編譯ASP.NET5項目中的TypeScript項目
我一直想帶一個解析器生成器(這些天,一個PEG),並添加一個子樹匹配和替換(樹重寫)語言ala TXL來操作分析樹。如果您將代碼生成添加爲規則應用程序的副作用,那麼您可以編寫一個只使用轉換規則的編譯器。 – cliffordheath