首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >测试代码生成器优化

测试代码生成器优化
EN

Stack Overflow用户
提问于 2011-05-22 03:48:40
回答 2查看 902关注 0票数 19

我已经为LLVM代码生成器后端编写了一个低级优化。基本上,优化将在基本块级别对汇编指令进行重新排序,以允许稍后(现有的)优化更有效地优化结果代码。有许多测试用例我想要验证,我想为测试过程提供一些建议,因为这是我第一次尝试这样的事情。

到目前为止我考虑过的事情:

  1. 编译用C编写的基准测试程序,并检查使用-S选项生成的结果。我已经做到了这一点,并将优化后的结果与原始结果进行了比较。这种方法允许我看到我的优化是有效的,但即使我写了自定义的不可执行的C文件,我也不能检查所有我想要的指令顺序测试用例。
  2. 将基准编译到LLVM程序集,编辑它,然后将ASM降低到目标机器程序集。这可能是可行的,但由于LLVM和目标ASM之间的抽象级别不同,我怀疑我是否能够通过在LLVM ASM上进行黑客攻击来检查所有的测试用例,直到它生成我想要的东西。
  3. 使用目标ASM测试用例作为LLVM的输入,并使用新的优化重新编译。我找不到一个选项让LLVM或gcc (他们的大多数选项LLVM都接受)接受ASM作为输入。

在验证底层的编译器优化时,测试特定的ASM测试用例的好策略是什么? LLVM (或gcc)有没有一些命令行选项可以让这个过程变得更容易?

编辑:为了澄清,我不是要求自动生成ASM测试用例;我的问题是我有那些测试用例(例如,ASM_before.sreference_ASM_after.s),但我需要能够将ASM_before.s传递到LLVM中,并确保优化的输出ASM_after.s与已知良好的reference_ASM_after.s匹配。我正在寻找一种方法来做到这一点,而不必将ASM_before.s“反编译”成一种高级语言,然后(通过优化)将其编译成ASM_after.s

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6084052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档