<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
<div class="">Hi,</div>
<div class=""><br class="">
</div>
<div class="">At the last EuroLLVM, I gave a lightning talk about code review</div>
<div class="">statistics on Phabricator reviews and what we could derive from that</div>
<div class="">to try and reduce waiting-for-review bottlenecks. (see</div>
<div class=""><a href="https://llvm.org/devmtg/2018-04/talks.html#Lightning_2" class="">https://llvm.org/devmtg/2018-04/talks.html#Lightning_2</a>).</div>
<div class=""><br class="">
</div>
<div class="">One of the items I pointed to is a script we've been using internally</div>
<div class="">for a little while to try and match open Phabricator reviews to people</div>
<div class="">who might be able to review them well. I received quite a few requests</div>
<div class="">to share that script, so I've decided to do so, see <a href="https://reviews.llvm.org/D46192" class="">https://reviews.llvm.org/D46192</a>.</div>
<div class=""><br class="">
</div>
<div class="">The script uses 2 similar heuristics to try and match open reviews with</div>
<div class="">potential reviewers:</div>
<div class=""><br class="">
</div>
<div class="">- If there is overlap between the lines of code touched by the</div>
<div class="">  patch-under-review and lines of code that a person has written, that</div>
<div class="">  person may be a good reviewer.</div>
<div class="">- If there is overlap between the files touched by the patch-under-review</div>
<div class="">  and the source files that a person has made changes to, that person may</div>
<div class="">  be a good reviewer.</div>
<div class=""><br class="">
</div>
<div class="">The script provides a percentage for each of the above heuristics and</div>
<div class="">emails a summary. For example, this morning, I received the following</div>
<div class="">summary from the script in my inbox for patches-under-review where some</div>
<div class="">change was made in the past 24 hours:</div>
<div class=""><br class="">
</div>
<div class="">SUMMARY FOR <a href="mailto:kristof.beyls@arm.com" class="">kristof.beyls@arm.com</a> (found 8 reviews):</div>
<div class="">[3.37%/41.67%] <a href="https://reviews.llvm.org/D46018" class="">https://reviews.llvm.org/D46018</a> '[GlobalISel][IRTranslator] Split aggregates during IR translation' by Amara Emerson</div>
<div class="">[0.00%/100.00%] <a href="https://reviews.llvm.org/D46111" class="">
https://reviews.llvm.org/D46111</a> '[ARM] Enable misched for R52.' by Dave Green</div>
<div class="">[0.00%/50.00%] <a href="https://reviews.llvm.org/D45770" class="">https://reviews.llvm.org/D45770</a> '[AArch64] Disable spill slot scavenging when stack realignment required.' by Paul Walker</div>
<div class="">[0.00%/40.00%] <a href="https://reviews.llvm.org/D42759" class="">https://reviews.llvm.org/D42759</a> '[CGP] Split large data structres to sink more GEPs' by Haicheng Wu</div>
<div class="">[0.00%/25.00%] <a href="https://reviews.llvm.org/D45189" class="">https://reviews.llvm.org/D45189</a> '[MachineOutliner][AArch64] Keep track of functions that use a red zone in AArch64MachineFunctionInfo and use that instead of checking for noredzone
 in the MachineOutliner' by Jessica Paquette</div>
<div class="">[0.00%/25.00%] <a href="https://reviews.llvm.org/D46107" class="">https://reviews.llvm.org/D46107</a> '[AArch64] Codegen for v8.2A dot product intrinsics' by Oliver Stannard</div>
<div class="">[0.00%/12.50%] <a href="https://reviews.llvm.org/D45541" class="">https://reviews.llvm.org/D45541</a> '[globalisel] Update GlobalISel emitter to match new representation of extending loads' by Daniel Sanders</div>
<div class="">[0.00%/6.25%] <a href="https://reviews.llvm.org/D44386" class="">https://reviews.llvm.org/D44386</a> '[x86] Introduce the pconfig/enclv instructions' by Gabor Buella</div>
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
<div class="">The first percentage in square brackers is the percentage of lines in</div>
<div class="">the patch-under-review that changes lines that I wrote. The second</div>
<div class="">percentage is the percentage of files that I made at least some</div>
<div class="">changes to out of all of the files touched by the patch-under-review.</div>
<div class=""><br class="">
</div>
<div class="">Both the script and the heuristics are far from perfect, but I've</div>
<div class="">heard positive feedback from the few colleagues my script has been</div>
<div class="">sending a summary to every day - hearing that this does help them to</div>
<div class="">quickly find patches-under-review they can help to review.</div>
<div class=""><br class="">
</div>
<div class="">Some more details are at <a href="https://reviews.llvm.org/D46192" class="">https://reviews.llvm.org/D46192</a>.</div>
<div class=""><br class="">
</div>
<div class="">I hope that by sharing this, more and better ideas will arise to</div>
<div class="">automatically match open reviews with people able to review them.</div>
<div class=""><br class="">
</div>
<div class="">Thanks,</div>
<div class=""><br class="">
</div>
<div class="">Kristof</div>
<div class=""><br class="">
</div>
</body>
</html>