<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Tue, Aug 29, 2017 at 11:45 AM Grang, Mandeep Singh via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi All,<br>
<br>
I wanted to share a couple of updates on the effort to uncover<br>
non-determinism in LLVM through reverse iteration.<br>
<br>
1. Reverse iteration has now been enabled for DenseMap<br>
(<a href="https://reviews.llvm.org/D35043" rel="noreferrer" target="_blank">https://reviews.llvm.org/D35043</a>)<br>
<br>
2. We have setup a nightly reverse iteration buildbot<br>
(<a href="http://lab.llvm.org:8011/builders/reverse-iteration" rel="noreferrer" target="_blank">http://lab.llvm.org:8011/builders/reverse-iteration</a>).<br>
This builds all LLVM targets with reverse iteration ON and runs ninja<br>
check-all. Currently there are 14 unit test failures. Please feel free<br>
to fix these.<br>
<br>
Also currently, only I receive the nightly email notification for this<br>
buildbot run. My plan is to enable sending the nightly notifications to<br>
llvm-commits once all 14 failures have been resolved.<br>
Please let me know if the community wants the nightly notifications even<br>
with the failures.<br>
As a potential next step, I was thinking about bootstrapping this<br>
reverse iteration LLVM to compile itself. Not sure if it can uncover<br>
more bugs but maybe worth a shot.<br></blockquote><div><br>To uncover bugs in this configuration, I believe you'd want/need a stage2/stage3 comparison which might be a bit tricky/expensive*, something like:<br><br>build clang twice (reverse and forward enabled) then build (in one mode, doesn't matter which I think) clang or other release binaries (or even the whole release) from each of those and compare them bit-for-bit, they should be identical.<br><br>* If you want other developers to act on bugs found, the buildbot needs to have a short blame list (this can be done on a slow buildbot by having multiple slaves/builders running in parallel) but preferably also a short cycle time (so failures are reported soon after they're created) - otherwise expect to do a lot of triage yourself (& possibly leave the emails only going to you - because they'll have too large blame lists/revision ranges and people won't find them actionable) & then probably following up on the specific commit you believe introduced the problem and either fixing it yourself or replying on the commits list to report it to the original contributor.<br> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
All comments/suggestions welcome.<br>
<br>
Thanks,<br>
Mandeep<br>
_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br>
</blockquote></div></div>