2013-11-02 38 views
1

這些可能是非常基本的問題。什麼是LLVM元數據

1)什麼是LLVM元數據,以及如何在我的程序中使用它?我已閱讀所有文檔,但我不明白如何使用它。

2)如何將我的個人元數據添加到文件中?

在此先感謝!

回答

5

最好的信息來源是2010年的博客文章,它將元數據引入LLVM IR - Extensible Metadata in LLVM IR。第一段提到的動機:

此元數據可以被用來影響自定義代碼生成語言特定 優化過程(例如,類型的基於別名分析在C),標籤 信息,或通過信息 鏈接時間優化。

但是,請仔細閱讀所有關於歷史細節的內容。

LLVM中元數據的主要「客戶端」目前是debug info。前端(例如Clang)使用它來標記它生成的LLVM IR,並使用調試信息將IR與源代碼相關聯。這些相同的元數據稍後會被代碼發射器轉換爲平臺特定的調試信息,例如DWARF。

+0

感謝您的快速回復。我有一個包含少量條件語句的小代碼。當代碼從一個塊到另一個塊遍歷時,如何使用GetMetadata()命令傳輸自定義元數據? – ConsistentProgrammer

+0

@ConsistentProgrammer:指定的元數據可以附加到指令。你可以通過調用'Instruction :: getMetadata'方法來提取它,並提供你想要提取的特定元數據記錄的名稱,例如'「dbg」' –

+0

你能告訴我如何在簡單的情況下使用這個命令Helloworld計劃? – ConsistentProgrammer