[LLVMdev] addrspace attribute and intrisics
Mon P Wang
wangmp at apple.com
Mon Jul 7 14:24:43 PDT 2008
Hi Ben,
Sorry, I didn't read carefully enough your point on a generic memory
fence. I don't like the semantics that the compiler needs to
determine if a pointer has a valid address or not to determine the
semantics of the operation. In your original email, you indicate you
propose another field "barrier" that indicates if the barrier applies
to the entire space that the pointer points to or to the location that
ptr points to, i.e.,
declare void @llvm.memory.fence( i1 <ll>, i1 <ls>, i1 <sl>, i1 <ss>,
i32
addrspace(11)*<ptr>, i1 <device>, i1 barrier )
That would work but I don't particular like it. It seems cleaner if we
could overload the signature such that if given an integer, it treats
it as a barrier for the address space or if we given a pointer, we can
treat it as a barrier to that location.
One question that I have is what are the typical use cases for the
more generic memory barrier. Do current hardware support barrier on a
particular element or do they specify it for a range of addresses?
-- Mon Ping
On Jul 7, 2008, at 12:21 PM, Benedict Gaster wrote:
> I agree that if we intend that the it is always a complete barrier,
> but it is possible for a more general memory fence operation that has
> the ability to place a barrier on the region of memory that %ptr11
> points to but in the case that it does not point to a valid address
> then it is assumed to be a complete barrier for that address space. As
> sum types are not directly support in LLVM, then this semantics has to
> be supported with an additional argument describing which injection,
> i.e. if it is a valid address or not, the type of %ptr11 is passed.
>
> Ben
>
>
> On 7 Jul 2008, at 17:15, Mon P Wang wrote:
>
>> g 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?
>
>
> _______________________________________________
> 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