LLVMを使い始めたばかりです。私は独自の Hello パスを書きましたが、うまくいきました。
ここで、StackProtector.cpp からスタック プロテクター パスを使用して opt を実行したいのですが、問題が発生しています。ソース コードを見ると、フラグ -stack-protector を使用する必要があるようです。
INITIALIZE_PASS(StackProtector, "stack-protector", "Insert stack protectors", false, false)
しかし、このフラグは opt によって認識されません。
自分の LLVMHello.so ファイルをロードするほど単純ではなく、StackProtector.so ファイルが見つからなかったため、どのファイルを「ロード」すればよいかわかりません。これが問題かもしれないと思います。
編集:
やっとLLVMDevから返事が来ました。実際、私が実行したかったパスは、opt ではなく llc によって実行されます。オプション -stack-protector が見つかりませんでしたが、
llc --help
このオプションは非表示になっているためです。代わりに私がそうするなら
llc --help-hidden
パスがそこにあることが示されているので、実行する必要があります
llc -print-before=stack-protector <input>