2016年1月6日水曜日

[gcc, spu] spu版gcc最適化問題(4)

2004年作成

ループ最適化


L11で始まるブロックはループの中にあるブロックです。

以下の情報をループの外で設定することで高速化が可能です。
1. 161行目にあるdestのようなシンボルのアドレス
2. 140,142,148,150 にある chd 等で取り出す、レジスタのバイト位置情報。(sp はこのブロック内で更新されません)

   132 .L18:
   133 brz $23,.L6
   134 il $30,0
   135 hbra .L17,.L11
   136 il $29,0
   137 nop $127
   138 .L11:
   139 ai $28,$sp,32
   140 lqd $24,64($sp)
   141 ai $4,$29,32
   142 chd $25,0($sp)
   143 a $7,$29,$28
   144 chd $20,2($sp)
   145 ai $10,$29,14
   146 lqx $22,$4,$sp
   147 ai $9,$7,6
   148 chd $26,4($sp)
   149 ai $8,$7,4
   150 chd $28,6($sp)
   151 ai $16,$9,14
   152 lqd $27,0($9)
   153 ai $4,$7,2
   154 ai $18,$8,14
   155 ai $17,$4,14
   156 rotqby $13,$22,$10
   157 a $11,$30,$30
   158 ori $21,$17,0
   159 ori $22,$18,0
   160 rotqby $14,$27,$16
   161 ila $23,dest
   162 lqx $12,$11,$31
:
   222 .L17:
   223 brz $16,.L11
   224 ai $sp,$sp,352

0 件のコメント:

コメントを投稿