問題タブ [gimple]
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.
c++ - gcc プラグインを使用して変数宣言の順序を変更する
これを行うのは非常に難しく、それを避けるべきであることはわかっていますが、これには理由があります。たとえば、コンパイル時にいくつかのフィールド宣言の順序を変更したい:
に向ける必要があります:
i
との順序を入れ替えることを選択した場合、そのフィールド宣言の をc
変更する方法を知りたいlocation
tree
どうすればこれを行うことができるか知っている人はいますか?? ありがとう !
g++ 4.9.2 バージョンのプラグインを使用しています
c++ - gcc 5.1.0 に GIMPLE パスを登録する
こんにちは、gcc 4.8 および 4.9 用の gcc プラグインを使用していますが、gcc 5.1.0 で問題が発生しています。問題は、この新しい gcc バージョンで GIMPLE パスを登録できないことです。
プラグイン コードの例を次に示します。
このプラグインを使用してファイルをコンパイルすると、いくつかの B と C が出力されるはずですが、何も出力されません。
gcc 4.9 との違いは、型「pass_data」のフィールドが以前よりも 2 つ少ないことです (has_gate と has_execute)。それ以外は以前と同じようです。誰かが私が間違っていることや欠けていることを知っていれば、助けていただければ幸いです。
gcc - gcc中間表現でツリーを保存するには? 出来ますか?
ツリー (具体的にはツリーの種類) をバイナリ形式でファイルに保存したいのですが、このツリーを他のコンパイル ユニットにロードする必要があります。例えば:
私は2つの機能を持つmain.cを持っています:
構造体の型 ( myTypeStruct ) を保存し、test.c を含む別のコンパイル ユニットに次のようにロードします。
gcc プラグインを使用して、型をロードし、その型の変数を作成して、test.c を次のように変換します。
ツリーは tree_node へのポインターであり、tree_node は構造の結合であることを知っています。問題は、ツリーがそれと関係を持ち、一連の理解できない構造を持っていることです。特定の型の変数を作成するときに、どのデータにツリーが必要かを知る必要があります。
PD: LTO がそのようなことを行う方法についてのドキュメントが不十分です。PD2: 私の英語でごめんなさい
gcc - GIMPLE、RTLなどのGCC内部表現を分析する方法
-fdump-tree-all
コマンドを使用してダンプ出力ファイルを生成し-fdump-rtl-all
ましたが、多くのダンプ ファイルを取得しました。GIMPLE のコードは疑似 C 構文であり、RTL ダンプ ファイルは低レベルすぎて理解できないと読みました。GIMPLE と RTL のダンプ ファイルを理解する方法はありますか? それをCコードまたは何か便利なものに変換できるソフトウェアはありますか? それを理解することを学ぶためのチュートリアルはありますか? ありがとう
c - GCC は命令を発行しません。分岐を回避しようとしました
コード内の分岐の量を減らす必要があります。median と呼ばれるベンチマークが存在し、次のようなコードがあります。
分岐を避けるために、マシン記述ファイル *.md にパターンを書きました。
単純な比較の場合に機能します。
GCC エミット:
しかし、同じことを試しても、インデックス付き変数(配列)を使用すると、機能しません:
GCC エミット:
私はGCCが次のようなものを発行する必要があります:
助けていただければ幸いです。