問題タブ [llvm]

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 投票する
4 に答える
8615 参照

haskell - LLVM対C--; どうしてLLVMはC--よりもHaskellにとって根本的に良くないのでしょうか?

私はLLVMがどんなシステムでもモデル化できるほど低いことに興奮しており、Appleがそれを採用していることを約束していると考えました。しかし、AppleはHaskellを特にサポートしていません。

そして、HaskellはCでもっとうまくいくだろうと考える人もいます--

LLVMのユーザーがオーバーヘッドゼロのガベージコレクションの問題を解決していないことは、それほど驚くべきことではありません。データモデルにとらわれずにこれを解決することは、コンピュータサイエンスの未解決の問題です。

--LHCはLLVMを使用しません。

0 投票する
5 に答える
3024 参照

objective-c - Objective-CシングルトンとLLVM/clangリークの警告

アプリケーションのいくつかの場所でシングルトンパターンを使用していますがclang、コードを分析するとメモリリークエラーが発生します。

私はこれらの設定を次の目的で使用していますscan-build

scan-build -v -v -v -V -k xcodebuild

シングルトンのコードは問題ないと確信しています-結局のところ、これはここでスタックオーバーフローとAppleのドキュメントで参照されているコードと同じです-しかし、メモリリークの警告を整理してスキャンしたいのですが-ビルドは成功を返します。

0 投票する
5 に答える
3255 参照

c++ - LLVMとは何ですか、またそれを使用してクロスプラットフォームのコンパイルを行うにはどうすればよいですか?

私はc++でのクロスプラットフォームコンパイルの苦痛を和らげるために使用できるllvmについてあちこち読んでいました、私はドキュメントを読み込もうとしていましたが、実際の開発問題でそれをどのように使用できるかわかりませんでした誰かが説明できますか簡単に言えば、どうすれば使用できますか?

0 投票する
5 に答える
16082 参照

string - LLVM で文字列データ型を実装するにはどうすればよいですか?

私は最近LLVMを見てきましたが、非常に興味深いアーキテクチャであることがわかりました。ただし、チュートリアルと参考資料を調べても、文字列データ型を実装する方法の例が見つかりません。

整数、実数、その他の数値型、さらには配列、関数、構造体に関するドキュメントはたくさんありますが、文字列については知る限り何もありません。バックエンドに新しいデータ型を追加する必要がありますか? 組み込みのデータ型を使用する方法はありますか? 任意の洞察をいただければ幸いです。

0 投票する
3 に答える
36140 参照

gcc - makefileを介してgccフラグを渡す

llvmを使用してパスを構築しようとしていますが、llvmとそれに関連するコンポーネントの構築が完了しました。ただし、 makefileを含むパスを作成するためのすべての手順を実行した後、makeを実行すると、次のようになります。

共有オブジェクトを作成する場合、「ローカルシンボル」に対する再配置R_X86_64_32は使用できません。-fPICで再コンパイルします

エラーメッセージをグーグルで検索して修正を見つけるのに苦労した後、これはllvmに固有のものではないことがわかりました。いくつかの解決策は、configureの実行中に「--enable-shared」を使用することを提案しましたが、それは私の場合には役に立ちませんでした。fPICエラーが示すように、今度はを使用してllvmを再構築したいと思います。しかし、makefileを使用してこれを行うにはどうすればよいですか?

0 投票する
2 に答える
1060 参照

llvm - llvm コードで発生する %"alloca point" 行の目的は何ですか?

最近、llvm-gcc によって作成された LLVM アセンブリを調べていて、その目的がよくわからないステートメントが繰り返し表示されていることに気付きました。

たとえば、次の C プログラム:

「llvm-gcc -emit-llvm -S」でコンパイルすると、次のコードが生成されます (無関係な部分は削除されています)。

行の目的に興味があります:

割り当て先の変数は二度と使用されず、ビットキャスト自体は無意味であるため、何もしないようです。私が考えることができるのは、後でコード生成/分析の目的で実際に nop として挿入され、コードの興味深い部分を示しているということだけです。

0 投票する
5 に答える
5523 参照

xcode - Xcode 3.2 + LLVM = デバッグ時にローカル シンボルがない

Xcode 3.2 を使用して 10.6 でビルドしている Mac OS X 10.5 用のプロジェクトがあります。デバッグ ビルドに GCC 4.2 を使用してブレークポイントにヒットすると、Xcode デバッガーはローカル変数情報を正常に表示します。LLVM GCC 4.2 または Clang LLVM を選択すると、ブレークポイントに到達したときにローカル シンボルが使用できず、自己またはその他のローカル シンボルを出力しようとすると、GDB は現在のコンテキストでシンボル「自己」がないと表示します。いずれの場合も、Generate debug infoオプションが設定されています。デバッグ構成が に設定され、10.5 SDK、アクティブなアーキテクチャのみをビルドするオプションが設定されています。GDB が起動すると、x86_64-apple-darwin として構成されていることがわかります。明らかな何かが欠けているに違いありません。LLVM コンパイラを使用しているときに GDB にローカル シンボルを表示させるにはどうすればよいですか?$(NATIVE_ARCH)

0 投票する
3 に答える
5289 参照

c - LLVM-リンクの問題

私は言語Timber用のLLVMコードジェネレーターを書いています。現在のコンパイラーはCコードを出力します。私の問題は、生成されたLLVMファイルからC関数を呼び出す必要があることです。たとえば、コンパイラにはリアルタイムのガベージコレクタがあり、新しいオブジェクトがヒープに割り当てられたときに通知する関数を呼び出す必要があります。これらの関数を生成されたLLVMファイルとリンクする方法がわかりません。

コード生成は、.llファイルを生成し、これらを手動でコンパイルすることによって行われます。

LLVMから外部関数を呼び出そうとしていますが、うまくいきません。例では、「puts」や「printf」などのC標準関数のみが呼び出されていることがわかりましたが、自家製の関数を呼び出したいと思います。私は立ち往生しています。

0 投票する
3 に答える
5374 参照

compiler-construction - LLVMを作成した理由は何ですか?

LLVMと通常のコンパイラの違いは何ですか?
それはより動的であり、したがって通常は非常に動的な言語(つまりJavascript)を静的バイナリコードにコンパイルするために使用できますか?作成の背後にある原則は何ですか?
コンパイラ用のDragonBookは知っていますが、LLVM用にそのようなものはありますか?

編集:私はこの興味深いプロジェクトを見つけました。

0 投票する
2 に答える
317 参照

objective-c - -forwardInvocationはClangで動作します-LLVMですが、GCCでは動作しません

次のコードは、メソッドをNSNumberインスタンスに転送するNSProxyサブクラスを実装します。

ただし、[nsproxy floatValue]を呼び出すと、GCC4.2では0.0になります。

LLVM-Clangでは、正解42.0が得られます。

何が起こっているのか分かりますか?

(ちなみに、これはガベージコレクションの下で実行されています)