我已经为LLVM代码生成器后端编写了一个低级优化。基本上,优化将在基本块级别对汇编指令进行重新排序,以允许稍后(现有的)优化更有效地优化结果代码。有许多测试用例我想要验证,我想为测试过程提供一些建议,因为这是我第一次尝试这样的事情。
到目前为止我考虑过的事情:
-S选项生成的结果。我已经做到了这一点,并将优化后的结果与原始结果进行了比较。这种方法允许我看到我的优化是有效的,但即使我写了自定义的不可执行的C文件,我也不能检查所有我想要的指令顺序测试用例。在验证底层的编译器优化时,测试特定的ASM测试用例的好策略是什么? LLVM (或gcc)有没有一些命令行选项可以让这个过程变得更容易?
编辑:为了澄清,我不是要求自动生成ASM测试用例;我的问题是我有那些测试用例(例如,ASM_before.s和reference_ASM_after.s),但我需要能够将ASM_before.s传递到LLVM中,并确保优化的输出ASM_after.s与已知良好的reference_ASM_after.s匹配。我正在寻找一种方法来做到这一点,而不必将ASM_before.s“反编译”成一种高级语言,然后(通过优化)将其编译成ASM_after.s。
https://stackoverflow.com/questions/6084052
复制相似问题