OpenArkCompiler 1.0 版本已正式釋出。
OpenArkCompiler 是來自華為方舟編譯器的開源專案,它具備的四個技術特點能夠將不同語言程式碼編譯成一套可執行檔案,在執行環境中高效執行:
- 支援多語言聯合優化、消除跨語言呼叫開銷;
- 更輕量的語言執行時;
- 軟硬協同充分發揮硬體能效;
- 支援多樣化的終端裝置平臺
Maple 編譯器基礎設施提供 C 編譯器、穩定的 aarch64 靜態程式碼生成器以及大量優化套件。
前端
Hir2mpl 支援 .ast、.dex、.class 和 .jar 作為輸入。目前,未啟用 .dex、.class 和 .jar。它根據輸入啟用相應的編譯過程。
Hir2mpl 將 clang 生成的 .ast 檔案作為輸入,並將其轉換為 mpl 檔案。有關 mpl 檔案和 MapleIR 的更多詳細資訊,檢視 MapleIRDesign。
中間層
- Function inlining
- Constant folding
- Auto vectorization
- Loop unrolling
- CFG simplification
- Value range propagation
- Dead store elimination
- Copy propagation
- Partial Redundancy Elimination
- Induction variable optimizations
- Code sinking
- Optimized basic block layout
後端
- Copy propagation
- Target specific propagation
- Register coalescence
- Peephole optimization
- Dead code elimination
- If conversion optimization
- Extended block optimization
- Instruction scheduling
- Register allocation
- CFG optimization
最後,公告提到 Maple 可以正常使用 SPEC CPU 2017,gcc.c-torture。他們使用 Clang 作為解析器和詞法分析器,使用 aarch64-linux-gnu-gcc 作為組合器和連結器。而他們自己的解析器和詞法分析器正在開發中。