diff options
author | Dan Gohman <gohman@apple.com> | 2009-01-24 15:58:40 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2009-01-24 15:58:40 +0000 |
commit | d8791e5ed702a5f11ef27ff8e40e78aa2dbee1de (patch) | |
tree | 334bd0bba1a9a18368a1a81c70a828800b8e3bab | |
parent | 629e92b63b91aedfc8fc961b01ae53a1e6c1739f (diff) |
Add more documentation mentioning the limitations due to PR2660.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62919 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | docs/LangRef.html | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/docs/LangRef.html b/docs/LangRef.html index f2d7d8d168..35f83b48d4 100644 --- a/docs/LangRef.html +++ b/docs/LangRef.html @@ -1344,6 +1344,13 @@ value.</p> </tr> </tbody> </table> + +<p>Note that the code generator does not yet support large integer types +to be used as function return types. The specific limit on how large a +return type the code generator can currently handle is target-dependent; +currently it's often 64 bits for 32-bit targets and 128 bits for 64-bit +targets.</p> + </div> <!-- _______________________________________________________________________ --> @@ -1404,6 +1411,11 @@ As a special case, however, zero length arrays are recognized to be variable length. This allows implementation of 'pascal style arrays' with the LLVM type "{ i32, [0 x float]}", for example.</p> +<p>Note that the code generator does not yet support large aggregate types +to be used as function return types. The specific limit on how large an +aggregate return type the code generator can currently handle is +target-dependent, and also dependent on the aggregate element types.</p> + </div> <!-- _______________________________________________________________________ --> @@ -1489,6 +1501,12 @@ instruction.</p> an <tt>i32</tt>.</td> </tr> </table> + +<p>Note that the code generator does not yet support large aggregate types +to be used as function return types. The specific limit on how large an +aggregate return type the code generator can currently handle is +target-dependent, and also dependent on the aggregate element types.</p> + </div> <!-- _______________________________________________________________________ --> @@ -1593,6 +1611,12 @@ be any integer or floating point type.</p> <td class="left">Vector of 2 64-bit integer values.</td> </tr> </table> + +<p>Note that the code generator does not yet support large vector types +to be used as function return types. The specific limit on how large a +vector return type codegen can currently handle is target-dependent; +currently it's often a few times longer than a hardware vector register.</p> + </div> <!-- _______________________________________________________________________ --> @@ -2042,8 +2066,13 @@ return value.</p> ret { i32, i8 } { i32 4, i8 2 } <i>; Return an aggregate of values 4 and 2</i> </pre> -<p>Note that the code generator does not yet fully support larger - aggregate return values.</p> +<p>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.</p> </div> <!-- _______________________________________________________________________ --> |