2014-04-16
ARM 64bit でLLVMは見逃せない
iPhone5S, iPad Airで64bit ARMプロセッサをいち早く製品化したAppleですが、驚きのニュースがありました。
AppleはOS 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のものに一本化し、AppleやQualcommと共同でオープンコミュニティの場でコンパイラを開発していくということです。
これらの発表の後で、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種類できます。
これらは以下のようなコマンドラインオプションで選択可能です。
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の話はしばらく目が離せません。
- 54 http://t.co/D8Ir924PJA
- 52 http://www.google.co.uk/url?sa=t&source=web&cd=1
- 48 http://b.hatena.ne.jp/
- 32 http://t.co/5irbximgI7
- 10 http://pipes.yahoo.com/pipes/pipe.info?_id=02db597254ec68550537866a2fca2ce6
- 8 http://pipes.yahoo.com/pipes/pipe.info?_id=04913f684f1141e0b48179f97811ce12
- 6 http://reader.livedoor.com/reader/
- 4 http://api.twitter.com/1/statuses/show/456451747922190336.json
- 4 http://b.hatena.ne.jp/entry/d.hatena.ne.jp/embedded/20140416/p1
- 4 http://www.google.com/url?source=web&url=http://d.hatena.ne.jp/embedded/20140416/p1