12.152 --tailreorder、--no_tailreorder

可能であれば、末尾呼び出しセクションをターゲットの直前に移動し、セクションの終わりにある分岐命令を最適化します。

使用法

Tail の呼び出しセクションとは、セクションの終わりに分岐命令を含むセクションです。分岐には、セクションの先頭に関数をターゲットとする再配置が含まれている必要があります。

デフォルト

デフォルトは --no_tailreorder です。

制約条件

リンカには以下の制限があります。
  • 移動できるのは、末尾呼び出しターゲット 1 つにつき 1 つの末尾呼び出しセクションのみです。1 つのセクションに対して複数の末尾呼び出しがある場合、同じセクション名の付いた末尾呼び出しセクションがターゲットの前に移動されます。末尾呼び出しセクションで名前が一致するセクション名が見つからない場合、リンカは、最初に検出したセクションを移動します。
  • 末尾呼び出しセクションをその実行領域外に移動できません。
  • 末尾呼び出しセクションをインラインベニアの前には移動しません。
関連する概念
4.11 リンカの末尾呼び出しセクションの再順序付け
4.10 NOP に最適化される分岐について
関連する参考文書
12.18 --branchnop、--no_branchnop
非機密扱いPDF file icon PDF 版ARM DUI0474LJ
Copyright © 2010-2015 ARM.All rights reserved.