Hi,<br><br>In my LLVM IR I am returning a structure from a function but it gave me an assertion failure when I was trying to compile the resulting bitcode.<br><br>Specifically, I had following function definition<br><br><br>
define {i32,i32,i32} @func(i32 a)<br>{<br>.....<br>ret {i32,i32,i32} %retStruct<br>}<br><br><br>llc gave me following assertion failure:<br><br>Return operand#2 has unhandled type i32 in AnalyzeReturn function<br><br>On digging out from LLVM website, I found <br>
<br>"Note that the code generator does not yet fully support large
return values. The specific sizes that are currently supported are
dependent on the target. For integers, on 32-bit targets the limit
is often 64 bits, and on 64-bit targets the limit is often 128 bits.
For aggregate types, the current limits are dependent on the element
types; for example targets are often limited to 2 total integer
elements and 2 total floating-point elements."<br><br>So, does this mean that I can't have a return type with more than two integers? Is there any other way to support longer return structure?<br><br>-- Kapil<br>