steakhal wrote:

I think `annotate` is the right way. That's right.
I was looking at the implementation and this looks really expensive. Probing 
the array each byte, creating a new State just to then throw it away. It also 
scales with the size of the array we are probing (albeit capped).
I think what we should do instead is use the `iterBindings` and enumerate the 
probably much fewer bindings we have to that array. Then check if any of those 
direct bindings is zero.

It's an open question how to handle default bindings though. (for instance, 
when the array was zeroed using `memset`) Because that would be represented by 
binding a default zero to the whole array - but I'll let you explore this 
direction.

This way no more work is done than necessary.

PS: Sorry for my late (very late) reply. I only got to this now.

https://github.com/llvm/llvm-project/pull/188128
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to