[cfe-dev] identifying return type for llvm.umul.with.overflow.i32

Pankaj Gode godepankaj at yahoo.com
Tue Apr 9 05:24:09 PDT 2013

Hi All,

For a piece of code I get 'overflow' intrinsic generated by clang. 

//C++ code

jap = new just_another[i]; 

//clang generated code.
%1 = call { i32, i1 } @llvm.umul.with.overflow.i32(i32 %0, i32 28), !dbg !46 

The 'return type' for this intrinsic is '{i32, i1}'. Unfortunately, the architecture description does not allow me to have a 'such aggregate type' as 'return type' for a function. 

For 'non-supported return types', we return them as 'indirect', which results in generating this as a function argument.  Such cases are handled in <myarch>ABIInfo class, in overridden function 'classifyReturnType()'.

I am not sure about handling such 'return types' for intrinsic call. What should be the classification of such return type ? 

Thanks & Regards,

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20130409/7a6a16dc/attachment.html>

More information about the cfe-dev mailing list