[PATCH] D26967: Put opt-viewer critical items in parallel
Adam Nemet via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Jan 20 09:45:27 PST 2017
anemet added a comment.
Thanks for the update, Brian:
In https://reviews.llvm.org/D26967#650414, @bcain wrote:
> In https://reviews.llvm.org/D26967#617705, @anemet wrote:
> > I just sent you an email with the details.
> The differences are limited to the index.html. Most of the differences are inconsequential. I'm trying to explain them one by one and a few more unexplained ones remain, so stay tuned.
There were differences in the source views as well. I just investigated and looks like the remark uniquing is working differently between the serial and parallel -- neither of them being correct.
When we're uniquing the remarks using all_remarks, key does not include the containing function, so if there is no hotness difference between the different functions (inlining contexts) they will get uniqued.
On the other hand, the parallel version only does uniquing within one thread. We do merge all_remarks from each thread but file_remarks at that point could contain duplicates. We should probably unique in merge_dicts?
If you want to see an example of this, diff _Users_adam_proj_org_llvm_build-rel_bin_.._include_c++_v1___functional_base.html between html-orig and html-par from the tarball I sent you. On the very first line we annotate (line 63), there are licm remarks with different inlining contexts on the parallel version but not on the serial one.
More information about the llvm-commits