問題タブ [gcc-plugins]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
gcc - GIMPLE_PASSの登録方法は?
次のような単純なプラグインの例を実行しようとしています。
しかしGIMPLE_PASS
は事前定義されたイベントではなく、とでgcc-plugin.h
何かをしなければならないことはわかっていますが、正確な方法がわからず、例も見つかりませんでした。PLUGIN_PASS_MANAGER_SETUP
struct pass_data
tree-pass.h
誰かが私に方法を教えてくれますか?ありがとう。
gcc - 4.8 から 4.9 への Gcc プラグイン API
プラグインを gcc4.8.3 から GCC の 4.9.1 バージョンに更新しようとしていますが、インターフェースが少し変更されたようで、基本的なことがいくつかわかりません。新しいインターフェイスでパスを登録する方法について、プラグインまたはインターネットに関する GCC ドキュメントの例は見つかりませんでした。プラグインに新しいパスをインストールしたいだけなので、構造体 register_pass_info に入力し、次の方法で register_callback に渡します。
構造体 register_pass_info のフィールド「pass」に入力する方法がわかりません。現在、このフィールドは opt_pass クラスであり、単純な構造ではなく、GCC の内部パスと同じクラスのようです。だから私は当然、新しいパスを作成するために内部パスが行っていることをコピーしようとしました。私は自分のパスのためにこれをしました:
しかし、パスをインスタンス化するために必要なこのパラメーター gcc::context が何であるかがわかりません。さらに、opt_pass シンボルは、プラグイン API にない「pass-instances.def」を含む pass_manager で定義されています。
たぶん、あなたの何人かは、私を軌道に乗せるための小さな例を持っているか、私が見逃したいくつかのドキュメントを教えてくれます.
gcc - gcc LTO をライブラリ アーカイブで動作させるにはどうすればよいですか?
gccの専門家、
gcc が私のシステム (RedHat Enterprise Linux 5.7) に付属しているため、ライブラリ アーカイブで gcc lto を使用しようとしています。
1. binutils-2.22 を2 でビルドします--enable-plugins
。3 で gcc-4.7.2 をビルドし--with-plugin-ld=/path/to/ld/built/in/step1 --enable-lto
ます。次に、次の簡単なテストを行います。
以下はfoo()
インライン化 できます。
以下はできませんが:
私が取り組んでいる製品の構築システムはアーカイブを使用する必要があるため、lto をライブラリ アーカイブで動作させるにはどうすればよいですか?
あなたの助けは大歓迎です。
どうもありがとう。
python - GCC プラグイン、GCC Melt、または gcc Python プラグイン (gcc 拡張機能を作成するため)
GCC 拡張機能を作成する必要があります。GCC で強化された GCC プラグイン API を使用しようとしていますが、文書化が不十分であり、使用するのが非常に難しく、最後のバージョンを使用した例が見つかりません.. .
GCC MeltやGCC python pluginsなどの gcc 拡張機能を作成する方法は他にもたくさんありますが、それぞれの利点/欠点を教えてもらえますか? プラグインを作成する 3 つの方法の間に大きな違いはありますか?
c++ - GCCプラグインを使用して呼び出された関数名を出力
これを使用して、プログラムの呼び出された関数の名前を出力する必要があります。gcc plugins
後で呼び出されるパスを作成しましたssa pass
。すでにプラグインを開始しており、次を使用してそのステートメントをループできますgimple_stmt_iterator
。
gimpleノードを使用して、呼び出された関数の名前を出力するにはどうすればよいですか?? 呼び出された行番号、呼び出された関数の名前など、他の情報も出力できますか?
gcc - gcc Plugin を使用してコンパイルされた c++ ファイルの関数の数を取得します
GCC プラグインを使用してパスを作成しています。これが私のパスです。
したがって、 toto() は定義された関数ごとに実行されます。toto()
そうでない場合、実行時にすべての関数の数を取得することは可能ですか?ファイル全体に対してパスを 1 回だけ実行し、FOR_EACH_FUNCTION() を使用してすべての関数をループする方法はありますか? ?
c++ - gcc プラグインを使用して変数宣言の順序を変更する
これを行うのは非常に難しく、それを避けるべきであることはわかっていますが、これには理由があります。たとえば、コンパイル時にいくつかのフィールド宣言の順序を変更したい:
に向ける必要があります:
i
との順序を入れ替えることを選択した場合、そのフィールド宣言の をc
変更する方法を知りたいlocation
tree
どうすればこれを行うことができるか知っている人はいますか?? ありがとう !
g++ 4.9.2 バージョンのプラグインを使用しています