[PATCH] `nonnull` argument attribute.
Luqman Aden
me+llvm at luqman.ca
Fri May 9 13:23:08 PDT 2014
ping
On Tue, Apr 22, 2014 at 1:09 PM, Luqman Aden <me+llvm at luqman.ca> wrote:
> ping
>
>
> On Fri, Apr 18, 2014 at 9:12 PM, Philip Reames <listmail at philipreames.com>wrote:
>
>> Good catch. This is a real corner case in the attribute specification.
>> Possibly we should document the distinction somewhere?
>>
>> Which reminds me, we'll need doc changes (LangRef) to describe the new
>> attribute.
>>
>> Philip
>>
>>
>> On 04/17/2014 10:43 PM, Hal Finkel wrote:
>>
>>> ----- Original Message -----
>>>
>>>> From: "Nick Lewycky" <nicholas at mxc.ca>
>>>> To: reviews+D3389+public+a85d4f162cd7a6e0 at reviews.llvm.org
>>>> Cc: llvm-commits at cs.uiuc.edu
>>>> Sent: Thursday, April 17, 2014 10:52:35 PM
>>>> Subject: Re: [PATCH] `nonnull` argument attribute.
>>>>
>>>> Your change to lib/IR/Value.cpp is wrong, a nonnull pointer is not
>>>> necessarily dereferenceable.
>>>>
>>>> %a = inttoptr i32 123456 to i32*
>>>> call void @foo(i32* %a nonnull)
>>>>
>>>> It's nonnull, but not dereferenceable.
>>>>
>>> I'll add that we really should have a dereferenceable attribute, IMHO,
>>> but as Nick said, it needs to be a separate from notnull. I think that for
>>> dereferenceable we'll want to have a more involved discussion because we'll
>>> need to decide if it affects derived pointers, should it have a size
>>> parameter, etc.
>>>
>>> -Hal
>>>
>>> Nick
>>>>
>>>> Luqman Aden wrote:
>>>>
>>>>> Added test.
>>>>>
>>>>> http://reviews.llvm.org/D3389
>>>>>
>>>>> CHANGE SINCE LAST DIFF
>>>>> http://reviews.llvm.org/D3389?vs=8552&id=8553#toc
>>>>>
>>>>> Files:
>>>>> lib/AsmParser/LLToken.h
>>>>> lib/AsmParser/LLParser.cpp
>>>>> lib/AsmParser/LLLexer.cpp
>>>>> lib/Bitcode/Writer/BitcodeWriter.cpp
>>>>> lib/Bitcode/Reader/BitcodeReader.cpp
>>>>> lib/IR/Function.cpp
>>>>> lib/IR/Attributes.cpp
>>>>> lib/Analysis/ValueTracking.cpp
>>>>> test/Bitcode/attributes.ll
>>>>> test/Analysis/BasicAA/nonnull.ll
>>>>> include/llvm/Bitcode/LLVMBitCodes.h
>>>>> include/llvm/IR/Attributes.h
>>>>> include/llvm/IR/Argument.h
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> llvm-commits mailing list
>>>>> llvm-commits at cs.uiuc.edu
>>>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>>>>
>>>> _______________________________________________
>>>> llvm-commits mailing list
>>>> llvm-commits at cs.uiuc.edu
>>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>>>
>>>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140509/d247a0ee/attachment.html>
More information about the llvm-commits
mailing list