[PATCH] D140210: [IPSCCP] Enable specialization of functions.

Alexandros Lamprineas via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 21 06:53:10 PST 2022


labrinea added a comment.

In D140210#4007589 <https://reviews.llvm.org/D140210#4007589>, @SjoerdMeijer wrote:

> In D140210#4004921 <https://reviews.llvm.org/D140210#4004921>, @labrinea wrote:
>
>> In D140210#4001148 <https://reviews.llvm.org/D140210#4001148>, @SjoerdMeijer wrote:
>>
>>> Great stuff, and impressive numbers, I think they look really good.
>>>
>>> CTMark compile time numbers look really good. I was thinking if we could at least add one more data point: timed compilation of LLVM. I would be interested in both the instruction count increase, like you reported for CTMark, but also in absolute timings just to get an idea. And you built Chromium for correctness testing (nice!), did you get any compile time numbers while doing that exercise?
>>
>> I have measured the time spent on the IPSCCP pass itself (user+system time) during linking using the `-time-passes` option on lld. On my x86 machine with `O3` and `Full LTO` the Geomean of CTMark goes from ~152ms to ~174ms resulting +14.47% increase (average of five best runs). Regarding the Chromium build, no I haven't measured compilation times.
>
> When I looked into this, I found that the increase in compile-times wasn't caused by the function specialization pass itself, the time spent in there was negligible, but the extra went into the the subsequent passes having to work more and harder. So I don't think measuring the time spent in IPSCCP is the right metric we want to be using, although I agree of course it is interesting to see if there's not something very expensive going on. The instruction count that you used for CTMark is a much better metric. In my first comment I was curious how that would look like for one more data point, timed LLVM compilation, and also how that translate to time just out of curiousity.

I've measured user + system time (average of five runs) and the results are inconclusive: baseline 42663.2s vs patch 42657.1s (delta -0.014%). The experiment was to build LLVM using the patched compiler/linker with LTO as requested. It doesn't seem like a useful metric to me, but now I've checked it off my list :)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D140210/new/

https://reviews.llvm.org/D140210



More information about the llvm-commits mailing list