ブログトップ 記事一覧 ログイン 無料ブログ開設

組み込みの人。


2014-04-16

ARM 64bit でLLVMは見逃せない

iPhone5S, iPad Airで64bit ARMプロセッサをいち早く製品化したAppleですが、驚きのニュースがありました。

AppleOS X, iOSコンパイラツールチェインをgccからclang/LLVMに移行しています。その64bit ARM向けのバックエンドをLLVMコミュニティに公開し、それを本家のツリーのメインラインに統合するという話です。

ニュースの概要は以下の記事で読むことができます。

Apple Open-Sources Their 64-bit ARM LLVM Back-End

http://www.phoronix.com/scan.php?page=news_item&px=MTY0NzE

その続報。

Apple, LLVM Developers Figure Out Their 64-Bit ARM Approach

http://www.phoronix.com/scan.php?page=news_item&px=MTY2NDM

一次ソースを自分でも確認しました。ことの始まりはLLVMdevのメーリングリストのこの投稿。

[LLVMdev] Contributing the Apple ARM64 compiler backend

http://lists.cs.uiuc.edu/pipermail/llvmdev/2014-March/071574.html

このメールでいきなりパッチが添付されています。これを読むと事前にARM社と協議していたことがわかります。

ほぼ同時期にARM社から以下のようなニュースリリースが出ています。

ARM Compiler Builds on Open Source LLVM Technology

http://www.arm.com/ja/about/newsroom/arm-compiler-builds-on-open-source-llvm-technology.php

ARM社はいままでARMCCという自社開発のコンパイラを販売してきましたが、Aarch64(64bit ARM)向けのものはClang/LLVMを採用するというものです。つまり、自社開発コンパイラに割いてきたエンジニアリングリソースをこのLLVMのものに一本化し、AppleQualcommと共同でオープンコミュニティの場でコンパイラを開発していくということです。

これらの発表の後で、4月に開催されるLLVM開発者会議の中で、具体的なマージの方法を議論するmeetingが行われました。

そのmeetingの議事録。

Summary of the meeting

http://lists.cs.uiuc.edu/pipermail/llvmdev/2014-April/072072.html

元々のLLVMの64bit ARM用のバックエンドのターゲット名はaarch64で、Appleから寄付されたバックエンドのターゲット名はarm64です。

まずはこのコードをそのままLLVMのツリーに入れます。つまり64bit ARM用バックエンドが2種類できます。

これらは以下のようなコマンドラインオプションで選択可能です。

--target aarch64-linux-gnu

--target arm64-linux-gnu

arm64の方をベースにして、統合作業を進めます。完了した段階でそれをaarch64に改名し、元のaarch64は削除します。

時期的な見通しとしては、3.5には間に合わないだろうということです。

議論の中でaarch64, arm64, gcc4.9のベンチマーク結果が投稿されました。

http://lists.cs.uiuc.edu/pipermail/llvmdev/2014-April/071937.html

Cortex-A53で計測されたものですが、現時点ではgcc4.9が勝っているのが興味深いです。

これに関連して以下のニュースも興味深いです。

Linux 3.15 Can Almost Be Compiled Under LLVM's Clang

http://www.phoronix.com/scan.php?page=news_item&px=MTY2MjY

LinuxカーネルをClangでビルドできるようにするというプロジェクトが進んでいました。Clang側の修正は3.3のときにマージされていましたが、Linuxカーネル側の修正も3.15でマージされたということです。

Qualcommの次世代プロセッサ Snapdragon 810

http://www.qualcomm.com/snapdragon/processors/810

64bit ARMであるCortex-A57とCortex-A53がそれぞれ4つ、合計8個のbig.LITTLE構成です。

The LLVM Foundation発足

http://blog.llvm.org/2014/04/the-llvm-foundation.html

LLVM 3.5の開発と並行して、安定版リリースのアップデート3.4.1の計画も進んでいます。

というわけで、ARM 64bitとLLVMの話はしばらく目が離せません。

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/embedded/20140416/p1