MaskRay wrote:

Due to ASLR and malloc non-determinism, `DenseMap<A *, X>` already introduces a 
lot of non-determinism to release builds.
`DenseMap<StringRef, X>` issues are less pronounced compared with `DenseMap<A 
*, X>`.

> I'm a little concerned that doing this in release builds is going to lead to 
> weird bug reports

I understand the concern. If we receive 10 weird bug reports root caused to 
`DenseMap<A *, X>`,
the number of `DenseMap<StringRef, X>` bug reports might just be 1.

---

The next step is to make integer type keys (e.g. `DenseMap<uint64_t, X>`) 
non-deterministic.
IIRC the recent uint64_t getHashKey changes does not require any test update.
The number of `DenseMap<integer, X>` bug reports might be small.

As my previous comment says:

> we could consider restrict the nondeterminism to LLVM_ENABLE_ASSERTIONS=on.

but I haven't found it necessary.

https://github.com/llvm/llvm-project/pull/96282
_______________________________________________
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to