BT

LLVM 3.3、C++11に完全準拠

| 作者: Jeff Martin フォローする 16 人のフォロワー , 翻訳者 笹井 崇司 フォローする 0 人のフォロワー 投稿日 2013年7月8日. 推定読書時間: 2 分 |

原文(投稿日:2013/06/28)へのリンク

LLVMプロジェクトの最新リリースがたくさんの新機能とともに登場した。これにはClangサブプロジェクトで開発されたC++11コンパイラのフルサポートも含まれている。一番の新機能は、いくつかの新しいCPUアーキテクチャのサポートだ。これには、AArch64 (64-bit ARM)、AMDのR600 GPU、IBMのz/Architecture (s390x)、MIPSおよびPowerPCターゲットの改善が含まれる。 

LLVMはloopと新たに追加されたSLPという2つのベクタライザを持っている。3.3では、loopベクタライザによりよいコードを生成するためのいくつかの改善がなされており、–O3フラグを使うとデフォルトで有効になる。新たに追加されたものには、ポインタ、リバースポインタ、If変換のランタイムチェックが含まれる。SLPベクタライザ (superword-level parallelism) は、類似の独立したインストラクションをベクトル化したインストラクションに変換するものだ。SLPベクタライザは“-fslp-vectorize”フラグを使うと有効になる。

Dragon EggはLLVMのサブプロジェクトで、LLVMテクノロジをGCCにもたらすものだ。DragonEggはGCCのオプティマイザとコードジェネレータをLLVMのものに置き換える。LLVM 3.3ですばらしいのは、gcc-4.8.1+とよりよいデバッグ情報のサポートだ。LLDB (Low Level Debugger) には、いくつかのLinuxフィーチャーが追加された。

  • ウォッチポイントのサポート
  • vimプラグインを利用した、lldbコマンドおよびプログラムステータスのvim統合
  • ベクターレジスタを含むレジスタサポートの改善
  • cmake/ninja/auto-tools/clang 3.3/gcc 4.6でのビルド

C++11を使っている開発者(あるいは、既存コードでの利用を検討している人)は、LLVMのC++11移行ツール、cpp11-migrateを調べるとよいだろう。LLVMのブログに書かれているように、「C++11 Migratorの目的は、保守性、可読性、ランタイム性能、コンパイル時性能を高めるために、C++11機能を利用するよう既存のC++コードをソースコードレベルで変換することだ。」

LLVM 3.3はソースやプレビルドバイナリなど、さまざまな形で配布されている。Linux、FreeBSD、Mac OS Xのユーザはプロジェクトのサイトから直接インストーラをダウンロードしてもよい。あるいは、使っているOSのディストリビューションをチェックしたり、ソースからコンパイルしよう。コンパイル方法について、LLVMチームが詳しい手順を説明している。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

特集コンテンツ一覧

ASP.NET Core - シンプルの力

Chris Klug 2018年6月4日 午前3時26分

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT