去年年底,有消息稱,為加強軟件生態建設,龍芯為 GCC和LLVM編譯器和相關 GNU 工具鏈組件提供 LoongArch 指令級架構(IS)支持。最近,LLVM 15.0的開發樹上出現了對中國的LoongArch CPU架構的初始補丁。
LLVM是一種編譯器,它的模塊化設計很好,這個編譯器中的很多功能可以被單獨實現或者改進。LLVM可以被設計成很多語言編譯器實現的后端,負責處理程序優化和跨平臺,而前端只需將程序轉換成LLVM IR即可。比如說,Clang就是基于LLVM實現的C/C++編譯器,它的主要功能就是將C/C++程序轉換成LLVM IR,然后由LLVM負責后續的工作。
LLVM技術上的(最大)優勢就在于它的模塊化設計。在LLVM中,IR的解析,優化,匯編碼的生成,寄存器分配,匯編碼優化以及機器碼生成,各種類型的二進制文件生成全部都是接口定義清晰的模塊完成的,很容易分別改進或者添加定制功能。而且由于LLVM的C++實現,很多模塊理解和使用比較容易。這些特性使得LLVM可以很容易地被用在科研和生產實踐當中。反觀GCC,模塊化做得不如LLVM好,這使得它定制或者改進比較不方便。
目前,LLVM編譯器社區已經正式合入了對Loongarch架構的初步支持,其主干源碼庫中已經出現了跟X86和ARM并列的LoongArch頂層目錄。這對于龍芯而言是一個里程碑。很多開源項目已經接受了對LoongArch的支持,眾人拾柴火焰高,相信隨著支持LoongArch的軟件越來越豐富,龍芯生態會在這個過程中茁壯成長。
「 支持烏有之鄉!」
您的打賞將用于網站日常運行與維護。
幫助我們辦好網站,宣傳紅色文化!