nikic added a comment.

In D134410#3894995 <https://reviews.llvm.org/D134410#3894995>, @nlopes wrote:

> We wanted this patch to make us switch uninitialized loads to poison at will, 
> since they become UB. In practice, this helps us fixing bugs in SROA and etc 
> without perf degradation.

Can you elaborate on this? I don't see how this is necessary for switching 
uninitialized loads to poison.

> As long as ubsan/valgrind can detect these uninitialized loads, I think we 
> should be ok to deploy this change.

Valgrind cannot detect uninitialized loads, it only detects branching on 
uninitialized data. Valgrind works on the assembly level, and as such does not 
have the necessary information to tell whether a mov of uninitialized data is 
problematic or not.

The only sanitizer that can detect this is msan (with the patch referenced 
above), which is incidentally also the sanitizer that sees the least use in 
practice, because it is much harder to deploy than ubsan and asan.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D134410

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

Reply via email to