12.134 --sort=algorithm

出力イメージのセクションの順序を決定するために使用されるソートアルゴリズムを指定します。

構文

--sort= algorithm
algorithm には、以下のいずれかを指定します。
境界整列
アライメント値の昇順で入力セクションをソートします。
AlignmentLexical
入力セクションをアライメント値の昇順でソートし、次に語句順にソートします。
AvgCallDepth
Thumb コードすべてを ARM コードより先にソートしてから、各セクションの近似平均コール深度に従って昇順にソートします。
長分岐ベニアの数を最小限にするには、このアルゴリズムを使用します。

平均コール深度の近似値は入力セクションの順序によって異なります。したがって、このソートアルゴリズムは、例えば RunningDepth を使用するよりも、入力セクションの順序に大きく依存します。
BreadthFirstCallTree
これは、コールツリーをリストに平板化する際に幅優先探索が使用される点を除き、CallTree アルゴリズムと似ています。
CallTree
リンカは、CallTree ソートが有効になっているすべての実行領域のコールツリーを、読み取り専用のコードセクションを含むリストにリスト化します。
このリストのセクションがその実行領域にコピーされた後、読み取り専用以外のすべてのコードセクションが語句順にソートされます。このようにすると、相互を呼び出すセクションが近くに配置されます。

このソートアルゴリズムは、RunningDepth または AvgCallDepth を使用する場合ほど、入力セクションの順序に依存しません。
Lexical
セクション名に従ってソートし、名前が同じ場合は入力順に並べます。
LexicalAlignment
入力セクションを語句順、次にセクション名でソートし、名前が同じ場合には入力順にソートします。
LexicalState
ARM コードの前に Thumb コードをソートし、その後、語句順にソートします。
List
使用可能なソートアルゴリズムをリスト表示します。リンカはリストを表示した後で終了します。
ObjectCode
tiebreaker でコードセクションをソートします。他のすべてのセクションは語句順にソートされます。同じオブジェクトのすべてのセクションをメモリマップ内でグループ化しようとするため、これは --tiebreaker=cmdline とともに使用した場合に最も有用です。
RunningDepth
Thumb コードすべてを ARM コードより先にソートしてから、セクションの実行深度に従って昇順にソートします。セクション S の実行深度は、S を呼び出すすべてのセクションの平均コール深度で、S を呼び出す回数で重みが付けられます。
長分岐ベニアの数を最小限にするには、このアルゴリズムを使用します。

使用法

ソートアルゴリズムは標準的な規則に従って、入力セクションを属性の昇順に配置します。
個々の実行領域のスキャッタファイルでもソートアルゴリズムを指定できます。これを行うには、SORTTYPE キーワードを使用します。

SORTTYPE 実行領域属性により、このオプションで指定するソートアルゴリズムはオーバーライドされます。

デフォルト

デフォルトのアルゴリズムは --sort=Lexical です。大領域モードでは、デフォルトのアルゴリズムは --sort=AvgCallDepth です。
関連する概念
3.3 リンカによるセクションの配置
8.4 実行領域の記述
関連する参考文書
8.4.3 実行領域の属性
12.79 --largeregions、--no_largeregions
12.154 --tiebreaker=option
非機密扱いPDF file icon PDF 版ARM DUI0474LJ
Copyright © 2010-2015 ARM.All rights reserved.