Extending Intrinsic Functions

Hi all,

A question about Intrinsic functions and their properties. I am trying some extensions with Intrinsic functions. The intrinsic function takes a pointer as argument and transforms the pointer into another one and returns it. It does not read or write memory. The Intrinsic has properties: IntrNoMem. Is there any other property I can specify for the intrinsic function such as idempotent? Looking into the code, these are the properties: IntrNoMem, IntrReadArgMem, IntrReadMem, IntrReadWriteArgMem, Commutative and NoCapture. Only IntrNoMem applies to the intrinsic function. Also, what optimizations might be affected by an intrinsic function that only transforms a pointer? Is there a way to pass more information so that LLVM can do even more optimizations?

Thanks a lot in advance.