0
モジュール内の他のコードの前に実行されるいくつかのコードを計測したい。LLVM他のコードの前にモジュール内のコードを実行する方法
私はmain関数の最初にコードを呼び出すことを考えました。しかし、常に主要な機能であるとは限らず、必ずしも「メイン」という名前ではありません。あるいは、それは図書館であり、主な機能を持っていない。
他にもスマートな方法がありますか?
モジュール内の他のコードの前に実行されるいくつかのコードを計測したい。LLVM他のコードの前にモジュール内のコードを実行する方法
私はmain関数の最初にコードを呼び出すことを考えました。しかし、常に主要な機能であるとは限らず、必ずしも「メイン」という名前ではありません。あるいは、それは図書館であり、主な機能を持っていない。
他にもスマートな方法がありますか?
早く実行したいコードを関数に入れて、その関数をllvm.global_ctors
に追加することができます。これは、CまたはC++で__attribute__((constructor))
を使用するのと同じです。
パスからこれを行うにはllvm::appendToGlobalCtors
関数を使用できます。この関数はllvm/Transforms/Utils/ModuleUtils.h
で宣言されています。
http://llvm.org/docs/LangRef.html#the-llvm-global-ctors-global-variable –
@IsmailBadawiは良い答えと思われる。コンパイラ・パスからこの変数にどのように追加することができますか? – user2600312