エンベデッドシステムスペシャリスト暗記無料で始める

コンパイラの最適化とは?こんぱいらのさいてきか

コンパイラの最適化とは、意味を変えないまま、生成コードを速くしたり小さくしたりするコンパイラの変換。組込みでは速度を狙う変換と容量を狙う変換が相反するため、どちらを優先するかがROM残量と実時間要件を見比べた設計判断になる。

最終更新:2026-10-06

試験情報

エンベデッドシステムスペシャリスト試験の過去問では2回出題されています(2016年度〜2019年度)。

エンベデッドシステムスペシャリスト試験の頻出用語/午前II

別名:定数の畳込み、定数の畳み込み、定数畳込み、インライン展開、ループのアンローリング、ループアンローリング、ループ内不変式の移動

この語が出る過去問を解く →

背景

汎用機なら速い方を選べば済むが、ROMが数十キロバイトの機器では、速くする変換がそのまま容量超過を招く。インライン展開もループアンローリングも、呼出しや分岐の手間を省く代わりにコードを複製するからである。逆に定数の畳込みや共通部分式の除去は命令そのものを消すので、速度と容量の両方に効く。どの水準を掛けるかは、締切とROM残量の両方から決める。

具体例

for(i=0;i<100;i++) a[i]=60*60*24+b; では、60*60*24が定数畳込みで86400に置き換わって乗算命令が消え、ループ内で値の変わらない+bはループ外へ移される。一方この繰返しを4回分ずつ展開すると、分岐は4分の1になるが本体の命令列はおよそ4倍に膨らむ。

試験での引っ掛け

「最適化=小さくなる」と一括りにしない。容量が減るのは命令を消す種類だけで、インライン展開とアンローリングは増やす方向に働く。またレジスタや共有変数を指すポインタにvolatileを付け忘れると、必要なアクセスを消されて動かなくなる。

関連用語

出た過去問

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

この語が出る過去問を解く →

試験での特徴
  • 試験では2回出題(2016年度〜2019年度)
  • 分野:午前II
  • 「最適化=小さくなる」と一括りにしない。