Related to the LLVM Intrinsic functions.

Hello,

I have a need to change the parameter type of llvm.lifetime.start/end
intrinsic functions to get other defined type, but i do not want to replace
the current definition of the intrinsic function with the new definition. Is
there a way, to do such things for a specific target?
If the only way to do this is to create a separate file for my target and
write there a target specific definitions then I would appreciate if someone
could describe me how I have to overload the existing intrinsic functions
and how the compiler will differentiate which one to use?

Thanks,
Arsen

Arsen Hakobyan wrote:

Hello,

I have a need to change the parameter type of llvm.lifetime.start/end
intrinsic functions to get other defined type, but i do not want to replace
the current definition of the intrinsic function with the new definition. Is
there a way, to do such things for a specific target?
If the only way to do this is to create a separate file for my target and
write there a target specific definitions then I would appreciate if someone
could describe me how I have to overload the existing intrinsic functions
and how the compiler will differentiate which one to use?

The intent is that you have a bitcast to i8* then pass that into llvm.lifetime.start/end, thus removing the need to do everything else you were just asking questions about. Is there any reason why this doesn't work?

Nick

Thank you Nick.