4
有人能指出open64與llvm之間的區別嗎?open64與llvm編譯器之間的區別
我知道open64使用旋轉IR有5個階段,因爲每個階段都會顯着降低機器代碼,而llvm有一個IR,用於中級優化,稍後會降低到目標無關說明(dag)和依賴的說明。
1)是洄也SSA,
2)並執行它使用虛擬寄存器,
3)確實open64具有模塊化設計像LLVM,
4)是很容易開發通過並將其插入工具鏈?
這兩種編譯擅長中層間優化和變革,但
5)確實open64有JITting或任何種類的動態翻譯的原生支持,內置的框架?
在這兩種情況下,看起來CG或多或少的質量是相似的。
6)那麼前端怎麼樣?是否可以在不修改Whirl IR(這就是SUIF的問題)的情況下輕鬆擴展與雜注或綁定新的前綴?據我所知,open64被廣泛用於許多商業和學術項目(UPC,AMD,Nvidia,Tensilica),但它看起來有很多分支(在2003年之後增長),並且每個分支都擁有它自己的功能和限制。此外,沒有固定的開發人員社區和環境或支持,與llvm相比,文檔幾乎不存在,並且簡單地說,編譯器的進展並不簡單。
在llvm更符合BSD授權風格且open64基於GPL的許可方面也存在差異。