[PATCH] D128439: [Clang][WIP] Don't call distributeTypeAttrsFromDeclarator() on empty list.
Martin Böhme via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Jun 24 02:18:45 PDT 2022
mboehme added a comment.
In D128439#3607350 <https://reviews.llvm.org/D128439#3607350>, @nikic wrote:
> In D128439#3607289 <https://reviews.llvm.org/D128439#3607289>, @mboehme wrote:
>
>> Just a question for my understanding before I abandon the change: Shouldn't the "instructions" count be relatively resistant to noise? (I was assuming this is based on performance counters? What would cause noise in this metric?)
>
> There are two primary sources of noise. The first is kernel activity, as the `instructions` metric is a combined userspace and kernel metric. I do collect userspace-only as well (this is `instructions:u`).
Ah -- that makes sense.
> On that metric this does look like a small improvement just above the noise floor: http://llvm-compile-time-tracker.com/compare.php?from=8b6f69a4da5baaf3748798a84dd16a2481b7ca7f&to=797ba50f5fd88017925fe765427b1f5f136c3310&stat=instructions:u
So based on that, would you recommend that I un-abandon this revision after all and submit it for review?
> The other is ASLR. If ASLR is disabled, the `instructions:u` measurements become perfectly noise-free. This is actually bad, because a lot of changes will then show statistically significant and perfectly reproducible compile-time changes that are ultimately just down to how exactly the address space gets laid out. So this is intentional noise :)
>
> And yes, execution statistics are collected using `perf`. `callgrind` uses a CPU simulator instead, which is a much more controlled environment...
Thanks for the clarification. I learned a lot about performance measurement from this discussion!
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D128439/new/
https://reviews.llvm.org/D128439
More information about the cfe-commits
mailing list