華為方舟編譯器深入解讀:已有45款第三方應(yīng)用

2019-09-01 08:01:02   來(lái)源:新浪科技   評(píng)論:0   [收藏]   [評(píng)論]
導(dǎo)讀:  8月31日,華為方舟編譯器(OpenArkCompiler)正式開(kāi)源,官網(wǎng)已上線,源代碼包、二進(jìn)制包已提供下載,相關(guān)文檔、演示等資料也一應(yīng)俱全! ”敬畏街劬幾g器開(kāi)源的是編譯器框架部分源碼,包括編譯器中間表示(IR)
  8月31日,華為方舟編譯器(OpenArkCompiler)正式開(kāi)源,官網(wǎng)已上線,源代碼包、二進(jìn)制包已提供下載,相關(guān)文檔、演示等資料也一應(yīng)俱全。

  本次方舟編譯器開(kāi)源的是編譯器框架部分源碼,包括編譯器中間表示(IR)和語(yǔ)言編譯實(shí)現(xiàn),同時(shí)搭配編譯器其他二進(jìn)制組件,實(shí)現(xiàn)Java程序到aarch64匯編指令的編譯過(guò)程。

  開(kāi)發(fā)者可基于開(kāi)源代碼+二進(jìn)制,編譯構(gòu)建出編譯器工具鏈,嘗試對(duì)Java程序進(jìn)行編譯。

  社區(qū)參與者可以通過(guò)框架源碼學(xué)習(xí)方舟編譯器的編譯器中間表達(dá)(IR)及基本的中端編譯框架,熟悉方舟編譯器的架構(gòu)思想,并參與諸如對(duì)編譯器中端優(yōu)化的貢獻(xiàn)。

  [方舟編譯器的優(yōu)勢(shì)]

  按照華為的介紹,方舟編譯器是為支持多種編程語(yǔ)言、多種芯片平臺(tái)的聯(lián)合編譯、運(yùn)行而設(shè)計(jì)的統(tǒng)一編程平臺(tái),包含編譯器、工具鏈、運(yùn)行時(shí)等關(guān)鍵部件,目前還在持續(xù)演進(jìn)中,上述能力將陸續(xù)實(shí)現(xiàn)和開(kāi)源。

  通過(guò)多語(yǔ)言統(tǒng)一IR表示,方舟編譯器可實(shí)現(xiàn)應(yīng)用中多種編程語(yǔ)言聯(lián)合編譯優(yōu)化提升性能,而且在支持多平臺(tái)的同時(shí),根據(jù)設(shè)備特征提供便捷的開(kāi)發(fā)與部署策略提升效率。

  華為方舟編譯器提供了全新的系統(tǒng)及應(yīng)用的編譯和運(yùn)行機(jī)制,從動(dòng)態(tài)編譯變?yōu)殪o態(tài)編譯,就是直接將高級(jí)語(yǔ)言直接編譯成機(jī)器碼,徹底消除了虛擬機(jī)動(dòng)態(tài)編譯的額外開(kāi)銷(xiāo),實(shí)現(xiàn)了開(kāi)發(fā)和運(yùn)行效率的兼容并舉。

  1、多語(yǔ)言聯(lián)合

  將同一應(yīng)用中的不同語(yǔ)言代碼聯(lián)合編譯、聯(lián)合優(yōu)化,消除語(yǔ)言間的性能“鴻溝”,降低開(kāi)發(fā)者的優(yōu)化成本

  2、輕量運(yùn)行時(shí)

  通過(guò)編譯器的語(yǔ)言實(shí)現(xiàn)能力和優(yōu)化能力增強(qiáng),應(yīng)用運(yùn)行時(shí)的開(kāi)銷(xiāo)更小

  3、軟硬件協(xié)同

  編譯器與芯片實(shí)現(xiàn)軟硬件協(xié)同優(yōu)化,充分發(fā)揮硬件能效,應(yīng)用體驗(yàn)更佳

  4、多平臺(tái)支持

  支持面向多樣化的終端設(shè)備平臺(tái)進(jìn)行編譯和運(yùn)行,根據(jù)設(shè)備特征提供便捷的開(kāi)發(fā)與部署策略,提高開(kāi)發(fā)效率

  [方舟編譯器的架構(gòu)設(shè)計(jì)]

  當(dāng)前方舟編譯器支持Java/Kotlin程序字節(jié)碼的前端輸入,C/C++/JS等其它編程語(yǔ)言的支持還在規(guī)劃中。

  方舟編譯器的中間表示(IR)轉(zhuǎn)換器將前端輸入轉(zhuǎn)換成方舟IR,并輸送給后端的優(yōu)化器,最終生成二進(jìn)制文件,二進(jìn)制文件與編譯器運(yùn)行時(shí)庫(kù)文件鏈接生成可執(zhí)行文件,在方舟的運(yùn)行環(huán)境中就可執(zhí)行該文件。

  方舟編譯器IR是支持程序編譯和運(yùn)行的中間程序表示。程序源代碼中的任何信息對(duì)于程序分析和優(yōu)化都是有幫助的,所以方舟IR的目標(biāo)是盡可能完整詳細(xì)地提供源程序的信息。

 

分享到:
責(zé)任編輯:zsz

網(wǎng)友評(píng)論