[llvm-dev] union return type

Flamedoge via llvm-dev llvm-dev at lists.llvm.org
Wed Apr 19 04:39:37 PDT 2017


This seems like the case of returning struct in registers. This is usually
dictated by the ABI, not by a compiler optimization, for compatibility
reasons.

Kevin

On Wed, Apr 19, 2017 at 1:38 AM, Julien Schmitt via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> Dear LLVMers,
>
> I need your help to understand my problem:
>
> I'm compiling a code for 2 different targets (x86_64 and sparc). In this
> code, I define a union which is basically a int32 and a function which
> returns this union. The compilation of this code produces 2 different IRs :
>
> * for x86, the return type is int32,
>
> * for sparc, the return type is a struct (first argument of the function
> with attribute sret).
>
> I guess an optimization pass is called to simplify the return type in
> first case but i have no idea which one ?
>
> Does anybody have an explanation ?
>
> Thanks!
>
> Julien
>
>
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170419/ef14bcbb/attachment.html>


More information about the llvm-dev mailing list