steven_wu added a comment.

In D141625#4066466 <https://reviews.llvm.org/D141625#4066466>, @dblaikie wrote:

> In D141625#4066362 <https://reviews.llvm.org/D141625#4066362>, @steven_wu 
> wrote:
>
>> @dblaikie Do you have any objection for committing the patch as it is? I 
>> don't think reverse iteration test is a proper way to test for this specific 
>> bug.
>
> I think reverse iteration is the right way to test this specific bug (& any 
> bug where behavior may be unintentionally nondeterministic due to 
> non-deterministically ordered containers) - it makes the testing more 
> reliable rather than depending on implementation details of such containers 
> that aren't guaranteed (that being the point/problem).
>
> But it's not the worst/most unwieldy test for this sort of thing & if we 
> don't have bots using it... hmm, actually I looked more closely & maybe we do 
> have reverse iteration builders: 
> https://github.com/llvm/llvm-zorg/search?q=reverse-iteration (though I'm 
> having trouble navigating the builder UI to see whether there are up-to-date 
> builds for this configuration)
>
> Could you help me understand your perspective regarding using reverse 
> iteration to test this specific bug? (are there some bugs you find reverse 
> iteration suitable for? what's different about this one from them?)

With reverse iteration, you can make sure that the we didn't iterate over the 
non-deterministic container by checking the ordering of the decls in the 
module, which is fine. But no one really runs that tests regularly.
Without the reverse iteration, the ordering check will always succeed because 
the anonymous decls will be numbered and ordered in the ascending order as 
iteration. It is not easy to decode which decl is which by analyze the output 
of llvm-bcanalyzer. Current test (which is not big at all) will put (80 - 32) 
entries into hash table of smallptrset, thus it kind of triggers the bug near 
100% of the time. I would think the current test is more valuable than a test 
only fail in reverse iteration.

I can add extra file check to make sure all decls are in order, so if you run 
reverse iteration, you will fail before hitting the diff test.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D141625

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to