本研究では,質問伝播に基づいた要求駆動型スカラ置換を提案する.スカラ置換とは,ループの繰返しを越えて冗長となる配列参照をレジスタ参照に変更するコンパイラのコード最適化の1つの手法である.本手法は,制御フローグラフ上で質問伝播を用いて1つの繰返しの中で冗長性を調べる要求駆動型部分冗長除去を,異なる繰返しでの冗長性を調べるように拡張する.本手法の質問伝播は,1回前の繰返しにおける冗長性を解析するために,配列の添字の変数を定義している文が出現したとき,添字の変数を文の右辺の式で置き換える.また,2回以上の繰返しの後に同じメモリ番地にアクセスする配列参照を除去するために,あらかじめ可約なループに対してループ展開を適用する.本手法の効果を確かめるために,SPEC2000ベンチマークのプログラムに本手法を適用したところ,スカラ置換の従来法と比べてプログラムの実行効率を最大で約2.3%向上することを確認した.