まず、私は LLVM パスの初心者です。
変換パス (C++ API を使用) の後、LLVM の命令にメタデータを追加しようとしています。ツール チェーン内の別のツールで使用するために、この情報を保存するつもりです。これに関して2つの質問があります。
メタデータとして保存した情報が、LLVM IR で動作する別のツールにフィードされることを期待しています。では、メタデータは良い考えですか? 文字列をいくつかの指示とともにメタデータとして保存するつもりです。
ここでメタデータが正しい方法である場合は、メタデータ ノードを作成するための助けが必要です。setMedata() 関数を使用して命令にアタッチする予定です。setMetadata() のどのバリアントを使用するのが適切か。私のデータがどの MDKind であるべきかわかりません。MDString を作成し、それを MDNode にアタッチしてから、命令で setMetadata() を呼び出します。関数内の命令にメタデータを添付する場合、setMedata() でどのコンテキストを使用する必要がありますか。コンテキストとメタデータとの関連性は?
フォーラムや llvm doxygen のドキュメントで多くの議論を読み上げようとしましたが、すべての質問に対する明確で完全な回答が得られませんでした。私はこれを理解するのに役立つあなたの助け、またはいくつかの資料に感謝します.