タグ付けされた質問 「llvm」

3
asm.jsを使用してブラウザーでC ++コードを実行する方法
asm.jsアプリケーションは非常に高速です(ネイティブC ++の速度に近い): http://kripken.github.io/mloc_emscripten_talk/micro4b.png しかし、どのようにしてC ++で作成し、LLVMコードに変換し、emscripten / asm.jsでいくつかのトリックを行うことができますか?私はそれについてのチュートリアルを見つけていません。 そして、C ++でコードを作成する場合、たとえばXMLHttpRequest、WebSockets、CanvasまたはWebGLなどのjs API-sを使用する方法は?
21 c++  javascript  llvm 

4
GCC vs clang / LLVM —それぞれの長所と短所[非公開]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 6年前に閉鎖されました。 GCC対clang / LLVMの長所と短所は何ですか?
20 compiler  clang  gcc  llvm 

1
LLVMにツリーのようなIRではなく、アセンブリのようなIRがあるのはなぜですか?または:プロジェクトがclangのASTではなくLLVM IRをターゲットとするのはなぜですか?
なぜLLVMの中間表現(LLVM IR)はツリーのようではなくアセンブリのようですか? あるいは、言語の実装がclangのASTではなくLLVM IRをターゲットにしているのはなぜですか? そのように思える場合、私は一度に2つの異なる質問をしようとはしていません。私にとっては、クライアントとライブラリの両方のプログラマーが、LLVMのAPIは明らかに優れたソフトウェア設計であり、「なぜ?」 私が尋ねる理由は、IRがASTに似ていればLLVMがフロントエンドにより多くの機能を提供できるように見えることです。clangのASTベースのツールはどのフロントエンドにも使用できるからです。あるいは、LLVM IRを対象とする言語は、clangのASTを対象とする場合、より多くの機能を取得できます。 ClangにはASTを作成および操作するためのクラスと関数があり、LLVMプロジェクトに強く結び付けられている唯一のフロントエンドプロジェクトです。なぜclangのAST機能はLLVMの外部にあるのでしょうか。 私の頭上では、Rust(rustc)、D(ldc)、Haskell(GHC)はすべてLLVMをバックエンドとして使用できますが、Clang ASTは使用しません(私が知る限り、間違っている)。これらのコンパイラのすべての内部詳細はわかりませんが、少なくともRustとDは確かにclangのASTにコンパイルできるようです。Haskellも可能かもしれませんが、それについてはあまり確信が持てません。 これは歴史的な理由によるものですか(LLVMはもともと「低レベルの仮想マシン」であり、clangは後で登場します)?これは、他のフロントエンドがLLVMに供給するものを可能な限り制御したいからでしょうか?clangのASTが「非Cライク」言語に不適切である根本的な理由はありますか? 私はこの質問をマインドリーディングの練習にするつもりはありません。コンパイラー設計に興味はあるが、まだ流notではない私たちにとって役立つものにしたいだけです。LLVMおよびclangプロジェクトは公開で開発されているため、これらのプロジェクトの開発に精通している人が答えられるか、答えがコンパイルオタクにとって十分に明白であり、彼らが答えるのに十分自信があると感じることを望んでいます。 明らかではあるが不十分な回答を先取りするには: はい、アセンブリのようなIRを有するIR工芸誰により詳細に制御できます(おそらくX langは打ち鳴らすより良いコードベースとASTの形式を持っている)が、それが唯一の答えだ場合、その疑問は、なぜLLVMはない」となっのみ assembly-を持っています高レベルのツリーのようなIRと低レベルのアセンブリのようなIRではなくIRが好きですか?」 はい、プログラミング言語をASTに解析するのはそれほど難しくありません(少なくとも他のコンパイル手順と比較して)。それでも、なぜ個別のASTを使用するのですか?他に何もなければ、同じASTを使用すると、ASTで動作するツールを使用できます(ASTプリンターのような単純なものでも)。 はい、よりモジュール化することは良いことであることに強く同意しますが、それが唯一の理由である場合、他の言語実装がclangのASTではなくLLVM IRをターゲットとする傾向があるのはなぜですか? これらのプリエンプションは誤っているか、詳細を見落としている可能性があります。詳細がある場合、または私の仮定が間違っている場合は、お気軽にこれらの回答を行ってください。 より明確に答えられる質問に答えたい人のために:アセンブリのようなIR対ツリーのようなIRの長所と短所は何ですか?

4
LLVMの低レベルはどのようになっていますか?
LLVM(低レベル仮想マシン)はどのように低レベルですか?(執筆時点では、略語 "LLVM"のこの拡張は、そのWebサイトではなく、ウィキペディアで見つかりました。) (コンパイラインフラストラクチャ)向けに設計されたもので「低レベル」と呼ばれていますか、または他のツールよりも「低レベル」で動作するためですか? これの(一種の)「図」として、LLVMはJVMやCLRよりも低レベルですか、それとも「低レベル」の用途のみに設計されていますか?

1
マシンコードJITと実行無効ビット
CPU / OSに実行無効ビットがある場合、ランタイム生成のマシンコード(JITの出力など)は実際にはどのようにCPUによって実行されますか? 私の知る限りでは、多くの最新のプロセッサおよびオペレーティングシステムは、NXのサポートは、任意のアドレスに格納されている防止マシンコード、(インテルおよびARMを含む)は、ビット含む他の実行中からコンパイルされたバイナリのコードセクションより。明らかに、これはシェルコードインジェクション攻撃を防ぐので、優れたセキュリティ上の利点です。 しかし、動的にマシンコードを生成するLLVMのようなJITエンジンはどうやってこれを回避するのでしょうか?
10 machine-code  jit  llvm 

3
Clang / LLVMはプライムタイムの準備ができていますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、専門知識によって裏付けられると期待していますが、この質問は、議論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 6年前休業。 Clangはgccの代わりに使用できますか?その上であなたの経験は何ですか?まだどのような欠点がありますか? コンパイルのパフォーマンスはgccよりも非常に優れていますが、実行時に生成されるコードのパフォーマンスについてはどうでしょうか。 LinuxまたはWindowsで実行するためのフロントエンド(IDE)として優れたツールはありますか? 編集:私はCコンパイラを意味します。C ++はまだあまり良くありません。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.