search for: outparam

Displaying 6 results from an estimated 6 matches for "outparam".

Did you mean: bootparam
2011 Dec 05
2
[LLVMdev] Generating DWARF information that pretends an outparam is the return value
The Rust compiler defines all functions as returning void, with the first parameter being an outparam of the declared return type, ie. fn foo2() -> int { ret 5; } becomes define void @_ZN4foo217_5cb557d30658848cE(i64*, { i64, { %tydesc*, i1, {} } }*) uwtable { store i64 5, i64* %0 ret void } I'm working on generating debug information for Rust, and I'm currently stumped on how to...
2011 Dec 07
0
[LLVMdev] Generating DWARF information that pretends an outparam is the return value
Hi Josh, On Dec 4, 2011, at 9:33 PM, Josh Matthews wrote: > I'm working on generating debug information for Rust, and I'm > currently stumped on how to generate DWARF output via LLVM that will > correctly represent this (eg. when exiting from foo2(), I'd like to > see "Value returns is $1 = 5"). I'm generating debug metadata nodes > directly instead of
2011 Dec 07
0
[LLVMdev] Generating DWARF information that pretends an outparam is the return value
Unfortunately this is what I'm already doing, and it's not working. I drew inspiration from a disassembly of a program that showed that struct foo { int a; float b; char buf[80]; } struct foo get_foo(void) { foo f = { 5, 2.5 }; return f; } would turn into define void @get_foo(%struct.foo* sret %agg.result) nounwind ssp { ... call void @llvm.memcpy.p0i8.p0i8.i64(i8* %2, i8*
2011 Dec 07
2
[LLVMdev] Generating DWARF information that pretends an outparam is the return value
On Dec 6, 2011, at 4:13 PM, Devang Patel wrote: > Hi Josh, > > On Dec 4, 2011, at 9:33 PM, Josh Matthews wrote: > >> I'm working on generating debug information for Rust, and I'm >> currently stumped on how to generate DWARF output via LLVM that will >> correctly represent this (eg. when exiting from foo2(), I'd like to >> see "Value returns
2015 Oct 06
3
SRET consistency between declaration and call site
On Mon, Oct 05, 2015 at 03:45:29PM -0700, Reid Kleckner wrote: > > > On 3 October 2015 at 02:29, Joerg Sonnenberger via llvm-dev > > > <llvm-dev at lists.llvm.org> wrote: > > > > while debugging assertions when building libm for 32bit Sparc, I hit > > the > > > > following IR: > > > > > > > > complex_mul_libcall: >
2015 Oct 06
2
SRET consistency between declaration and call site
...trigger in LTO and when should > not? > > You could imagine that __muldc3 might be implemented in C, and it might be implemented without using _Complex so that it can be compiled by a compiler without _Complex support. Instead of using a _Complex double return type, it would use a pointer outparam as the first parameter, and it would return that pointer as usual in RAX. Yes, this is a prototype mismatch and probably UB according to C, but this might be part of an implementation which knows something about the platform lowering. > > Generally we try to make these sorts of things "...