Displaying 3 results from an estimated 3 matches for "mrv3".
Did you mean:
mrv
2008 Jul 23
0
[LLVMdev] Structs as first class values.
...) {
struct foo F;
F.X = *P1;
F.Y = *P2;
return F;
}
we compile this to:
%struct.foo = type { double, i64 }
define %struct.foo @test(double* %P1, i64* %P2) nounwind {
entry:
load double* %P1, align 8 ; <double>:0 [#uses=1]
load i64* %P2, align 8 ; <i64>:1 [#uses=1]
%mrv3 = insertvalue %struct.foo undef, double %0, 0 ; <%struct.foo>
[#uses=1]
%mrv4 = insertvalue %struct.foo %mrv3, i64 %1, 1 ; <%struct.foo>
[#uses=1]
ret %struct.foo %mrv4
}
which was previously (before first class aggregates got enabled
yesterday):
define %struct.foo @test(dou...
2008 Jul 23
3
[LLVMdev] Structs as first class values.
On Tuesday 22 July 2008 01:23, Chris Lattner wrote:
> David, I'm not sure I follow. It is, of course, very important for us
> that llvm-gcc generate ABI compliant code on x86-64. I'm just saying
> that if struct-return does not provide the ABI required for a specific
> source construct that another lowering would be needed.
Ah, ok. I misunderstood your statement.
> In
2008 Jul 31
1
[LLVMdev] Structs as first class values.
...return F;
> }
>
> we compile this to:
>
> %struct.foo = type { double, i64 }
>
> define %struct.foo @test(double* %P1, i64* %P2) nounwind {
> entry:
> load double* %P1, align 8 ; <double>:0 [#uses=1]
> load i64* %P2, align 8 ; <i64>:1 [#uses=1]
> %mrv3 = insertvalue %struct.foo undef, double %0, 0 ; <%struct.foo>
> [#uses=1]
> %mrv4 = insertvalue %struct.foo %mrv3, i64 %1, 1 ; <%struct.foo>
> [#uses=1]
> ret %struct.foo %mrv4
> }
>
> which was previously (before first class aggregates got enabled
> ye...