最適化バリアの挿入のためのコンパイラ組み込み関数

コンパイラでは、命令の順序変更や演算の結合など、さまざまな最適化を実行できます。メモリが複数のプロセッサから同時にアクセスされるシテムレベルのプログラミングのように、命令の順序変更を無効にしてメモリを強制的に更新することが必要になる場合もあります。

最適化バリアコンパイラ組み込み関数 __schedule_barrier__force_stores、および __memory_changed では、コードは生成されませんが、コードサイズがわずかに増加し、追加のメモリアクセスが生じる場合があります。

Note

システムによっては、メモリバリアコンパイラ組み込み関数を使用しても、メモリの整合性を確保できないことがあります。例えば、__memory_changed コンパイラ組み込み関数を使用すると、レジスタで保持されている値がメモリに書き出されますが、データの書き込み先がバッファ可能な領域にある場合、データが書き込みバッファで待機することがあります。この場合、CP15 にデータを書き込むか、メモリバリア命令を使用して書き込みッファをドレインする必要もあります。詳細については、お使いの ARM プロセッサのテクニカルリファレンスマニュアルを参照して下さい。

Show/hide関連項目

参照
その他の情報

該当する ARM プロセッサの『テクニカルリファレンスマニュアル』

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0472EJ
Non-ConfidentialID081711