2015-04-05 40 views
0

如何存儲自定義LLVM分析階段中生成的每個基本塊信息,以使其在未來的優化階段中可用?在分析過程中將元數據與LLVM基本塊相關聯

例如,假設我正在派生類FunctionPass來實現活體分析。該通道將爲函數中的每個基本塊生成集合LiveInLiveOut。我應該在哪裏聲明這些集合供其他LLVM通行證將來使用?我怎樣才能讓它們從關聯的llvm :: BasicBlock數據結構中直接訪問?

回答

1

目前沒有任何直接的方法將元數據附加到BasicBlocks,因爲BasicBlock類沒有元數據作爲數據成員。您可以將BasicBlock類擴展爲一個選項,另一個常見的選項是將BasicBlock相關的元數據附加到其Terminator指令,但每次合併或拆分BasicBloks或修改CFG的過程都可能使您的信息失效。

+0

謝謝,這很有用。 – user3707531 2015-04-25 14:26:10

相關問題