DFIを基盤とした高速な静的解析ツールを開発中

2026年10月9日

BreakAIは、DFIを基盤としたC/C++向け静的解析ツールを開発中です。関数をまたぐ値フロー解析を活用し、MISRAに関わるチェックなどの検出能力を維持しながら、Coverityを上回る解析速度を目指しています。

DFIによる解析基盤

DFI(Interprocedural Value-Flow Analysis Framework)は、変数やメモリー上の値が、代入・読み取り・関数呼び出しを通じてどこへ伝わるかを調べる解析基盤です。LLVMの中間表現(IR)を拡張してポインターの別名関係を表現し、値の伝播をグラフの到達可能性として扱います。SSAの定義・使用関係を逆向きに処理する設計により、木構造を活用した効率的な到達可能性の判定を可能にしています。

この基盤の上に、ポインターが指すデータへの書き込み、初期化前の読み取り、ローカル変数のアドレスの流出などを調べるチェックを開発していきます。値フローだけでは判断できない規則については、経路条件やオブジェクトの寿命などの推論を組み合わせる方針です。

高速化の目標と検証

差分解析に頼らず、同じコード全体を同等の検出能力・同等のハードウェアで解析する条件のもと、100倍以上の高速化を研究目標としています。解析結果に影響しない計算や、呼び出しごとに繰り返される処理を減らす設計を検討しています。

DFIの研究成果は、MISRA一式やCoverityとの同等能力での比較を実証したものではありません。100倍以上という数値も当社の達成実績ではなく、今後、対象のチェックごとに見逃し・誤検出と解析時間を比較し、解析エンジンと全工程の性能をそれぞれ検証していきます。