Re: [PATCH] D24712: Replace 'isProvablyNonNull' with existing utility llvm::IsKnownNonNull.

2016-09-20 Thread John McCall via cfe-commits
rjmccall accepted this revision. rjmccall added a comment. This revision is now accepted and ready to land. In that case, you probably will not be able to test this difference, because the argument is basically required to be the address of a local variable, a parameter, or null (or a various

Re: [PATCH] D24712: Replace 'isProvablyNonNull' with existing utility llvm::IsKnownNonNull.

2016-09-19 Thread Nick Lewycky via cfe-commits
On 19 September 2016 at 15:58, John McCall wrote: > rjmccall added a comment. > > Actually, that should demonstrate the difference, assuming the LLVM > function looks through selects, since IRGen should generate that as a > select. > It doesn't look past the Value* you hand

Re: [PATCH] D24712: Replace 'isProvablyNonNull' with existing utility llvm::IsKnownNonNull.

2016-09-19 Thread John McCall via cfe-commits
rjmccall added a comment. Oh. One danger with invoking a generic LLVM routine is that they often expect a well-formed function, not something that is plausibly still being emitted. https://reviews.llvm.org/D24712 ___ cfe-commits mailing list

Re: [PATCH] D24712: Replace 'isProvablyNonNull' with existing utility llvm::IsKnownNonNull.

2016-09-19 Thread John McCall via cfe-commits
rjmccall added a comment. Actually, that should demonstrate the difference, assuming the LLVM function looks through selects, since IRGen should generate that as a select. https://reviews.llvm.org/D24712 ___ cfe-commits mailing list

Re: [PATCH] D24712: Replace 'isProvablyNonNull' with existing utility llvm::IsKnownNonNull.

2016-09-19 Thread John McCall via cfe-commits
rjmccall added a comment. The formation restrictions on ARC writeback conversions probably make this more-or-less impossible to test, but I can try to explain when they happen. They happen when you have an argument of type "id __strong *" and pass it as a parameter of type "id __autoreleasing