[llvm-dev] Loads and stores of unsized types?

Sanjoy Das via llvm-dev llvm-dev at lists.llvm.org
Tue May 31 17:50:50 PDT 2016


Patch for review: http://reviews.llvm.org/D20846

On Tue, May 31, 2016 at 5:07 PM, Chandler Carruth <chandlerc at gmail.com> wrote:
> To reiterate what I said on IRC, I agree with David and would expect the
> verifier to reject unsized loads and stores.
>
> On Mon, May 30, 2016 at 4:05 PM Sanjoy Das via llvm-dev
> <llvm-dev at lists.llvm.org> wrote:
>>
>> This came up in D20764, this IR verifies today:
>>
>> %X = type opaque
>>
>> define void @f_0(%X* %ptr) {
>>   %t = load %X, %X* %ptr
>>   ret void
>> }
>>
>> define void @f_1(%X %val, %X* %ptr) {
>>   store %X %val, %X* %ptr
>>   ret void
>> }
>>
>> which I found surprising -- what does it mean to load / store values
>> of unknown sizes?  Passing it to llc fails an assertion.  Are there
>> legitimate cases where we'd want to generate such IR?
>>
>> -- Sanjoy
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev



-- 
Sanjoy Das
http://playingwithpointers.com


More information about the llvm-dev mailing list