[LLVMdev] Intrinsic & address space

Mon Ping Wang monping at apple.com
Tue Mar 10 13:14:32 PDT 2009


They should be working as the binary atomics use that mechanism.   
Whatever frontend is generating the  LLVM IR for the intrinsics needs  
to pass the pointer type to get the correct declaration, e.g.,
   llvm::Intrinsic::getDeclaration(Module, IntrinsicID, Tys, NumTys);

Based on the pointer type, the llvm IR will encode the address space  
into the intrinsic, e.g.,
   $result1 = call i32 @llvm.atomic.load.add.i32.p0i32( i32* %ptr, i32  
4) // address space 0
   $result2 = call i32 @llvm.atomic.load.add.i32.p1i32( i32* %ptr, i32  
4) // address space 1

If no Tys are passed, it will default to address space 0.

-- Mon Ping

On Mar 9, 2009, at 4:42 PM, Luke Dalessandro wrote:

> Julien Schmitt wrote:
>> I would like to use intrinsic with different address space.
>> I defined an intrinsic (used to represent à specific instruction of  
>> my target) with a pointer in its arguments, but when calling this  
>> intrinsic, if the pointer is not in the generic address space (ie  
>> AddrSpace 0), an error occurs ("bad signature").
>>
>> How can I specify the address space in the intrinsic definition ?
>> Thank you.
>
> Julien,
>
> If the type of your parameter is llvm_anyptr_ty it should just work  
> with
> non-default address spaces. I don't immediately see anything actually
> using this type though, so there may be a bug somewhere. I'd verify  
> that
> you have defined the intrinsic and then possibly post more information
> to the list with more details or a test case if it still isn't  
> working.
>
> Luke
>
>>
>>
>> --
>> Julien Schmitt
>>
>>
>> CONFIDENTIAL NOTICE: The contents of this message, including any  
>> attachments, are confidential and are intended solely for the use  
>> of the person or entity to whom the message was addressed. If you  
>> are not the intended recipient of this message, please be advised  
>> that any dissemination, distribution, or use of the contents of  
>> this message is strictly prohibited. If you received this message  
>> in error, please notify the sender. Please also permanently delete  
>> all copies of the original message and any attached documentation.  
>> Thank you.
>>
>> _______________________________________________
>> 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