[LLVMdev] addrspace attribute and intrisics
Mon P Wang
wangmp at apple.com
Mon Jul 7 09:15:25 PDT 2008
Hi,
Though I haven't looked into the implementation details, at the high
level, I personally think having the address space argument is cleaner
than having it encoded as a pointer. The memory barrier places a
barrier on the entire address space. When I see the %ptr11 on the
memory barrier instruction, my first instinct is to that it is a
memory barrier on the region of memory that %ptr11 points to. What
are other people opinions?
-- Mon Ping
On Jul 7, 2008, at 6:36 AM, Benedict Gaster wrote:
> Thanks, I can now see that this can be implemented with Verifier.cpp.
>
> Even with this ability It is unclear that defining llvm.memory.barrier
> with an explicit address space argument is preferred over the
> llvm.memory.fence definition where the addrspace is encoded as part of
> the type as will be the case with the other atomic operations. What do
> you think?
>
> Ben
>
> On 7 Jul 2008, at 13:43, Gordon Henriksen wrote:
>
>> On 2008-07-07, at 05:40, Benedict Gaster wrote:
>>
>>> %r1 = call i32 @llvm.atomic.load.add.p0i32( i32 addrspace(0)*
>>> %ptr0, i32 4)
>>> %r2 = call i32 @llvm.atomic.load.add.p11i32( i32 addrspace(11)*
>>> %ptr11, i32 4)
>>> call void @llvm.memory.barrier(i1 true, i1 true, i1 false, i1
>>> false,
>>> i32 11, i1 false) ; force read-modify-write %ptr11 to complete
>>>
>>> A problem with this approach is that developing a new pass over the
>>> IL that works with address spaces, will have to include knowledge
>>> that for certain operations address space information is encoded as
>>> data rather than as types and in general, it may not be able to
>>> statically determine the particular address space.
>>
>> It's quite possible to restrict an argument to an intrinsic to an
>> immediate constant. See llvm.gcroot for an example.
>>
>> — Gordon
>>
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>
>
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
More information about the llvm-dev
mailing list