> 由于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 > 中。 但是我還是覺得從 IR 下手驗證編譯器對 C90 語法支援有些奇怪。你不妨在 LLVM 郵件 列表問問 (Clang 比較合適,我想)。Clang 那邊應該會有針對 C90 的測試。或者 GCC 那邊或許也有。這樣的話你只要把那些測試檔拿來給你的編譯器測試即可。 韋任 -- Wei-Ren Chen (陳韋任) 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