我正在爲LLVM編譯器開發一個新的後端。後端很好地進入,但我到達了一個點,我想驗證代碼生成器是否正常運行。我有一個非常準確的處理器模擬器,我想用它來驗證。編譯器代碼生成器驗證
使用LLVM-lit對我來說似乎不是一個好選擇,因爲在測試過程中無法集成模擬器。
目前我的測試策略涉及編寫測試程序,我嘗試檢查儘可能多的語句。以下是檢查算術的一個例子。
c = a + a;
if (c != 6) return 4;
c = a + a + a;
if (c != 9) return 5;
// etc
我已經注意到很難找到儘可能多的角落案例。
這是驗證代碼生成器的智能方法嗎?如果是這樣,是否有人知道包含這些測試的預先存在的項目?
看看這個方法(Csmith):http://www.cs.utah.edu/~regehr/papers/pldi11-preprint.pdf –