コンパイラに新時代到来 編集部

イントロダクション
知らないうちに劇的に進化していた!
コンパイラに新時代到来
編集部
ちまたでは…ARM Cortex-A 時代が到来!
入ってる
入ってる
入ってる
Zynq
入ってる
入ってる
Cortex-A
インサイド
ARM
入ってる
入ってる
入ってる
Cortex-Aマネーの恩恵でコンパイラが劇的進化中
一例
コア開発元
Cortex-A
マネー
Cortex-A
普及しまくり!
端末開発元
累計
なんと
5 億台!
iPhone
12
コンパイラ
が劇的進化!
Cortex-A
マネー
Cortex-A ベース
のプロセッサ搭載
2015 年 3 月号
使わない手はない!
生成コードが高速に
高性能で
フリー
Intro
App1
エラー・メッセージが見やすく
App2
1
原因箇所だけを
ピンポイントに
表示
2
App3
あそこを直せば
いいんだな!
Cortex-A 用コードが特に速い!
before
コマンドがシンプルに
$ arm-eabi-gcc -c -mcpu=…
そもそもコマンド
が違う
オプションも言語や
CPU でまちまち
デバッグ機能が充実
3
4
after
$ clang -target arm-eabi -mcpu=…
コマンドは一つ
オプション指定することで
さまざまな CPU に対応可能
6
最適化が使いやすく
App4
もちろん
今までどおり…
バグ
だらけだ!
5
7
8
次は消費電力
重視で
自力では
気付け
なかった
タダで
使える!
App5
App6
9
デバッグ
検出ツール
App7
ソフト屋さんなら
知らないとカッコ悪い
2015 年 3 月号
裏側で起きたこと…
13
10
特集
新時代コンパイラ入門
高性能でフリー!
新時代のコンパイラ登場!
プログラミング言語の処理
言語対応よし
フロントエンドを用意するだけ!
冗長性除去
中間表現
商品化された
処理を入れる
ループ解析と変換
ソースコード
(高級言語)
最適化
中間表現生成
意味解析
構文解析
字句解析
フロントエンド
コード解析 / 変換を行う
最適化対応よし
処理が一つ一つ部品化されている!
その気になればこんなことも…
C/C ++
定番はもちろん
BASIC
自作言語
往年の言語を
復活させる
未知の言語に
対応させる
部品化されているから
ポテンシャル抜群!
研究段階の技術も試せる!
よくわからないが
スゴイヤツ…
世界の英知も
日本発! 未知の最適化
ガンバレ日本!
高速化
高信頼化
定番はますます充実
低消費
電力化
最新技術も
並列化
マルチコアやメニーコアも
今まで考えられなかった最適化もできるかも
14
2015 年 3 月号
知らないのはマズすぎる…
Intro
App1
中間表現
(最適化済み)
App2
リンク
レジスタ割り当て
命令スケジューリング
命令選択
バックエンド(コード生成)
1
実行可能コード
2
目的コード
(機械語)
書き込み
ファイル
プロセッサの命令 / レジスタに対応付ける
App3
3
ライブラリ
CPU 対応よし
4
ルネサスも
バックエンドを用意するだけ!
5
RX
6
Cortex-A
Cortex-M
App4
PIC
x86
7
定番 ARM はもちろん
開発ツールも作りやすくなった
フリー・
コンパイラ
未対応 CPU
その気になればこんなことも
App5
未知の CPU に
対応したり
半導体メーカさん
よろしく
お願いします!
特集では…2 大フリー・コンパイラ
8
PIC も
インテルも
自作 CPU
App6
仮想マシンで
すぐ試せる
開発環境も
用意
定番 GCC&新時代 LLVM を紹介します!
2015 年 3 月号
15
9
App7
10