3

LLVm IR コードの関数で使用されるすべてのグローバル変数を収集したいと考えています。これを行うことができるLLVM APIはありますか? たとえば、`次のコードのように。

int a,b;
int fun(){return a+b;}

グローバル変数 a と b は fun() で使用されているため、a と b をセットで収集する必要があります。

4

2 に答える 2

4

オークのソリューションが機能するはずです。より効率的なアプローチのために(典型的な翻訳単位で)それを追加します。私がすることはusers()、各グローバル変数のリストをたどり( LLVMプログラマーマニュアルのこのセクションを参照)、それが表示される関数に注意することです.そして、それから推測します。

しかし、これは確かにトレードオフです。コードがほとんどなく、グローバルが多い (非典型的な) 翻訳単位がある場合は、Oak のソリューションの方が適しています。

于 2014-09-10T12:18:33.883 に答える