問題タブ [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 投票する
3 に答える
29561 参照

64-bit - 64 ビット llvm-gcc で 32 ビットをビルドする

llvm-gcc の 64 ビット バージョンがありますが、32 ビットと 64 ビットの両方のバイナリをビルドできるようにしたいと考えています。これにはフラグがありますか?-m32 (通常の gcc で動作) を渡そうとしましたが、次のようなエラー メッセージが表示されます。

これは逆です。64 ビット プロセッサ用の 32 ビット コードを生成したい!

Ubuntu 9.04 x86-64 に付属する llvm-gcc 4.2 を実行しています。


編集: -v フラグを指定して llvm-gcc を実行したときの出力の関連部分は次のとおりです。

/usr/lib/llvm/gcc-4.2/libexec/gcc を調べて別のバイナリを見つけようとしましたが、そこにある唯一のディレクトリは x86_64-linux-gnu です。次に、適切なオプションを使用してソースから llvm-gcc をコンパイルする方法を検討します。

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

iphone - Xcode 3.2.1GCCCLANGおよびLLVMの謎解き

今週の新しいXcode3.2.1に含まれているreadmeには、次のように書かれています。

  • 静的コード分析は、[ビルド]メニューの[ビルドと分析]オプションまたはカスタムビルド設定を介して、XcodeIDEに完全に統合されています。
  • GCC 4.2は、10.6SDKのデフォルトのシステムコンパイラです。
  • オプションのLLVMコンパイラーは、2つの異なるフロントエンドを使用して含まれています。Clangコンパイラーは、コンパイル時間を大幅に改善する最先端のパーサーです。最大限の互換性を実現するために、GCCLLVMコンパイラーはGCC4.2パーサーを備えたLLVMバックエンドを利用します。
  • 新しいオプションのClang-LLVM1.0コンパイラーは、はるかに高速なClangフロントエンドパーサーをLLVMバックエンドコンパイラーと組み合わせて使用​​し、高速コンパイルと高速実行可能コードを実現します。GCC 4.2は依然としてシステムのデフォルトですが、多くのプロジェクトはこのコンパイラの組み合わせから恩恵を受けます。Clang-LLVM 1.0コンパイラは、C ++コードを検出すると、LLVM-GCC4.2の使用にフォールバックします。

当社には、デスクトップおよびiPhone向けの純粋なC、Objective-C、およびObjective-C++の既存のプロジェクトがあります。誰かがLLVM、GCC、CLANG、CLANG-LLVM、WordFooなどの違いを大まかに要約できますか?al。そして、それらが何であるか、そしていつ、そして何のために使用すべきかを説明しますか?より詳細な説明へのリンクがあるといいのですが、私は本当に高レベルの概要を探しています。

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

c++ - LLVMは動的キャストを回避するためのルールの例外ですか?

LLVMには、RTTIに代わる独自の手巻きの代替手段があります。これは、組み込みのRTTIよりも速度が向上し、vtable(dyn_cast)のないクラスへの動的キャストを可能にします。dynamic_cast<>ただし、より多くのクラスで使用できる場合でも、使用されている方法とまったく同じように使用できます。

dyn_cast<>テンプレートドキュメント

LLVMは評判の良いC++プロジェクトであるため、動的キャストが多すぎることは悪いデザインの兆候であり、コードの臭いとしても知られているという一般的な意見に直面しているようです。確かに、パフォーマンスの高いダイナミックキャストは、標準よりも設計での使用を改善するものではありませんdynamic_cast。では、誰がここにいますか?動的キャストの大規模な使用がC++コードの優れた設計上の選択である場合はありますか?Googleは、LLVMトランクのソースコードでこの種の動的キャストが690回発生することを明らかにしています。

dyn_cast<>LLVMトランクでの使用

0 投票する
8 に答える
41059 参照

c - #define ディレクティブを使用して LLVM とそのバージョンを検出する方法は?

質問は非常に明確だと思います。どのコンパイラが使用され、どのバージョンが使用されたかという情報をアプリケーションに含めることができるように、コンパイラ検出ヘッダーを作成しようとしています。

これは私が使用しているコードの一部です:

次のように使用できます。

LLVM とそのバージョンを検出する方法はありますか? そしてCLANG?

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

iphone - Xcode 3.1.4 の組み込みアナライザー

Xcode 3.1.4 に組み込まれているアナライザーによって、LLVM/Clang Static Analyzer を個別に使用することが冗長になるのでしょうか?

こちらの元の記事を参照してください: LLVM/Clang 静的アナライザーでメモリ リークを見つける

ありがとう。

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

xcode - Xcode 3.2 で LLVM Clang 2.6 を使用する

それで、LLVM Clang (2.6) バイナリをダウンロードしました。
Mac OS X 10.6 には Clang 1.0 が付属しています。

Clang の新しいバージョンを Xcode 3.2.x IDE に統合する方法を知っていますか?


ファイルを上書きするだけでは少し危険に思えます。

0 投票する
4 に答える
5842 参照

haskell - LLVM で使用する関数型プログラミング言語を選択する場合、どのようなトレードオフがありますか?

とりあえず、C++ は関数型プログラミング言語ではないと仮定しましょう。バックエンドに LLVM を使用してコンパイラを作成し、関数型プログラミング言語とその LLVM へのバインディングを使用して作業を行いたい場合、私の知る限り、Objective Caml と Haskell の 2 つの選択肢があります。他にもあるならそちらも知りたいです。

私は主観的な意見を求めているわけではないので、これにsubjectiveタグを付けないでください. これについて自分で決めたいのですが、すべてのトレードオフが何であるかはわかりません。だから、救助へのStackOverflow。トレードオフは何ですか?

0 投票する
4 に答える
3097 参照

installation - Vista に LLVM MinGW をインストールしますか?

llvm.orgからllvm-2.6-x86-mingw32.tar.bz2c:\llvmと llvm-gcc-4.2-2.6-x86-mingw32-tar.bz2 をダウンロードc:\llvm-gccし、次のバッチ ファイルのデスクトップ ショートカットをセットアップしましc:\llvm-gccた。llvm-gccコマンドラインからもコンパイル用の環境をセットアップしようとします:

残念ながら、このセットアップでは、単純な hello world プログラムをコンパイルしようとすると、次のエラーが発生します。

LLVM バイナリを簡単に調べたところ、MinGW ベースの Win32 API とランタイム ファイルが既に含まれているようです。また、MinGW DLL をc:\llvm-gcc\bin無駄に追加しようとしました。

Vista でバイナリ LLVM 環境と GCC ベースのフロント エンドをセットアップする際に見逃したものは何ですか?

ありがとう、ジョン

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

llvm - C プログラムから LLVM Jit を呼び出す

llvm.org のオンライン コンパイラを使用して bc ファイルを生成しました。この bc ファイルを ac または C++ プログラムからロードし、llvm jit を使用して bc ファイルで IR を実行できるかどうかを知りたいです (プログラムでc プログラム)、結果を取得します。

どうすればこれを達成できますか?

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

xcode - Xcode で llvm 中間表現を表示するにはどうすればよいですか

Xcode 3.2.1でclang-llvm 1.0でコンパイルしています

LLVMの中間表現を見たいです。これを行うにはどうすればよいですか?