4.11 リンカの末尾呼び出しセクションの再順序付け

リンカに末尾呼び出しセクションの順序を入れ替えさせる必要が生じる場合があります。

Tail の呼び出しセクションとは、セクションの終わりに分岐命令を含むセクションです。分岐命令に別のセクションの先頭にある関数をターゲットとする再配置が含まれている場合、リンカは呼び出し先セクションの直前に末尾呼び出しセクションを配置できます。そうすると、末尾呼び出しセクションの終わりにある分岐命令を NOP 命令に最適化できます。
この動作を利用するには、 tailreorder コマンドラインオプションを使用して、ターゲットの直前に末尾呼び出しセクションを移動します。
リンカによって実行される末尾呼び出しの最適化に関する情報を表示するには、--info=tailreorder コマンドラインオプションを使用します。
関連する概念
4.10 NOP に最適化される分岐について
4.12 末尾呼び出しセクションの再順序付けに関する制限
3.6.3 ベニアのタイプ
関連する参考文書
12.71 --info=topic[,topic,…]
12.152 --tailreorder、--no_tailreorder
非機密扱いPDF file icon PDF 版ARM DUI0474LJ
Copyright © 2010-2015 ARM.All rights reserved.