CompilerDev 板


LINE

最近自己写了优化演算法, 不过是针对特定情况的 pattern 才会进行优化。 然而我知道 compiler 会有 Phase Ordering Problem, 我想测定应用了我的优化演算法的 O1、O2、O3 与原本的 O1、O2、O3 跑在一个公信的 benchmark 上会不会有问题 (理论上不会,除非 benchmark 的 cases 有符合我的 pattern) 目前是锁定使用 LLVM 的 test-suite 这个专案, 不过我研究半天,他有几个问题似乎不太符合我的需求: 1. Build 很久 2. 跑很久:大多数的 cases 应该都不会符合我的 pattern,也就是说与原本的 O1、O2、O3 无异, 但却还是要跑一次,我在想有没有办法能够去 diff LLVM IR 3. 我每一次修正我的优化器似乎都要 Build 一次: 这部分不知道是不是我有误会,我认为他是用 llvm 去编译 cases,再去运行跑分, 所以只要我优化器有做变动,是不是就要整个重新build? 打到这边我突然想到 他似乎是利用 llvm-lit 去做 testing 的,所以理论上我优化器重新 build 後, 不用重新build test-suite 直接用 llvm-lit 跑就可以得到重新编译後的优化器效能? 我对 llvm-lit 这块没有研究很透彻,还请大家多多解答、讨论 另外,这边在编译 test-suite 的时候有遇到问题,这边跟大家分享一下解法 照着官方文件(https://llvm.org/docs/TestSuiteGuide.html)去 cmake 时, 会有某个程式码片段 for (auto _:status)会出错,原因是他居然没有用 -std=c++11 这个 flag 去编译 分享一下我 cmake 法: 首先,先创建要 build 的资料夹 mkdir test-suite-build 之後参考文件+版主说的 Ninja(真的快很多) cd test-suite-build # 先到 build 的资料夹 cmake -G Ninja \ -DCMAKE_C_COMPILER=<llvm-project-path>/build/bin/clang \ -DCMAKE_CXX_COMPILER=<llvm-project-path>/build/bin/clang++ \ -DCMAKE_CXX_FLAG="-std=c++11" \ -C../test-suite/cmake/caches/O3.cmake \ ../test-suite 快速使用就直接 cd test-suite-build llvm-lit -v -j 1 -o results.json . 开始进行 benchmark,太久的话可以去挑选资料夹,如 llvm-lit -v -j 1 -o result.json MicroBenchmarks 若我要比较两个优化器的优缺与否,应该会是这样做(?): <path-to-old-llvm-project>/build/bin/llvm-lit -v -j 1 -o original.json . 得到原本优化器的跑分 接下来 <path-to-new-llvm-project>/build/bin/llvm-lit -v -j 1 -o new.josn . 得到两份 json 档,再利用 compare.py 去比较跑分 test-suite/utils/compare.py original.json new.json 应该会是这样做,不确定正确与否,欢迎讨论! --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.141.111.59 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/CompilerDev/M.1647277863.A.285.html
1F:推 jerry0715no1: lit -j1当然慢啊 开多一点吧 03/16 08:44
可是要去测试,不是应该开一个 thread 吗? 否则,开越多好像只是测到平行化程度(? 我其实不太知道如果要测试 compiler compile 出来的程式码品质如何 要开几个 core 才好 ※ 编辑: shane87123 (118.160.253.115 台湾), 03/20/2022 12:29:26
2F:推 akasan: lit 只是跑测试的小工具而已,每次编译器有修改都要重新 b 03/20 17:05
3F:→ akasan: uild llvm testsuite 没错 03/20 17:05
4F:→ Lipraxde: 看很久没看出来到底是要跑测试还是跑 benchmark 03/22 12:48







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Boy-Girl站内搜寻

TOP