問題タブ [intermediate-language]
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.
java - ヒープを設定する大きさをどのようにして知ることができますか?
私はJavaを中間言語に変換しようとしており、中間言語がどのように機能するかを理解している最中です。
私は元のJavaコードを持っています:http://cs.ucla.edu/classes/spring11/cs132/cs132/mj/Factorial.java
そして、私は中間コード表現(VAPOR)を持っています:http://cs.ucla.edu/classes/spring11/cs132/kannan/vapor-examples/Factorial.vapor
別のセットは次のとおりです。Javaの場合:http://cs.ucla.edu/classes/spring11/cs132/cs132/mj/BubbleSort.java
VAPORの場合:http://cs.ucla.edu/classes/spring11/cs132/kannan/vapor-examples/BubbleSort.vapor
私の質問は、すべてのVAPORコードにt.0 = HeapAllocZ(x)
(がx
ありますint
)があります。コンバーターがヒープサイズをsizeにする必要があるとどのように判断するのか疑問に思いますx
。ではFactorial.vapor
、に設定されてい4
ます。ではBubbleSort.vapor
、に設定されてい12
ます。
ありがとう!
perl - Perl用のLLVMバックエンドはありますか?
Perlに変換したいCで書かれたプロジェクトがあります。私の友人はLLVMの使用を提案しました。Clangを使用してCコードをLLVMアセンブリにコンパイルしました。現在、この中間表現をPerlに変換しようとしていますが、そのバックエンドが見つからないようです。誰かが私を正しい方向に向けてくれませんか?
c - gcc .ssaファイルを直接実行することは可能ですか?そうでない場合、コンパイルする方法は?
この質問は少し古風ですが、マニュアルのこのセクションで答えを見つけるのに苦労しています。
CプログラムのSSAを次のようなファイルにダンプすると、次のようになります。
~$ gcc -fdump-tree-ssa program_name.c
ssa中間表現から直接実行するにはどうすればよいですか? を介してこれを行うことができない場合は、ダンプgcc
をコンパイルする方法に興味があります。別のIRを使用しているため、.ssa
実行できないと思います。LLVM
gcc
比較のために、clang/llvmで次のように簡単に実行できます。
~$ lli program_name_clangbit
...次のようなものでコンパイルすると仮定します:
~$ clang program_name.c -S -emit-llvm -o program_name_clangbit
assembly - LLVM アセンブリ言語はどの程度安定していますか?
LLVM Language Referenceには、使用できると記載されています
ディスク上のビットコード表現として (Just-In-Time コンパイラによる高速読み込みに適しています)
この表現はどの程度安定していますか? たとえば、現在 LLVM 3.1 を使用して生成し、将来の LLVM、たとえば 3 年後の架空の LLVM 4.5 を使用して使用できると期待できますか?
外部依存関係がないと仮定すると、それを使用して別のアーキテクチャ用のバイナリを生成できますか?
language-agnostic - バックパッチとはどういう意味ですか?
とはbackpatching
どういう意味ですか? 簡単な例で説明してください。
c++ - llvm エラー: 複数のランディング パッド サクセサが見つかりました
llvm には、liveness、dead Basic Block、正しいレジスタ クラスなどのさまざまなパラメーターに基づいて正確性をMachineVerifier
チェックするパスがあります。最近、MachineVerifier パスからこのエラーに遭遇しました。ランディングパッドの後継者が複数いるのはなぜいけないのだろう?このエラーが発生している例では、レイアウト (IR) は次のようになっています。MachineFunction
例外が発生すると、例外処理があいまいになるということですか。誰か説明してくれませんか。ありがとう。
string - スキームで文字列のリストを1つの文字列に変換する方法は?
たとえば、私は持ってい(list "a" "1" "b" "2" "c" "3")
ます。
ここで、このリストを 1 つにまとめたいと思います"a1b2c3"
。
それ、どうやったら出来るの?
ありがとうございました。
c# - コンパイラは不要/冗長なアップキャストを最適化しますか、それとも IL をまったく生成しますか?
冗長なキャストは最適化されますか? コンパイラが不要なダウンキャスト (つまりcastclass
) を最適化していないことがわかります。しかし今、私はより単純なケースに興味があります。この質問は参照タイプのみに関係し、 には関係ありませんboxing
。
upcast
それはILを生成しないように思われるため、冗長な明示的なupcast
コストはまったくかかりませんか? upcast
または、IL 命令は型がないため、舞台裏で冗長な明示的なパフォーマンス コストが依然として存在しますか?
または、upcast は時々 IL 命令を生成しますか?
c# - ILコードを発行する必要があるのはなぜですか?
私は非常に大規模なコード ベースで作業しており、今日IL code
、通常のclass
.
出力される IL コードを含むプロジェクトは、Service Locator
MSDN Desctiptionの実装でした。
これを行うことの利点は何ですか?また、言語を使用するのではなく、なぜこれを行うのでしょうか?C#