2006年11月29日
XML
カテゴリ: カテゴリ未分類
Real-Time Collision Detection という本を読んでいます。
http://www.realtimecollisiondetection.net/

13.6 Aliasing

エイリアシング。

int n;
int*p1 = &n;
int*p2 = &n;

のようなとき p1, p2 の両方が変数 n のエイリアスとなります。コンパイラが2つのポインタがお互いにエイリアスであることを推論できなかった場合に最適化を妨げる可能性があります。コードの中に不必要なロード命令が残りコードと関数のスタックフレームの両方が膨張してしまいます。

ここではポインタを2つ渡してマトリックス演算を行うような例が挙げられています。引数をそのまま使う場合はエイリアスの可能性があるのでロード命令を複数回行うことになります。回避例として入力引数を関数内の自動変数にコピーして使う例が挙げられています。これでエイリアシングの問題を避けることができてレジスタの多いプロセッサの場合はすべてがレジスタに乗り高速に演算できます。







お気に入りの記事を「いいね!」で応援しよう

最終更新日  2006年11月30日 23時58分12秒
コメント(0) | コメントを書く


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

PR

×

キーワードサーチ

▼キーワード検索

プロフィール

大鳥居.

大鳥居.

コメント新着

ペット総合サイト @ アクセス記録ソフト 無料 楽天 アクセス記録ソフト! http:/…
ペット総合サイト @ アクセス記録ソフト 無料 楽天 アクセス記録ソフト! http:/…
海のくまさん@ チン型取られちゃったw http://onaona.mogmog55.net/n89gjyj/ 俺…
ドライブ好き@ 風呂入るのメンドクサイ! http://feti.findeath.net/3b153ak/ 今日…
開放感@ 最近の大学生は凄いんですね。。 竿も玉もア○ルも全部隅々まで見られてガ…

© Rakuten Group, Inc.
Design a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: