簡體   English   中英

將新的 LLVM 目標添加到 llvmlite

[英]Adding a new LLVM target to llvmlite

是否可以向 llvmlite(python 庫)添加新目標? 對於新硬件(例如 ASIC),我需要一個新的自定義 LLVM 目標。 這從文檔中不是很清楚。

如果無法在 llvmlite 中添加新目標,我可以在 llvmlite 中生成 IR 並使用其他方法執行 rest 嗎?

答案好壞參半。

新目標可能不是真正的新目標,但如果您使用正確的 arguments 調用 llvmlite 的 create_target_machine() ,LLVM 可以將它們放在一起。許多 ASIC 並不是真正唯一的。

如果目標真的是新的,你 99% 可能需要寫一些 C++。后端子類 LLVM 類,我沒有足夠的勇氣在 python 中嘗試。所需的代碼量將至少有一百行甚至如果你的 ASIC CPU 已經有一個后端,並且你必須為一個復雜的 CPU 編寫一個代碼生成器,那么你真的很倒霉。

然而,一旦你有了新的目標,llvmlite 就應該能夠使用它而無需直接引用任何目標或后端特定的代碼。 您的 python 代碼要求 llvmlite 創建_target_machine,然后通過現有的 llvmlite 調用調用 LLVM 的傳遞管理器,后者又調用正確的后端。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM