A Fuzzer for the Toy Optimizer
3 months ago
- #fuzzing
- #program-correctness
- #optimization
- 优化器难以正确实现,常常遗漏边界情况。
- 开发了模糊测试工具来自动捕捉优化器中的错误,需要正确性预言机来检测有意义的问题。
- 通过API生成随机程序,使用加载、存储和逃逸等操作模拟真实场景。
- 验证器通过比较优化前后程序在不同别名条件下的堆状态来检查不变性。
- 解释器追踪堆状态和逃逸值以确保优化后程序的正确性。
- 测试表明优化器能正确处理先前发现的错误场景,证明了其鲁棒性。
- 注释掉关键优化逻辑后迅速暴露错误,验证了模糊测试工具识别问题的有效性。
- 反馈显示对于分配移除等优化,可能需要调整等价性定义。