[polly] block generators: fix insertion of values in BBMap
Sebastian Pop
spop at codeaurora.org
Fri May 24 10:21:04 PDT 2013
Tobias Grosser wrote:
> On 05/24/2013 03:09 AM, Will Dietz wrote:
> >The error is likely due to BBMap[Load] being evaluated first (creating
> >a {Load -> uninitialized } entry in the DenseMap), then
> >generateScalarLoad eventually accesses the same element and finds it
> >to be NULL (DenseMap[Old]).. Offhand I'm not sure if this is
> >guaranteed to be NULL or if it's uninitialized and happens to be NULL.
> >
> >The same issue can also go wrong in an even worse way: the second
> >DenseMap access can trigger a rehash and *invalidate* the an earlier
> >evaluated expression (for example LHS of the assignment), leading to a
> >crash when performing the assignment store.
>
Thanks Will for your explanations.
> Hey Will,
>
> this was exactly the explanation I was missing. Thanks a lot.
>
> Sebastian, if this helps you to create or derive a small test case,
I was not able to reproduce this problem in the current tree: you have to check
out a llvm+polly tree from mid April and run the nightly testsuite to get some
benchmarks failing because of this bug. I committed the patch with a long
commit message explaining why we have to pre-compute elements before inserting
them in the map.
Sebastian
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation
More information about the llvm-commits
mailing list