LLVM コンパイラの新しいバックエンドに取り組んでいます。バックエンドは順調に進んでいますが、コードジェネレーターが正しく動作しているかどうかを確認したいところまで来ています。非常に正確で、検証に使用したいプロセッサー・シミュレーターを入手しました。
LLVM-lit を使用することは、テスト プロセスにシミュレーターを統合する方法がないため、私にとっては良い選択肢ではないようです。
現在、私のテスト戦略には、できるだけ多くのステートメントをチェックしようとするテスト プログラムの作成が含まれます。以下は、算術チェックの例です。
c = a + a;
if (c != 6) return 4;
c = a + a + a;
if (c != 9) return 5;
// etc
できるだけ多くのコーナーケースを見つけるのが難しいことはすでに気づいています。
これは codegenerator を検証するスマートな方法ですか? もしそうなら、この種のテストを含む既存のプロジェクトを知っている人はいますか?