在 2012年8月22日 下午6:26,???f任 (Wei-Ren Chen) <chenwj@xxxxxxxxxxxxxx> 写道: >> 我现在对test-suite的理解,是tester将代码编译后执行,然后比对输出结果以及统计编译/执行信息。 >> 如果是这样的话,在平台开发工具(如汇编器、链接器)不完整的情况下,test-suite就不能正常使用。 >> 此外,test-suite目前支持的功能中不包括对cross-developing tools进行测试。 >> 以上的认识是否正确? > > Clang 底下的?y??基本上是 c 或是 cpp ?n,?y???n?_?^可能是, > > // RUN: %clang_cc1 -fsyntax-only -verify %s -std=c++11 > > ?@就代表?\行?y??的?r候,???{用 clang ???g?@些?y???n。 > > LLVM 底下的?y??基本上是 ll ?n,?y???n?_?^可能是, > > ; RUN: opt < %s -basicaa -gvn -instcombine -S | grep DONOTREMOVE > > ?@就代表?\行?y??的?r候,???{用 opt ???g ll ?n。比?Φ牟糠郑?你必??在 > ?y???n?e面????似以下的?]解: > > define i32 @test1(i32 inreg %a) nounwind { > %b = add i32 %a, 128 > ret i32 %b > ; X32: subl $-128, %eax > ; X64: subl $-128, > } > > ; 後面接的部分就是你?A期 LLVM 最後生成的指令????是什?N,LLVM > ?y??的工具???湍惚??Α_@?涌???????是不需要汇编器和链接器,比如?f > 你在 x86 上跑 mips 的?y??,????也不需要 mips 的工具??。我不?_定 > 你?f的 "不包括对cross-developing tools进行测试" 是什?N意思,我猜 > 你是?f用 clang 做交叉???g,在看其?Y果正?_?c否。?@部分就我所知, > ????是不支持,我?]???^也?]看?^有人?@?N做。 我指的确是“交叉编译”。看起来test-suite应该是还不支持。 > >> 在LLVM_SRC/test/CodeGen下有一系列以IR文件为起点、针对各种后端的测试,类似的测试在test-suite中好像没有。 >> >> 我们现在想要测试后端对于C90特性的支持程度,但不想深入LLVM IR的细节,因为支持C90的话只需要部分IR。 >> 一个自然的做法是在一个测试例子中实现C --> IR --> .s,所以需要一个benchmark可以覆盖全部C90的特性。 >> 我不太确定这种测试方法对于LLVM的后端是否妥当,你有什么建议吗? >> 如果可行的话,有什么功能覆盖较完整的benchmark推荐? > > ?ΑD闼坪???的是 test suite 而非 LLVM/Clang 源?a底下的 test 目??。:) > 那我再回答你前一?????},是的,我目前只知道你必??用本地??好的 LLVM/Clang > 去???g?@些 test suite,我?]看?^有人?L??用 clang 交叉???g?@些 test > suite。test suite 基本上是用?碓u估新版 LLVM/Clang ???g所得?绦??n,其 > 效能是否比前一版差。 > > ?槭颤N你是?y??後端?? C90 的支持程度,不是????要?y?? clang ??? 你可以 > 解??一下?槭颤N要?y??后端? 由于llvm IR在整个工程中的核心角色,clang前端对C family languages的支持程度的测试 是通过将C程序编译成IR实现的;而对后端的测试是通过将IR编程成目标汇编语言实现的。 所以目前测试后端的自然做法是以IR为出发点,在源码的test/CodeGen/中使用的是这条思路。 我们现在想测试一个C90编译器后端的完善程度,有两点原因使我觉得应该以C程序为出发点: 1. clang编译C90程序不需要用到全部的IR指令和数据类型。 2. 暂不想了解IR过多的细节,可能比较耗费时间。 这样做的话,可以比较快地发现暂不支持的C语言特性,如某些数据类型、运算符、寻址方式。 以C程序为出发点的后端测试方式写在 http://llvm.1065342.n5.nabble.com/How-to-write-a-regression-test-case-td48211.html 中。 > > ?f任 > > P.S. 我看你在 LLVM ML 很活?S,最近看到很多中??人在上面?l信。不?e。:) 大家积极参与,是个好现象。我是正好在处理类似的问题,所以了解一点。 > > -- > Wei-Ren Chen (???f任) > Computer Systems Lab, Institute of Information Science, > Academia Sinica, Taiwan (R.O.C.) > Tel:886-2-2788-3799 #1667 > Homepage: http://people.cs.nctu.edu.tw/~chenwj > -- 杨勇勇 (Yang Yongyong)