2016-10-09 5 views
0

モジュール内の他のコードの前に実行されるいくつかのコードを計測したい。LLVM他のコードの前にモジュール内のコードを実行する方法

私はmain関数の最初にコードを呼び出すことを考えました。しかし、常に主要な機能であるとは限らず、必ずしも「メイン」という名前ではありません。あるいは、それは図書館であり、主な機能を持っていない。

他にもスマートな方法がありますか?

+0

http://llvm.org/docs/LangRef.html#the-llvm-global-ctors-global-variable –

+0

@IsmailBadawiは良い答えと思われる。コンパイラ・パスからこの変数にどのように追加することができますか? – user2600312

答えて

2

早く実行したいコードを関数に入れて、その関数をllvm.global_ctorsに追加することができます。これは、CまたはC++で__attribute__((constructor))を使用するのと同じです。

パスからこれを行うにはllvm::appendToGlobalCtors関数を使用できます。この関数はllvm/Transforms/Utils/ModuleUtils.hで宣言されています。

関連する問題