向LLVM合并的第一个patch

终于向LLVM合并了第一个patch,成就感爆棚,谨以此文纪念一下。

虽然第一个patch只是删了三行注释,跟最初的设想差了十万八千里。

首先贴上patch的地址

这个patch本来是在读代码的过程中,看到一段TODO注释,目测很简单,根据当前代码如法炮制了一段,提交Revision,连benchkmark都没跑,就是这么自(yu)信(chun)。

但是提交之后的好多天,自己标注的reviewers都没来理睬我的patch,我本来都不抱希望了,继续学着用llvm的测试框架test-suite和如何跑PGO测试;大约过了十几天,一天醒来,发现一个熟悉的名字(reviewer的)出现在了邮件的标题中,自己的first patch被review了!当时一下子就精神了。

果不其然,人家还是建议我跑一下benchmark,于是就有了之前那篇关于test-suite的文章。同时review也在回复中指出,在他的测试中,对于inline cost计算变得更加准确后,对于性能的提升并不明显,他的推测是,这些更加准确的cost并没有影响到critically important call sites。这点也在自己跑的SPEC2006 benchmark中得到了印证。同时这点也让我感到很吃惊,有点二八定律的感觉——计算二成的cost来揪出八成的important call sites进行内联。

但是,review很贴心地指出,不管我是冲着TODO做的,甚至是仅仅移除TODO注释,他都会很高兴LGTM。

本着奥卡姆剃刀法则,我选择删掉自己的代码,移除注释。