search for: subroutine_type

Displaying 7 results from an estimated 7 matches for "subroutine_type".

2011 Dec 07
2
[LLVMdev] Generating DWARF information that pretends an outparam is the return value
...;Value returns is $1 = 5"). I'm generating debug metadata nodes >> directly instead of using DIBuilder since it doesn't seem to >> encapsulate situations like this. > > So, I assume you figured out how to create metadata nodes for TAG_subprogram and corresponding TAG_subroutine_type. If yes, then the zero'th element of array of types you supply (subroutine_type is encoded as composite type, see http://llvm.org/docs/SourceLevelDebugging.html#format_composite_type) is return type. > > Let's say you have > > 1 > 2 int foo() { > 3 ch...
2011 Dec 07
0
[LLVMdev] Generating DWARF information that pretends an outparam is the return value
...to > see "Value returns is $1 = 5"). I'm generating debug metadata nodes > directly instead of using DIBuilder since it doesn't seem to > encapsulate situations like this. So, I assume you figured out how to create metadata nodes for TAG_subprogram and corresponding TAG_subroutine_type. If yes, then the zero'th element of array of types you supply (subroutine_type is encoded as composite type, see http://llvm.org/docs/SourceLevelDebugging.html#format_composite_type) is return type. Let's say you have 1 2 int foo() { 3 char c = 'a'; 4 r...
2018 Jun 15
2
[lldb-dev] Adding DWARF5 accelerator table support to llvm
...at is a lot of DWARF parsing and logic to try and figure out what the full set of DW_TAG_subprograms are. > >> 2 - have DWARF actually emit the template function info all the time >> as a type T, not a specialization, so we always have the full definition > > Hm. You mean a subroutine_type with template_parameter children that > don't have actual values? That would give you a pattern, but not tell > you what/where definitions exist. I don't see how that can help? Right now DWARF does only specializations, so DWARF would need to be extended to be able to specify the t...
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
2011 Dec 07
0
[LLVMdev] Generating DWARF information that pretends an outparam is the return value
...Value returns is $1 = 5"). I'm generating debug metadata nodes > directly instead of using DIBuilder since it doesn't seem to > encapsulate situations like this. > > > So, I assume you figured out how to create metadata nodes for TAG_subprogram > and corresponding TAG_subroutine_type. If yes, then the zero'th element of > array of types you supply (subroutine_type is encoded as composite type, see > http://llvm.org/docs/SourceLevelDebugging.html#format_composite_type) is > return type. > > Let's say you have > >      1 >      2 int foo() { >  ...
2018 Jun 15
2
[lldb-dev] Adding DWARF5 accelerator table support to llvm
To elaborate a bit more on the issue that is detailed in https://reviews.llvm.org/rL260308: There are many clang AST contexts that are used in LLDB: - one for each lldb_private::Module that contains type definitions as we know them in the module and its symbol vendor - one for each expression - one for results of expressions in the lldb_private::Target As we run expressions we end up copying
2018 Jun 15
2
[lldb-dev] Adding DWARF5 accelerator table support to llvm
...he >> full set of DW_TAG_subprograms are. >> >>> >>>> 2 - have DWARF actually emit the template function info all the time >>>> as a type T, not a specialization, so we always have the full >> definition >>> >>> Hm. You mean a subroutine_type with template_parameter children that >>> don't have actual values? That would give you a pattern, but not tell >>> you what/where definitions exist. I don't see how that can help? >> >> Right now DWARF does only specializations, so DWARF would need to be &g...