タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

clangとLLVMに関するkomlowのブックマーク (5)

  • Devirtualization in LLVM and Clang

    This blog post is part of a series of blog posts from students who were funded by the LLVM Foundation to attend the 2016 LLVM Developers' Meeting in San Jose, CA. Please visit the LLVM Foundation's webpage for more information on our Travel Grants program. This post is from Piotr Padlewski on his work that he presented at the meeting: This blogpost will show how C++ devirtualization is performed i

  • LLVM/Clang実践活用ハンドブック(出村成和) | 書籍 | ソシム

    Clang/LLVM(Low Level Virtual Machine)とは、CやObjective-Cなどのコンピュータ言語のコンパイラ環境です。 最近ではiOSやMac OS X、FreeBSDなどのOSでは、デファクトスタンダードであったGCC(GNUコンパイラコレクション)からLLVM/Clangへの置き換えが進みつつあります。 書では、Clang/LLVMの仕組みと使い方(カスタマイズ法など)、Clang/LLVM独自のライブラリの使い方などについて詳細な解説を行っています。 はじめに CHAPTER 1 LLVMとは 1 LLVMの概要 2 コンパイラの仕組み 3 特徴 4 対応プラットフォーム 5 LLVMプロジェクトの一覧 6 ライセンス CHAPTER 2 セットアップ 1 ビルド環境の準備 2 ソースコードを取得する 3 makeでビルドする 4 CMakeでビルド

    LLVM/Clang実践活用ハンドブック(出村成和) | 書籍 | ソシム
  • Clang Language Extensions — Clang 20.0.0git documentation

    Introduction¶ This document describes the language extensions provided by Clang. In addition to the language extensions listed here, Clang aims to support a broad range of GCC extensions. Please see the GCC manual for more information on these extensions. Feature Checking Macros¶ Language extensions can be very useful, but only if you know you can depend on them. In order to allow fine-grain featu

  • clang+llvmでさりげなくすごいコードが生成されていた話。 - 組み込みの人。

    先日llvm 3.3がリリースされました。aarch64(arm 64bit)のコードが生成できるようになったということなので、ソースからビルドして遊んでいたのですが、さりげなく凄く最適化されたコードが生成されているのに気がつきました。aarch64だと今は実行して確認できる環境が手元に無いので、普通のarmv7-aで同じことを試しました。 ここで使ったコードとその結果はgistに貼りました。 https://gist.github.com/tetsu-koba/5835724 ソースコード int sum(int x) { int sum = 0; int i; for (i = 1; i <= x; i++) { sum += i; } return sum; } 1からnまでの総和を求める関数です。1から100までの総和が5050なのはガウス少年の逸話で有名ですね。 gcc 4.8.

    clang+llvmでさりげなくすごいコードが生成されていた話。 - 組み込みの人。
  • LLVMをちょっと調べてみた - wagavulinの日記

    最近LLVMについて調べてみたのでまとめてみる。自分はコンパイラの専門家でも何でもないので間違った内容があるかもしれない。GCCとコンパイラの仕組みLLVMの前にまずはコンパイラ一般の話。コンパイラはまずソースコードを解析して内部表現にする。これはたいていツリー構造となる。このツリー構造のデータに対して文法チェックを行ったり最適化処理を行ったりした後に、オブジェクトファイルを生成する。コンパイラの内部表現だが、実際には複数の種類の内部表現を使っていることが多いらしく、GCCもそのようになっている([1]の図3)。これによるとまずはその言語固有のツリーにするようだ(C trees, C++ treesなど)。これをGENERICという形式にする。GENERICは名前のとおり言語に依存しない一般的な形式で、どの言語の場合も一度GENERICにする。GENERICはその後さらにGIMPLEという

  • 1