[llvm-commits] [llvm] r86748 - in /llvm/trunk: include/llvm/Analysis/ include/llvm/CodeGen/ include/llvm/Transforms/Utils/ lib/Analysis/ lib/CodeGen/AsmPrinter/ lib/CodeGen/SelectionDAG/ lib/Transforms/Utils/
Nick Lewycky
nicholas at mxc.ca
Wed Mar 10 21:52:35 PST 2010
Devang Patel wrote:
>
>>>> Thanks. Is there a test for this ordering stability?
>>>
>>> You mean test to reason why we use list instead of map because of ordering requirement ?
>>
>> I'm not exactly sure how to parse that question, so sorry if this
>> isn't an appropriate answer, but I mean something under either test/
>> or unittests/ that would fail if anyone removed the list or used the
>> map where they should have used the list. For example, it could llc a
>> file with several scopes and CHECK that the DW_whatevers appeared in a
>> particular order. That would overspecify the requirement, I think, and
>> so would need to be updated any time the logic changed, but it would
>> fail if the output order depended on anything but the input.
>
> No there is no such test. Such test would check retrieving objects from a pointers' map is not deterministic.
No, you've mentally placed the test at the wrong level. Obviously map
iteration isn't deterministic while list iteration is, but what a test
would test for is a change in behaviour of your map/list-using code.
Did the non-determinstic behaviour of map cause any bugs in debug
emission? If so then that's what you would test for. The test should be
something that uses the debug emission and passes when you use list but
fails if you were to roll back to using a map.
On the other hand, if this is just a precautionary change to remove any
chance of non-determinism, and you don't know that it made any
externally-visible difference then I should think it'd be fine to pass
on writing a test for that!
Nick
And there are tons of places where llvm code base is careful, by using
appropriate data structure, to not introduce nondeterministic behavior.
llvm-gcc bootstrap is very sensitive about such things and every one
dreads bootstrap failures due to miscompare!
>
> -
> Devang
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
More information about the llvm-commits
mailing list