問題タブ [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.
c - LLVMでの言語のブートストラップ
LLVMの上にプログラミング言語コンパイラをブートストラップしています。現在、自己コンパイル型のCのサブセット用のコンパイラーの作成はほぼ完了しています。それが終わったら、言語をCからブートストラップし、自己コンパイルを維持します。
コンパイラーは自己コンパイル型なので、私が使用するCの機能はすべて実装する必要があります。したがって、それは一定のバランスです。使用する機能が多すぎると、必要以上に実装する必要がありますが、十分な機能を実装しないと、コードを記述できなくなります。
そのような機能の1つがLLVMバインディングです。LLVMCバインディングなしでLLVM中間表現を生成することは困難です。ただし、LLVMバインディングを使用する場合は、Cから分岐するときにそれらを再度実装する必要があります。
ここで問題が発生しているので、別の解決策を探しています。何か案は?
llvm - 静的計測と動的計測の長所と短所
多くの静的および動的計測ツールがあります。すすは、Java バイトコードの静的計測ツールです。Pin と Valgrind は、バイナリ用の動的計測ツールです。
静的計測ツールと動的計測ツールの長所と短所は何ですか? ランタイム パフォーマンスの点では、静的インストルメンテーション ツールの方が優れていると思いますが、動的ツールはより強力です。実力と性能を比べてみてください。
さらに、インストルメンテーション ツールを使用することと LLVM パスを作成することの違いは何ですか?
c++ - WindowsでGCC 4を使用してLLVMを構築するには?
MinGW GCC 3.4.5 を使用して LLVM 2.6 (llvm-2.6.tar.gz パッケージ) をビルドできました。私は適切にテストしていませんが、うまくいくようです。
問題は、GCC3 を使用してビルドしないが、GCC4 (テンプレートの問題) で正常に動作する独自のライブラリがあることです。MinGW の最初の公式 GCC4 バージョンは GCC 4.4.0 だと思います。
編集
整頓 - 「これを試した、あれを試した」情報で役立つすべての情報が回答に含まれるようになりました。
編集
この質問/回答のほとんどは LLVM 2.7 では冗長です。標準の構成、メイク ルーチンは、ハッキングや回避策なしで MinGW で正常に動作します。
lisp - llvmに良いscheme/lispがないのはなぜですか?
Gambitスキーム、MITスキーム、PLTスキーム、Chickenスキーム、Bigloo、Larceny、...; その後、すべてのlispがあります。
それでも、LLVMは次のような多くの優れた機能を提供しますが、(私の知る限り)LLVMに人気のあるscheme/lispは1つもありません。
- x86よりもコードを生成する方が簡単
- CFFI呼び出しを簡単に行う..。
では、なぜLLVMに適切なscheme/lispがないのでしょうか。
llvm - ANTLR と C ターゲットを使用して LLVM IR を生成する方法
現在、ANTLR3 で LLVM IR を生成しようとしています。しかし、問題は、C ターゲットが必要なことです (C++ の方が優れていますが、まだ機能していませんか?) が、C からは、IR を構築するための LLVM C++ API を呼び出すことができません。
Terence Parr のチュートリアルでは、Java と StringTemplate ライブラリを使用しています。しかし、私が知っているように、StringTemplate ライブラリは C では利用できません。
これをどのように行うことができるか、誰かが良いアイデアを持っていますか? :)
どうも
ruby - macrubycでコンパイルされたrubyコードでgemを使用できますか
MacRuby 0.5には、macrubycと呼ばれるLLVM上に構築されたrubyコンパイラが含まれています。
コンパイルされたコードからgemを動的にロードできるかどうか誰かが知っていますか?または、gemをコンパイルしてリンクしますか?これは計画されていますか?または、コンパイルされたコードが一般的にgemをどのように利用できるか。
c++ - llvm の新しいフロントエンドを作成するときに、ブロックを試行/スローします
llvm-config
-fno-exceptions
llvm 自体をリンクするための LDFLAGS を入れます。これは、llvm コンパイラにリンクするコード (新しい言語のフロントエンドなど) で通常の C++ の try/throw ブロックを使用できないことを意味すると想定するのは正しいですか? 私が話しているのは、コンパイラーが生成するプログラムではなく、コンパイラーそのものです。からの出力に干渉したくありません。理由があるとllvm-config
確信しています..-fno-exceptions
他の LLVM コードとリンクする LLVM (私が書いているおもちゃの言語) 用の新しい言語フロントエンドを書きたい場合、フロントエンドのコードで例外を処理する標準的な方法はありますか?
c - GCC 未定義シンボル
私は最近HomebrewのMacPorts を捨てました make
。つまり、このエラー:
これらの 3 つのライブラリはリンクされていないようです。正直なところ、私は Ruby 開発者であり、何もコンパイルする必要がないため、これをどこで修正すればよいかわかりません。ソースから何かをコンパイルすると発生します。
make
上記の例では、インストール時の実行時の出力ですzsh
debugging - gdb を使用した llvm パスのデバッグ
gdb を使用して llvm パスをデバッグすることは可能ですか? llvm サイトでドキュメントが見つかりませんでした。
qt - QtをLLVMにバインドする
LLVMの上にある言語へのQtバインディングを作成するための最良の方法は何ですか?
Qtヘッダーファイルを解析し、そこからCへのインターフェイスを生成してみてください。LLVMからCインターフェイスを呼び出しますか?それとも、SWIGをQtとインターフェースさせようとしますか?それとももっと良い方法はありますか?