問題タブ [register-allocation]

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.

0 投票する
1 に答える
623 参照

llvm - llvm でのライブ範囲 (間隔) 分析

llvm はどのようにそのテンポラリーのライブ範囲 (間隔) を計算しますか? C ファイルの例を次に示します。

次のコマンドを実行し、 と の両方main.llを調べますmain.mem2reg.ll。私はおそらく間違っていますが、ライブ範囲の計算ははるかに簡単なようmain.llです (?) はmem2reg、ライブ範囲を計算するときに不可欠なパスですか? それとも、特定の最適化のために持っていると便利ですか?

0 投票する
1 に答える
224 参照

c++ - POD クラスと非 POD クラスのパフォーマンスの違い

私のコンパイラ (g++ 8.1.0 および clang++ 6.0.0) が POD (plain-old-data) と非 POD コードを異なる方法で扱う理由を理解するのに苦労しています。

テストコード:

デストラクタ (したがって POD ではない) を持つクラスslongを定義し、コンパイラは -Ofast を使用して get1 を生成します。

しかし、デストラクタをコメントアウトすると(slongPODになります)、

もちろん、パフォーマンスの問題は軽微です。それでも理解したい。他の (より複雑な) ケースでは、より重要なコードの違いにも気付きました。